我有一个C++的Windows应用程序,它有一些内存泄漏问题。是否可以使用NTSD分析转储中的内存泄漏?如果是这样,请指导我如何做到这一点?检测C++ Windows应用程序中的内存泄漏
我也听说我们可以使用用户模式转储来做到这一点。我不是很熟悉在窗口中发现泄漏。 Valgrind在Linux中非常容易。
还有其他更好的选择来检查这个吗?
我有一个C++的Windows应用程序,它有一些内存泄漏问题。是否可以使用NTSD分析转储中的内存泄漏?如果是这样,请指导我如何做到这一点?检测C++ Windows应用程序中的内存泄漏
我也听说我们可以使用用户模式转储来做到这一点。我不是很熟悉在窗口中发现泄漏。 Valgrind在Linux中非常容易。
还有其他更好的选择来检查这个吗?
see here了解有关Visual Leak Detector的详细信息。我已经在Windows上使用它。 你在你的应用程序做的是
#include <vld.h>
和调试程序,这样的事情时,你会看到一个关于在终端检测到泄漏报告:
---------- Block 1199 at 0x04BE1058: 136 bytes ----------
Call Stack:
d:\Foobar\FooLog.cpp (26): FooLog::getInstance
d:\Foobar\FooMain.cpp (75): FooMain::init
f:\dd\vctools\crt_bld\self_x86\crt\src\crtexe.c (578): __tmainCRTStartup
f:\dd\vctools\crt_bld\self_x86\crt\src\crtexe.c (403): WinMainCRTStartup
0x759A3677 (File and line number not available): BaseThreadInitThunk
0x770C9D42 (File and line number not available): RtlInitializeExceptionChain
0x770C9D15 (File and line number not available): RtlInitializeExceptionChain
Data:
9C 33 2D 6B 74 2A 2D 6B C8 11 BE 04 00 00 00 00 .3-kt*-k ........
00 00 00 00 70 14 BB 6C 70 14 BB 6C 00 00 00 00 ....p..l p..l....
00 00 00 00 68 14 BB 6C 68 14 BB 6C 00 00 00 00 ....h..l h..l....
00 00 00 00 6C 14 BB 6C 6C 14 BB 6C 20 12 BE 04 ....l..l l..l....
00 00 00 00 CD 00 CD CD 00 00 00 00 01 CD CD CD ........ ........
68 14 BB 6C 78 33 2D 6B 00 00 00 00 00 00 00 00 h..lx3-k ........
正在寻找任何工具来研究记忆在窗户上泄漏? – 4pie0 2013-04-23 15:46:27
Application Verifier(http://www.microsoft.com/en-us/download/details.aspx?id=20028)会有帮助吗? – souldzin 2013-04-23 15:48:48
[Visual C++ - 内存泄漏检测]的可能重复(http://stackoverflow.com/questions/2820223/visual-c-memory-leak-detection) – user93353 2013-04-23 15:53:08