在VC++中檢測內(nèi)存泄露的方法
發(fā)布時間:2012-05-14 09:29:57 作者:佚名
我要評論

在VC編程時,內(nèi)存泄露是個麻煩的事情,特別是有時候會產(chǎn)生比較嚴重的后果,下面給大家介紹一下檢測的方法
在VC編程時,內(nèi)存泄露是個麻煩的事情,特別是有時候會產(chǎn)生比較嚴重的后果,而且這種BUG還比較難查.幸好借助一些第三方的軟件,可以方便的找出會產(chǎn)生泄露的地方,比如BoundsChecker.有時候我們想簡單的了解我們的程序是否存在內(nèi)存泄露,還可以直接使用VC的調(diào)試庫.
設置內(nèi)存泄漏檢測
檢測內(nèi)存泄漏的基本工具是調(diào)試器和CRT調(diào)試堆函數(shù)。為了使用調(diào)試堆函數(shù),在你的程序中你必須含有下面的說明:
#define _CRTDBG_MAP_ALLOC
#include <stdlib.h>
#include <crtdbg.h>
#include說明必須按順序說明。如果你改變了順序,你所用的函數(shù)可能不能正常工作。包含crtdbg.h的_malloc_dbg和 _free_dbg將 malloc和free函數(shù)映射到測試版中,它可以跟蹤內(nèi)存的分配和釋放。這種映射僅僅在一個測試體系中發(fā)生(也就是說,僅僅當_DEBUG被定義的時候)。釋放的體系使用通常的malloc和 free功能。
#define說明映射CRT堆函數(shù)的低級版本到相應的測試版本。這個說明是不需要的,但是沒有它,內(nèi)存泄漏處含有的只是沒有多大用處的信息。
一旦你已經(jīng)增加了剛才的說明,你能夠通過在你的程序中包含下面的說明來釋放內(nèi)存信息:
_CrtDumpMemoryLeaks();
當你在調(diào)試情況下運行你的程序時,在輸出窗口的Debug 標簽處_CrtDumpMemoryLeaks表現(xiàn)出內(nèi)存泄漏的信息。內(nèi)存泄漏信息類似下面這樣:
Detected memory leaks!
Dumping objects ->
C:PROGRAM FILESVISUAL STUDIOMyProjectsleaktestleaktest.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.
設置內(nèi)存泄漏檢測
檢測內(nèi)存泄漏的基本工具是調(diào)試器和CRT調(diào)試堆函數(shù)。為了使用調(diào)試堆函數(shù),在你的程序中你必須含有下面的說明:
#define _CRTDBG_MAP_ALLOC
#include <stdlib.h>
#include <crtdbg.h>
#include說明必須按順序說明。如果你改變了順序,你所用的函數(shù)可能不能正常工作。包含crtdbg.h的_malloc_dbg和 _free_dbg將 malloc和free函數(shù)映射到測試版中,它可以跟蹤內(nèi)存的分配和釋放。這種映射僅僅在一個測試體系中發(fā)生(也就是說,僅僅當_DEBUG被定義的時候)。釋放的體系使用通常的malloc和 free功能。
#define說明映射CRT堆函數(shù)的低級版本到相應的測試版本。這個說明是不需要的,但是沒有它,內(nèi)存泄漏處含有的只是沒有多大用處的信息。
一旦你已經(jīng)增加了剛才的說明,你能夠通過在你的程序中包含下面的說明來釋放內(nèi)存信息:
_CrtDumpMemoryLeaks();
當你在調(diào)試情況下運行你的程序時,在輸出窗口的Debug 標簽處_CrtDumpMemoryLeaks表現(xiàn)出內(nèi)存泄漏的信息。內(nèi)存泄漏信息類似下面這樣:
Detected memory leaks!
Dumping objects ->
C:PROGRAM FILESVISUAL STUDIOMyProjectsleaktestleaktest.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.
相關文章
vc++6.0(Visual C++) 簡體中文企業(yè)版免序列號 可視化軟件開發(fā)工具
Visual C++是一個功能強大的可視化軟件開發(fā)工具。自1993年Microsoft公司推出Visual C++1.0后,隨著其新版本的不斷問世,Visual C++已成為專業(yè)程序員進行軟件開發(fā)的首選工具2020-02-01- 這個 VC++ 6.0 漢化精簡純綠版是專門用來漢化軟件和修改資源用的,所以功能肯定有所縮減。2008-09-24
- VC++ 實效編程百例的隨書代碼,很實用的一本書,因此源代碼也是很實用的,特別是對C++入門者來說,這些實例你不可錯過,它涉及到窗體 、網(wǎng)絡、數(shù)據(jù)庫、GDI、圖形、算法等方2010-07-02
- 本文給大家分享一個可以清理Visual Studio中VC++工程里不需要的文件的腳本,使用起來非常的方便,也非常的好用,推薦給小伙伴們2015-01-19