在调试过程中查看堆和栈是否可行?
在调试过程中查看堆和栈是否可行?
我知道这是一个旧问题,但我觉得还是要更新一下......
Visual Studio 2015自带内存使用监视器,直接集成在诊断工具面板中。如果在您想检查的操作前、期间和后分别拍摄快照,您可以回顾这些快照的堆视图。
希望这对某人有所帮助。
在调试时,您可以查看调用堆栈,但我认为这不是您要寻找的。您可能想尝试 Windbg 和 SOS,它们非常适合调试内存问题。学习曲线有点陡峭,但回报是巨大的。
如果您真的想查看原始内存,可以从“调试->窗口->内存
”打开“内存”调试窗口,并在编辑框中写入要查看的地址。您还可以在编辑框中编写任何计算为地址的表达式,它将向您显示该地址,例如&variable
这对于实际查看变量并不是非常有用,因为您将很难将原始字节解析为有意义的值,但它可以在调试情况下非常有用,特别是在怀疑存在缓冲区溢出或意外覆盖内存的情况下。与data-breakpoints结合使用时尤其有用。