10

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

4

2 回答 2

11

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

.frame /r

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

.frame /c

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

于 2012-04-06T10:42:12.383 回答
0

尝试 findthis.py,这是一种通过反汇编调用堆栈中每个帧的序言来获取 CFI(调用帧信息)的方法。

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

于 2014-12-30T15:46:33.203 回答