提问者:小点点

使用Visual Studio从转储文件预览堆


我对调试转储非常陌生,所以仍然有一些问题。

我读过一些关于调试转储的问题,现在我已经将我的代码附加到转储,并且可以看到变量的一些值。

我的问题是如何预览原始堆数据。我想要这个,因为转储非常大,超过4GB,所以某个地方有很大的内存泄漏,可能导致崩溃。所以将寻找一些剩下的字符串。

BTW我用C编码并使用Visual Studio 2012进行调试,但我可以下载一些其他程序:)


共1个答案

匿名用户

您应该使用WinDbg和! heap命令来检查进程中的Win32堆。您可以发现此命令的许多变体很有用:!heap-s-h 0将为您提供统计信息,!heap-h 0将列出所有堆中的所有块,等等。

您可能还需要考虑我的heap_stat.py调试器脚本,它将尝试在堆内存中搜索具有vtable指针的对象,从而确定哪些类别的对象占用了大量堆空间。

https://github.com/goldshtn/windbg-extensions/blob/master/heap_stat.py