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

Fan*_*ang 8 callstack windbg

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

sno*_*one 9

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

.frame /r
Run Code Online (Sandbox Code Playgroud)

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

.frame /c
Run Code Online (Sandbox Code Playgroud)

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