我在 Visual Studio 2017 中打开了我的 C++ 应用程序的 minidump 文件。转储文件是程序因访问冲突而崩溃。我怀疑堆/堆栈损坏,所以我在内存/反汇编窗口中花费了大量时间,试图解释堆栈。
如果我可以在内存中搜索某个值(例如函数调用的返回地址),那将非常方便。我知道 WinDbg 可以做到,但它目前没有正确设置符号路径,我宁愿留在一个调试器中。
我找到了 this link表示 Visual Studio 2010 支持键入类似 .S -D 0x20B4EC L100 0x12EC9275
的内容在即时窗口中,但是当我在 VS2017 中尝试时,我只得到 expected an expression
.
我错过了什么吗?
(注意,虽然我现在正在分析故障转储,但在调试实时程序时它似乎也不起作用)
澄清
最佳答案
这是一个很好的教程:
https://docs.microsoft.com/en-us/visualstudio/debugger/using-dump-files?view=vs-2019
基本上,查看转储中的内存有一些硬性要求:
如果不满足这些要求,您将仅获得堆栈跟踪,也许还有一些堆栈变量。
编辑:带有监视和变量的堆栈跟踪与您要搜索的内存相同。没有实时调试。这是崩溃的快照。
关于c++ - 在 VS2017 中搜索内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57691123/