打開任務(wù)管理器,點(diǎn)擊菜單“查看”——“選擇列”,勾上所有項(xiàng),“確定”。運(yùn)行自己的程序,進(jìn)行各種操作,并查看任務(wù)管理器中GDI對象和句柄數(shù)的變化。
如果在某次可逆操作中,例如,彈出一個(gè)對話框,然后關(guān)閉,GDI對象或句柄數(shù)先增加了,然后減少了,但是總量還是增加了,說明存在內(nèi)存泄露,GDI對象沒有被及時(shí)回收。如果句柄數(shù)出現(xiàn)類似情況,則情況復(fù)雜很多。
接下來,注釋掉某些代碼,編譯運(yùn)行并繼續(xù)觀察,逐步定位導(dǎo)致內(nèi)存泄露的代碼段。
實(shí)例:
某程序運(yùn)行時(shí),彈出一個(gè)窗口,再關(guān)閉,GDI對象數(shù)目就增加了一個(gè)。經(jīng)過一個(gè)多小時(shí)的分析,最后定位出問題所在,如下: