如果你是C/C++程序員,如果你寫過(guò)一個(gè)很復(fù)雜的程序,如果你經(jīng)常碰到莫名其妙的崩潰問(wèn)題。那么你就有可能遭遇了野指針。如果你比較細(xì)心,注意了Debug output輸出窗口的話,那么你就有可能注意到這樣一行提示:
網(wǎng)絡(luò)上關(guān)于這個(gè)問(wèn)題提問(wèn)的人不少,但是真正給的出答案的卻少之又少。
那么何為野指針呢?野指針與NULL指針不同.所謂野指針是指指針?biāo)傅膬?nèi)存已經(jīng)回收,而繼續(xù)使用該指針,導(dǎo)致未定義行為.
===============================================================
我們?cè)O(shè)置好Path環(huán)境變量,將其指向Debug tools工具的目錄下。 輸入如下命令行: gflags /p App.exe /full 或者 pageheap app.exe /full 該命令行會(huì)在注冊(cè)表里設(shè)置一些調(diào)試參數(shù),使內(nèi)存在使用的時(shí)候加入了保護(hù)機(jī)制,所以一旦內(nèi)存寫越界,或者發(fā)生野指針的問(wèn)題,都會(huì)導(dǎo)致一個(gè)中斷。由此,你就可以確定問(wèn)題到底出在哪里了。
|