我試圖使用CRT內存泄漏檢測,但我不斷收到以下消息在Microsoft Visual Studio中:「檢測到的內存泄漏 - 跳過對象轉儲。」我永遠無法將它實際做到並拋棄對象。Visual Studio _CrtDumpMemoryLeaks總是跳過對象轉儲
我遵循微軟有關內存泄漏檢測(http://msdn.microsoft.com/en-us/library/e5ewb1h3(VS.80).aspx)文章中的指示,但沒有運氣。
在我的stdafx.h我已經(重建整個項目):
#define _CRTDBG_MAP_ALLOC
#include <stdlib.h>
#include <crtdbg.h>
在我的應用程序的入口點,我有:
_CrtSetDbgFlag (_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF);
我也希望它會顯示微軟廣告格式中的文件名和行號:
Detected memory leaks!
Dumping objects ->
C:\PROGRAM FILES\VISUAL STUDIO\MyProjects\leaktest\leaktest.cpp(20) : {18}
normal block at 0x00780E80, 64 bytes long.
Data: < > CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
Object dump complete.
雖然我從來沒有能夠得到一個對象轉儲,但我注意到,其他人說,他們看到這些方針的東西(甚至_CRTDBG_MAP_ALLOC定義):
Detected memory leaks!
Dumping objects ->
{18} normal block at 0x00780E80, 64 bytes long.
Data: < > CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
Object dump complete.
我真的不希望花時間重寫new和delete操作,所以我希望CRT調試能幫助我。如果這不起作用,我可能會覆蓋新的和刪除操作符,但我真的想要獲取帶有文件名和行號(十字指紋)的分配信息。
感謝, 基里爾·
好吧,我會盡力,謝謝你的信息:)。 – Kiril 2009-01-08 00:26:53