Visual Studio内存泄漏检测
生活随笔
收集整理的這篇文章主要介紹了
Visual Studio内存泄漏检测
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
使用CRT庫里的兩個重要函數:
_CrtDumpMemoryLeaks(): 放在程序結束出,檢測通過new出來后還沒有釋放的內存。可以顯示分配內存的時間(就是大括號中數字表示第幾次分配的內存),泄漏內存的大小,泄漏內存的文件地址。通過添加以下:
//把分配內存的信息保存下來,可以定位到那一行發生了內存泄露。用于檢測 new 分配的內存 #ifdef _DEBUG #define new new(_NORMAL_BLOCK, __FILE__, __LINE__) #endif可以顯示具體的內存分配的文件:
在這里還可以用sizeof函數檢測分配的內存大小和程序檢測出來的泄漏內存大小是否一致。
_crtbreakalloc(num),放在程序入口處,根據_CrtDumpMemoryLeaks()函數調試的內存泄漏塊的大括號內的信息,選擇使程序在num次分配內存的時候中斷,然后利用堆棧調試信息調試,查看是否有分配的內存未消除,一般使指針指向了其它內層,而且未消除之前指向的內層。
總結
以上是生活随笔為你收集整理的Visual Studio内存泄漏检测的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Opengl :公转与自转
- 下一篇: armadillo 使用注意 越界不报错