我对调试转储还很陌生,所以还有一些问题。
我已经阅读了一些有关调试转储的问题,现在我已将我的代码附加到转储并且可以看到一些变量值。
我的问题是如何预览原始堆数据。我想要这个是因为转储非常大,超过 4GB,所以某个地方有很大的内存泄漏,这可能是导致崩溃的原因。因此将寻找一些剩余的字符串。
顺便说一句。我正在使用 C++ 进行编码并使用 Visual Studio 2012 进行调试,但我可以下载一些其他程序:)
最佳答案
您应该使用 WinDbg 和 !heap
命令来检查进程中的 Win32 堆。您会发现此命令有许多有用的变体:!heap -s -h 0
将为您提供统计信息,!heap -h 0
将列出所有 block 所有堆等
您可能还想考虑我的 heap_stat.py 调试器脚本,它会尝试在堆内存中搜索具有 vtable 指针的对象,从而确定占用大量堆空间的对象类别。
https://github.com/goldshtn/windbg-extensions/blob/master/heap_stat.py
关于visual-studio - 使用 Visual Studio 从转储文件中预览堆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18105654/