昨晚有客戶反應(yīng),產(chǎn)品中的某個(gè)進(jìn)程啟動后1分鐘內(nèi)會消失,看了log未發(fā)現(xiàn)異常。
于是遠(yuǎn)程過去,想看本潰報(bào)告,很遺憾的是,沒有生成任何本潰報(bào)告(我們用的是Debug系列的api寫的Crash Reporter)。情急之下,唯有求助偉大的Windbg了。
attach,g,過一會兒,果然發(fā)現(xiàn)是有一處seh。但隨即發(fā)現(xiàn)缺symbols,于是馬上去發(fā)布服務(wù)器上找相應(yīng)的pdb文件,放到遠(yuǎn)程上去,.reload,果然,未知地址被準(zhǔn)確地翻譯成代碼中的標(biāo)識符。
原來,崩潰的地方是動態(tài)加載的一個(gè)dll中的一個(gè)回調(diào)函數(shù),怪不得沒捕獲到Crash Report。
總結(jié)下來,Release版本的PDB生成是個(gè)關(guān)鍵,單有Windbg仍舊是巧婦難為無米之炊啊。