命中断点时如何在劳特巴赫保存堆栈帧

How to save the stackframe in Lauterbach when the breakpoints is hit

所以我想在到达断点时将带有局部变量的完整堆栈帧转储到 .txt 文件,然后使用“恢复”选项再次重新启动,当再次到达断点时创建新的 .txt 文件并保存再次调用堆栈。我刚刚浏览了文档,但找不到保存堆栈框架的选项,断点中的 CMD window 对我来说很清楚。

在 TRACE32 中,您可以使用命令 Frame /Args /Locals.

查看显示调用堆栈(带有局部变量)的 window

与任何其他命令一样,您可以使用 pre-command WinPrint..[=18 将 window 的显示重定向到文本文件=]

因此,首先在 TRACE32 中设置打印以将每个“打印”保存到文件中。
例如PRinTer.FILE c:/myProject/myLogfile-001.txt ASCIIE
如果选择的文件名以数字结尾,TRACE32会在每次打印后自动增加数字。

现在,命令 WinPrint.Frame /Args /Locals 会将调用堆栈保存到文件 c:/myProject/myLogfile-001.txt 并递增文件索引。

放在一起:

  1. 设置打印到文件,例如PRinTer.FILE c:/myProject/myLogfile-001.txt ASCIIE
  2. 使用 E.g. 设置断点Break.Set <address> /CMD "WinPrint.Frame /Args /Locals" /RESUME

当您写“stackframe”时,您可能只指当前函数的局部变量,而不是完整的调用堆栈。在这种情况下,使用命令 Var.Local 而不是 Frame /Args /Locals