如何在 Visual Studio 2013 中查看堆栈内容(不是调用堆栈)?
查看 ESP 指向的位置和下方。在字符处显示内容
感谢您的帮助。
您可以通过转到“调试”>“Windows”>“寄存器”来执行此操作,获取 ESP 的位置,然后在“调试”>“Windows”>“内存”窗口中输入此地址。然而,那只会给你原始的记忆。
正如 OwenWengerd 在评论中指出的那样,如果您正在调试本机代码,则只需在地址字段中键入 ESP。出于某种原因,这不适用于托管代码。
另一个答案对于 32 位代码是正确的,但是对于 64 位代码它只是“正确的一半”。
如果真的想看到esp处的内存,那么可以在Memory debug窗口的Address输入框中输入esp
但是,这可能不是您想要的 64 位代码。堆栈位于 rsp 而不是 esp。
如果您在内存调试窗口的地址输入文本框中输入rsp,那么您将看到堆栈内存。如果您在地址输入文本框中输入 esp,那么您将在 (rsp & 0x00000000ffffffff) 处看到内存,这可能不是您想要的。
您可以重新创建一些较旧的 DOS 调试器,如 Turbo Debug,带有排列的内存窗格:
如果在汇编级别调试并单步执行一些 PUSHes 和 POP,您应该看到内存窗格保持同步。
注意:这是在考虑 x86 或 amd64 架构的情况下编写的,这并不是 VS 唯一支持的架构。如果您使用的是另一种架构,请根据您的 CPU 自己的具体情况调整您阅读的内容,即打开寄存器窗格以找出您自己的堆栈指针寄存器名称。