剛修改的服務,推到開發環境之後,總是時不時的崩潰,但是不知道為什麼。嘗試找到他的最後一次呼叫,也沒有復現。
沒有辦法,只能抓dump了。
開啟崩潰自動dump,網路上很多,不贅述了。
拿到dump之後,首先看看是什麼型別的異常
如圖所示,是個棧溢位的異常。
列印一下堆疊,發現密密麻麻的全是這個程式碼。
我們找到這個物件,發現裡邊有個隱式轉換的程式碼有點問題。
隱式轉換的應該是將傳入的內容轉為轉出的格式,結果在返回的時候,返回了傳入的型別,導致,他想要轉成目標型別的時候,又觸發了隱式轉換,然後就無限遞迴了。
最後排查專案中所有的類似程式碼,發現只有這一處,沒有windbg基本上很難排查到具體原因。 windbg 牛B