游戲中經(jīng)常會(huì)出現(xiàn)崩潰地址的情況,這讓我很惱火,在網(wǎng)絡(luò)上面看到了一些處理方法,主要有這幾種: 1)map file,2) crashFinder,3)BoundsChecker,4)dump文件,主要是這些信息,現(xiàn)在主要說明第四種方法的處理.
這種方法主要是用一個(gè)MiniDumpWriteDump函數(shù)將信息寫入到dmp文件里面去,以及系統(tǒng)的宏__try,和__except.在__except里面就進(jìn)行異常的處理-寫MiniDumpWriteDump函數(shù).
今天在寫好了一個(gè)小demo之后,想將他移植到游戲工程里面去的時(shí)候,發(fā)現(xiàn)一個(gè)很詭異的做法:
error C2712: Cannot use __try in functions that require object unwinding
感覺很驚訝,
后來在網(wǎng)絡(luò)上面查找了一些資料,主要涉及到幾個(gè)點(diǎn):命令參數(shù)(GX,SEH,EHSc),
GX-允許異常處理.SEH-結(jié)構(gòu)化異常處理,EHSc-
http://msdn.microsoft.com/en-us/library/1deeycx5(VS.80).aspx
詳細(xì)的情況請(qǐng)查閱MSDN.
因?yàn)檫@樣C++和SEH的東西(__try/__except)不能混淆起來,所以將他在另外一個(gè)函數(shù)里面給出來.
http://www.codeguru.com/forum/archive/index.php/t-199810.html
http://www.codeproject.com/KB/cpp/exception.aspx
http://msdn.microsoft.com/en-us/library/xwtb73ad(VS.80).aspx