有没有办法迭代windbg中的所有帧?

时间:2013-05-02 14:38:40

标签: windbg

有没有办法迭代windbg中的所有帧? (或为每个堆栈帧运行dv)
例如:~*e !mk -cc将遍历所有线程并调用!mk -cc

我想要的基本上是:

对于每个线程:切换到线程:

~0s

对于该主题中的每个框架:

.frame 00
dv

只是想知道是否有办法自动化这个?
目前我能够生成一个脚本来执行:

~0s
.frame 00
dv
.frame 01
dv
.frame 02
...

但这是一个多步骤的过程,我希望将其全部自动化。

1 个答案:

答案 0 :(得分:4)

您可以使用~e命令执行每个线程的命令。然后,您可以使用!for_each_frame为每个调用帧执行命令。例如:

~*e .echo Thread Frames and Locals:; !for_each_frame dv

包含.echo命令只是为了标记一个线程结束而下一个线程开始的位置。