使用vs2010,修改项目属性“c/c++/代码生成/运行库 ”的值为“多线程调试 (/MTd)”,则Visual Leak Detector 能够检查出40多处内存泄露。将其值改为“多线程调试 DLL (/MDd)”,则对“msvcp100.dll”产生依赖。日志片段:
---------- Block 44 at 0x01255C08: 580 bytes ----------
Call Stack:
f:ddvctoolscrt_bldself_x86crtsrcmbctype.c (590): MCCTest.exe!_setmbcp + 0x16 bytes
f:ddvctoolscrt_bldself_x86crtsrcmbctype.c (852): MCCTest.exe!__initmbctable + 0x7 bytes
f:ddvctoolscrt_bldself_x86crtsrccrt0dat.c (923): MCCTest.exe!_initterm_e + 0x7 bytes
f:ddvctoolscrt_bldself_x86crtsrccrt0dat.c (278): MCCTest.exe!_cinit + 0xF bytes
f:ddvctoolscrt_bldself_x86crtsrccrt0.c (262): MCCTest.exe!__tmainCRTStartup + 0x7 bytes
f:ddvctoolscrt_bldself_x86crtsrccrt0.c (189): MCCTest.exe!wWinMainCRTStartup
0x7C817077 (File and line number not available): kernel32.dll!RegisterWaitForInputIdle + 0x49 bytes
Data:
08 53 25 01 00 00 00 00 80 47 4B 00 4E 02 00 00 .S%… .GK.N…
20 02 00 00 02 00 00 00 2C 00 00 00 FD FD FD FD … ,…
02 00 00 00 A8 03 00 00 01 00 00 00 04 08 00 00 … …
C1 A3 DA A3 20 00 00 00 00 00 00 00 00 00 00 00 … …
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 … …
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 … …
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 … …
00 00 00 00 00 00 00 00 00 00 00 00 00 08 18 18 … …
18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 … …
18 18 18 18 18 18 18 18 08 08 08 08 08 08 28 28 … …((
28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 28 (((((((( ((((((((
28 28 28 28 28 28 28 28 08 08 08 08 08 08 0C 0C (((((((( …
0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C … …
0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C … …
0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C … …
0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C … …
Visual Leak Detector detected 42 memory leaks (8966 bytes).
Largest number used: 12308 bytes.
Total allocations: 18879 bytes.