catch access violation exception 遇到一個(gè)蛋疼的程序崩潰問題,debug模式下程序直接卡死,minidump可以定位到出錯(cuò)的代碼,但捕捉到的數(shù)據(jù)太少,無法確定什么位置引起的內(nèi)存訪問錯(cuò)誤。如果可以捕捉到這個(gè)異常設(shè)置斷點(diǎn),調(diào)試起來會(huì)方便很多。由于access viol
catch access violation exception
遇到一個(gè)蛋疼的程序崩潰問題,debug模式下程序直接卡死,minidump可以定位到出錯(cuò)的代碼,但捕捉到的數(shù)據(jù)太少,無法確定什么位置引起的內(nèi)存訪問錯(cuò)誤。如果可以捕捉到這個(gè)異常設(shè)置斷點(diǎn),調(diào)試起來會(huì)方便很多。由于access violation exception是ms定義的異常類型,普通編譯方式下try{} catch(...){}無法捕獲到此異常。Google了一下,有幾種方式可以捕獲到ave,最簡單的就是修改編譯屬性:Project Properties -> C/C++ -> Code Generation -> Modify the Enable C++ Exceptions to "Yes With SEH". 這樣catch(...){}就可以正確捕獲到vae了:) 此法最好只在調(diào)試時(shí)使用,正常發(fā)布的因此應(yīng)該堅(jiān)持使用默認(rèn)編譯屬性,同時(shí)避免catch vae錯(cuò)誤.
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com