內存泄露調試之 _CrtSetBreakAlloc

在用VS或者VC進行編程的過程中,經常會在編譯器的輸出窗口看到類似下面的內容:

Detected memory leaks!
Dumping objects ->
{52} normal block at 0x006D2498, 512 bytes long.
Data: < > 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
{51} normal block at 0x006D2440, 24 bytes long.
Data: < 4 > 10 34 14 00 FF FF FF FF 00 00 00 00 00 00 00 00
Object dump complete.

這就是內存泄露。 具體是哪裏發生了內存泄露呢,可以用_CrtSetBreakAlloc 來查找。

方法: 在程序中內存泄露開始之前,最好是程序啓動的地方,加上下面的代碼:

_CrtSetBreakAlloc(52);

調試啓動Debug版程序,就會在這個地方觸發斷點,

這個時候我們利用 "調試" –> "退出" ,快捷鍵爲:"Shift + F11" .

跳出當前函數..然後一直往"上"跳,邊跳邊查看調用棧.直到看到了自己寫的代碼,這就是內存泄露的地方啦。

發佈了11 篇原創文章 · 獲贊 40 · 訪問量 32萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章