如何在windbg中检查特定调用堆栈帧上的寄存器值

时间:2012-04-06 02:49:28

标签: windbg callstack

我正在调查WinDBG中的Windows转储文件。我可以通过命令.frame切换调用堆栈帧,但我发现寄存器总是包含最后一个上下文。 我的意思是,如果可以恢复属于不是最顶层的特定调用堆栈帧的上下文?

2 个答案:

答案 0 :(得分:9)

如果您正在调试x64目标,可以使用:

.frame /r

查看帧中的寄存器。此信息基于图像中的展开数据,因此非常可靠。您还可以使用以下内容更改上下文:

.frame /c

在x86上,没有展开信息,所以这个技巧不起作用。 .frame仍然会向你显示寄存器的内容,但它不太可能是正确的(它基本上只是运气正确)。

答案 1 :(得分:0)

尝试findthis.py,这是通过反汇编callstack中每个帧的序言获得CFI(Call Frame Info)。

http://nick.luckygarden.org/find-this-ptr-within-a-callstack-in-a-dump-file/