2014-10-20 31 views
0

我有一个巨大的遗留应用程序(32位,窗口,带有GUI的C++)的内存问题。内存增加到最大限制(2G0),然后应用程序崩溃。 无法使用实时内存分析器(如AQTime)(太慢,对内存消耗的影响太大)。 我可以使用Windows工具(通过taskmanager)为实例生成转储。从转储中确定内存中存在的对象的类型

问题:是否有可能像dotnet(使用.net Memory Profiler)从生成的转储中获取存储器中动态分配的对象的类型?

+0

这里的一般智慧是*不*等到进程崩溃后才开始寻找泄漏。不要在C++应用程序上使用.NET工具,他们不会告诉你任何事情。如果你不能使用crtdbg.h中的调试分配器,那么umhd.exe是你选择的武器。 – 2014-10-20 11:46:08

回答

0

如果您已经生成了调试信息(pdb文件),则可以在一定程度上将内存映射到对象。

+0

与windbg的工具? – Guillaume07 2014-10-20 11:34:53

+0

@ Guillaume07也许你也可以在Visual Studio中进行调试。 http://msdn.microsoft.com/en-us/library/d5zhxt22.aspx – 2014-10-20 12:05:23