在应用程序中查找内存分配(使用故障转储)

时间:2015-10-10 12:45:48

标签: c++ visual-studio-2012 memory windows-8

在我的应用程序(在Windows 8上使用C ++ / STL开发)中,我希望生成所有内存分配的报告。

为此,我附加Visual Studio调试器,生成进程的转储(如所述here),然后使用DebugDiag工具分析转储。 它会根据我的期望生成报告,显示流程中的所有内存分配。但它给出了分配的内存地址。以下是报告的截图示例:

enter image description here

仅仅通过查看那些我无法在代码中分配内存的地址来使用它是最不常见的。所以我试图找出有没有办法分析崩溃转储以及调试信息以生成带有调试信息引用的报告。

有人可以使用Visual Studio / DebugDiag / WinDbg(或任何其他工具)分享如何做到这一点吗?

2 个答案:

答案 0 :(得分:0)

通常,在我的工作场所,我们使用

  

的valgrind

在linux上。

有一些名称的工具'净化'对于Windows,我猜。

以下是详细说明:

windows debug

答案 1 :(得分:0)

请参阅: https://msdn.microsoft.com/en-us/library/windows/hardware/ff560206%28v=vs.85%29.aspx

  1. 首先应该使用堆栈跟踪收集打开堆调试模式
  2. 然后你可以使用带有!heap扩展名的umdh或windbg来分析堆结构并查看内存分配的堆栈跟踪