使用Lauterbach Trace查看函数运行时图

时间:2019-03-26 17:38:32

标签: trace32 lauterbach

我正在调试一个崩溃,该崩溃在死亡之前经常调用一个长时间运行的方法。我主要关心的是确定嵌套和/或递归调用在哪里的困难。

Trace-> Chart-> Symbols窗口显示在给定时间正在运行哪个函数的图,对于以下调用,该图看起来像这样:

         display
            |
       drawChildren
       /         \
  drawTitle   drawImage
      |           |
   display     display
      |           |
drawChildren  drawChildren
display      | _     _   _       _   _     _
drawChildren |  |_  | |_| |  _  | |_| |  _|
drawTitle    |    |_|     |_| | |     | |
drawImage    |                |_|     |_|

我想要的是类似于火焰图的图形,其中每个呼叫的持续时间一目了然,嵌套的呼叫更容易发现:

display______________________________
 drawChildren_______________________
  drawTitle_______ drawImage_______
   display_______   display_______
    drawChildren     drawChildren

我尝试查看列表视图,但是我发现导航存在问题的代码中的调用和迭代非常麻烦。我知道可以对图表视图进行排序,但是有什么方法可以获取数据的不同视图?

1 个答案:

答案 0 :(得分:1)

我想最符合您需求的命令是

  • Trace.Chart.Nesting
  • Trace.ListNesting

在菜单中找不到此命令。您必须在TRACE32应用程序窗口底部(B::后面)的命令行中键入它们,或使用命令行下面的功能键按钮来找到这些命令。

请注意,您可以使用“ / Track”选项使跟踪窗口彼此同步。