crtdbg.h

    18熱度

    2回答

    我正在嘗試檢測內存泄漏,並使用make _CRTDBG_MAP_ALLOC宏來查找泄漏區域。所以我定義MACRO像以下: #ifdef _DEBUG #define _CRTDBG_MAP_ALLOC #include <stdlib.h> #include <crtdbg.h> #define DEBUG_NEW new(_NORMAL_BLOCK, __FILE__,

    3熱度

    3回答

    我試圖使用CRT內存泄漏檢測,但我不斷收到以下消息在Microsoft Visual Studio中:「檢測到的內存泄漏 - 跳過對象轉儲。」我永遠無法將它實際做到並拋棄對象。 我遵循微軟有關內存泄漏檢測(http://msdn.microsoft.com/en-us/library/e5ewb1h3(VS.80).aspx)文章中的指示,但沒有運氣。 在我的stdafx.h我已經(重建整個項目)

    8熱度

    3回答

    我想檢查我的程序是否有內存泄漏,並找到this Microsoft article。 我徹底遵循的文章,並添加 #define CRTDBG_MAP_ALLOC #include <stdlib.h> #include <crtdbg.h> 和 _CrtDumpMemoryLeaks(); 當程序退出。 它正確地轉儲在我的輸出窗口中的所有內存泄漏的信息,但這裏的問題: 它不打印文件名和

    1熱度

    1回答

    我剛剛發現了隱藏的寶石crtdbg.h,這使得內存泄漏檢測更容易。不幸的是,當我今天將DirectX鏈接到我的程序中時,出現了一些我從未見過的錯誤。 1>e:\program files (x86)\microsoft directx sdk (june 2010)\include\d3dx10math.h(425): error C2059: syntax error : 'constant'

    0熱度

    2回答

    我正在研究Visual Studio 2010下的一個大型C++項目,並認爲裏面有一些內存泄漏。我嘗試了包含crtdbg.h的方法,但沒有多大幫助,因爲我沒有看到發生泄漏的位置。定義新的有兩個缺陷:首先它需要在每個cpp文件中完成,這不是一個真正的選項,而第二個文件需要在例如。促進。使用new(nothrow)或使用boost的任何內容「has_new_operator.h」會打破這一點。 [編輯

    0熱度

    1回答

    我試圖用新的表達式new (std::nothrow)來獲取文件和泄漏發生的位置。 下面的代碼中的註釋的新表達式不能編譯。 #include <iostream> int main() { #ifdef _DEBUG int* p = new (_NORMAL_BLOCK, __FILE__, __LINE__) int(10); // int* q = new (st

    0熱度

    1回答

    我啓用堆調試嘗試和調試一些內存泄漏錯誤。我這樣做包括以下內容: #define _CRTDBG_MAP_ALLOC #include <stdlib.h> #include <crtdbg.h> 連同_CrtDumpMemoryLeaks()在一個感興趣的函數調用。 然後,我還編輯項目屬性配置,將調試類型設置爲'Native Only',並添加預處理器定義'_DEBUG'和C/C++代碼生

    1熱度

    1回答

    由_CrtMemCheckpoint()返回的_CrtMemState結構包含size_t lHighWaterCount成員,該成員給出自應用程序啓動以來最大的內存使用量。我正在寫一個關心高水位的試驗檯,但它在單次運行中會進行多次測試,而且我只能可靠地獲得第一次測試的高水位標記:如果高水位不會在上升過程中第二個測試,我只知道高水位小於或等於第一個測試的水位。 有沒有辦法將CRT調試堆的高位標記重

    6熱度

    1回答

    我有一個巨大的應用程序(幾百萬LOC和成千上萬的文件),我試圖使用調試crt來檢測內存泄漏。我想新的宏觀IZE像這樣: #define _CRTDBG_MAP_ALLOC #include <crtdbg.h> #ifndef NEW_DEBUG #define NEW_DEBUG new(_NORMAL_BLOCK, __FILE__, __LINE__) #define new NEW