我不确定我是否正确理解了原始输出dds esp
或其 64 位对应项dqs rsp
。当我看到堆栈中的条目列表时,我倾向于假设无论我在哪里看到返回地址,这些都是由尚未返回的代码进行的调用。IOW,将它们串在一起应该形成一个很好的调用堆栈。(让我们暂时不要打扰k*
Windbg 命令组。)情况并非总是如此吗?
因为有一些第三方扩展,它们对 esp/rsp 输出进行操作,并将条目串在一起,形成看起来像调用堆栈的东西,但我似乎无法将该顺序与我在源代码中看到的相匹配(嗯,无论我有什么来源。)甚至还有很久以前返回的函数条目。
我错过了什么?
更新:
好的——我使用的第三方扩展确实说:
Dumps (dps) from the stack limit the base only showing items that include the ! followed by +0x
那么,问题就变成了那个条目是什么?我以为是某个函数的返回地址正在修复以调用另一个函数?