Visual Leak Detector - 文件和行号不可用

时间:2014-11-28 11:49:27

标签: c++ visual-studio-2010 memory-leaks mfc visual-leak-detector

我正在调试一个MFC程序,并且已经到了我试图找到并解决内存泄漏的问题。首先我在VC中尝试了内置的泄漏检测器,但是一旦重新定义了新的运算符,我就会遇到很多重新定义“新”和错误的问题。

转到Visual Leak Detector。我已经启动并运行它似乎找到泄漏,但它似乎无法找到文件和行号。这就是它的样子:

WARNING: Visual Leak Detector detected memory leaks!
---------- Block 2 at 0x0343F718: 67 bytes ----------
Call Stack:
0x00B88E2F (File and line number not available): program.exe!for__get_vm + 0x1F bytes
0x00B8FC28 (File and line number not available): program.exe!for_rtl_init_wrap_ + 0x118 bytes
f:\dd\vctools\crt_bld\self_x86\crt\src\crt0dat.c (873): MSVCR100D.dll!_initterm
f:\dd\vctools\crt_bld\self_x86\crt\src\crtexe.c (473): program.exe!__tmainCRTStartup + 0xF bytes
f:\dd\vctools\crt_bld\self_x86\crt\src\crtexe.c (371): program.exe!wWinMainCRTStartup
0x7540338A (File and line number not available): kernel32.dll!BaseThreadInitThunk + 0x12 bytes
0x77819F72 (File and line number not available): ntdll.dll!RtlInitializeExceptionChain + 0x63 bytes
0x77819F45 (File and line number not available): ntdll.dll!RtlInitializeExceptionChain + 0x36 bytes

Data:
43 3A 5C 50    72 6F 6A 65    63 74 5C 50    72 6F 70 63     ........ ........
61 6C 63 5C    53 65 6B 6F    6E 64 65 6E    54 72 75 6E     ........ ........
6B 5C 77 42    6C 61 64 65    45 64 5C 2E    5C 44 65 62     .Random. .Symbols
75 67 5C 77    42 6C 61 64    65 45 64 2E    65 78 65 00     ........ ........
CD CD CD                                                     ........ ........

检查了Visual Leak Detector(VLD)网站上的常见问题解答后,有一节说明如果发生此错误,那么VLD可能无法找到位于programname.pdb中的调试符号,因为它必须是位于programname.exe文件旁边。我检查(并重建),确保我的项目打开了“生成调试符号”选项,并创建了programname.exe文件,并将其放在调试文件夹中的programname.exe文件旁边。

不过,我拒绝向我展示文件和行号。 此外,在Visual Studio的“输出窗口”的最顶部,我可以看到以下行:

'Program.exe': Loaded 'C:\Project\Program\Debug\Program.exe', Symbols loaded.

那么,符号被加载了吗? 有什么想法吗?

谢谢!

0 个答案:

没有答案