剛修改的服務,推到開發(fā)環(huán)境之后,總是時不時的崩潰,但是不知道為什么。嘗試找到他的最后一次調(diào)用,也沒有復現(xiàn)。 沒有辦法,只能抓dump了。 開啟崩潰自動dump,網(wǎng)絡上很多,不贅述了。 拿到dump之后,首先看看是什么類型的異常 如圖所示,是個棧溢出的異常。 打印一下堆棧,發(fā)現(xiàn)密密麻麻的全是這個代碼。
剛修改的服務推到開發(fā)環(huán)境后,經(jīng)常出現(xiàn)崩潰的情況,但原因卻難以捉摸。嘗試找到最后一次調(diào)用,卻無法復現(xiàn)。
為了解決問題,只能進行dump抓取。
開啟崩潰自動dump,網(wǎng)絡上有很多相關方法,這里就不再贅述。
拿到dump后,首先需要查看異常類型。
從圖中可以看出,出現(xiàn)了棧溢出異常。
打印堆棧后,發(fā)現(xiàn)代碼中充斥著這個異常。
我們找到了這個對象,發(fā)現(xiàn)其中的隱式轉(zhuǎn)換代碼存在問題。
隱式轉(zhuǎn)換應該是將傳入的內(nèi)容轉(zhuǎn)換為指定的格式,但結(jié)果在返回時卻返回了傳入的類型,導致在嘗試轉(zhuǎn)換為目標類型時再次觸發(fā)了隱式轉(zhuǎn)換,從而導致無限遞歸。
最后,排查項目中所有類似代碼,發(fā)現(xiàn)只有這一處存在問題。如果沒有使用windbg,基本上很難找到具體原因。Windbg真是牛B。
小編推薦閱讀本站所有軟件,都由網(wǎng)友上傳,如有侵犯你的版權(quán),請發(fā)郵件[email protected]
湘ICP備2022002427號-10 湘公網(wǎng)安備:43070202000427號© 2013~2025 haote.com 好特網(wǎng)