內(nèi)存泄露十分討厭,捕獲內(nèi)存泄露更加令人厭煩……
成都創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司是一家服務(wù)多年做網(wǎng)站建設(shè)策劃設(shè)計(jì)制作的公司,為廣大用戶提供了成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè),成都網(wǎng)站設(shè)計(jì),一元廣告,成都做網(wǎng)站選成都創(chuàng)新互聯(lián),貼合企業(yè)需求,高性價(jià)比,滿足客戶不同層次的需求一站式服務(wù)歡迎致電。其實(shí),VS本身就有內(nèi)存泄露的檢測機(jī)制。只需做以下操作即可開啟。(同時(shí)必須在debug模式 下運(yùn)行程序并且以 正常流程退出 )
// 在入口函數(shù)cpp中添加以下定義和頭文件
#define CRTDBG_MAP_ALLOC
#include <stdlib.h>
#include <crtdbg.h>
// 在入口函數(shù)一開始添加以下代碼
_CrtDumpMemoryLeaks();
_CrtSetDbgFlag ( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF );
// 在入口函數(shù)cpp中添加以下定義和頭文件
#define CRTDBG_MAP_ALLOC
#include <stdlib.h>
#include <crtdbg.h>
// 在入口函數(shù)一開始添加以下代碼
_CrtDumpMemoryLeaks();
_CrtSetDbgFlag ( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF );
然后在以 正常流程退出 程序后, 就會(huì)在輸出窗口顯示出內(nèi)存泄露的信息了。
注意!重點(diǎn)來了。
雖然VS檢測出來了哪里有了內(nèi)存泄露, 但是有可能你得到的有效信息只有兩個(gè) (如下)
1. 未釋放的內(nèi)存大小。(綠色部分 )
2. 這塊內(nèi)存是程序中總計(jì)第幾個(gè)被申請(qǐng)的。(藍(lán)色部分 )。
3. 而申請(qǐng)空間所在代碼的位置可能不會(huì)被顯示(刪除線部分 )。
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.
那么, 如果出現(xiàn)了這種情況, 其實(shí)是根本無法知道哪里出了問題。那么這個(gè)時(shí)候該怎么辦呢?
這個(gè)時(shí)候需要使用這個(gè)函數(shù)。
//num就是剛剛檢測出來的內(nèi)存泄露的地方大括號(hào)內(nèi)的數(shù)字
_CrtSetBreakAlloc(num);
//num就是剛剛檢測出來的內(nèi)存泄露的地方大括號(hào)內(nèi)的數(shù)字
_CrtSetBreakAlloc(num);
這個(gè)函數(shù)的作用是,在你運(yùn)行程序的時(shí)候,會(huì)在第num次申請(qǐng)空間時(shí)斷點(diǎn)。
所以,你需要重新運(yùn)行一遍程序 。(只要流程一樣,內(nèi)存申請(qǐng)順序肯定是一樣的,所以會(huì)正確的在需要的地方斷掉。)
注意,之前提示的內(nèi)存泄露中大括號(hào)內(nèi)的數(shù)值就是指的第幾次申請(qǐng)的空間泄露了。
這個(gè)時(shí)候查看堆棧調(diào)用 ,即可知道到底是在哪里申請(qǐng)了內(nèi)存但是忘記釋放掉了。然后將這塊內(nèi)存在合適的時(shí)候釋放掉就行了。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
當(dāng)前文章:VS中捕獲內(nèi)存泄露-創(chuàng)新互聯(lián)
文章地址:http://muchs.cn/article20/idhco.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、服務(wù)器托管、ChatGPT、建站公司、網(wǎng)站內(nèi)鏈、搜索引擎優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容