我在调查WinDBG里的一个Windows转储文件。我可以通过命令.frame切换调用栈帧,但我发现寄存器总是包含最后一个上下文。我的意思是,是否有可能恢复属于特定调用堆栈框架的上下文,而不是顶部的调用堆栈框架?
发布于 2012-04-06 18:42:12
如果你正在调试一个x64目标,你可以使用:
.frame /r查看帧中的寄存器。此信息基于图像中的展开数据,因此非常可靠。您还可以使用以下命令更改上下文:
.frame /c在x86上,没有展开信息,所以这个技巧不起作用。.frame仍然会向您显示一些寄存器的内容,但不太可能是正确的(基本上只能靠运气才能正确)。
发布于 2014-12-30 23:46:33
试试findthis.py,它可以通过分解调用栈中每个帧的prolog来获得CFI (Call Frame Info)。
http://nick.luckygarden.org/find-this-ptr-within-a-callstack-in-a-dump-file/
https://stackoverflow.com/questions/10038573
复制相似问题