【发布时间】:2009-10-14 17:43:08
【问题描述】:
我正在使用instructions found here 来尝试查找 Win32 应用程序中的内存泄漏。如前所述,我把
#define _CRTDBG_MAP_ALLOC
#include <stdlib.h>
#include <crtdbg.h>
文件顶部的行(包含 WINAPI _tWinMain 的 cpp 文件),然后在我添加的 winmain 的出口点
_CrtDumpMemoryLeaks();
很遗憾,我没有看到泄漏的行号/位置(但我确实得到了泄漏列表)。
我也试过放
_CrtSetDbgFlag ( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF);
_CrtSetReportMode ( _CRT_ERROR, _CRTDBG_MODE_DEBUG);
在 winmain 的开头 - 又一次,没有运气。
我觉得这很奇怪,因为我通常不会遇到任何问题来发现泄漏或自动报告它们。
这是我正在为新雇主开发的一款巨大的旧版应用程序。过去我使用标准的 VS 向导工作。
关于如何获取导致泄漏的源代码行/方法的任何建议? (或者至少是“新”调用的行?
编辑:
I also tried visual leak detector - 没有成功。
很奇怪。
编辑
我尝试使用下面列出的 new 的重新定义,但是在编译 boost 时出现错误。
【问题讨论】:
-
尝试解密器。它应该对你有帮助。
标签: c++ visual-studio-2008 memory-leaks