无需Windbg | 使用VS 2019调试.NET程序的Crash异常
前言
某臺(tái)服務(wù)器上的IIS應(yīng)用程序池,最近經(jīng)常會(huì)自動(dòng)關(guān)閉。
查看服務(wù)器上的事件日志,發(fā)現(xiàn)在關(guān)閉時(shí),w3p.exe拋出了stackoverflow異常。
幸好,Windows自動(dòng)幫我們抓取了Crash的dump文件:
一般來(lái)說(shuō),我們會(huì)使用windbg來(lái)分析dump文件,但是對(duì)于這種異常dump,更簡(jiǎn)單的方法是使用VS 2019。
分析方法
1.打開(kāi)dump文件
雙擊memory.hdump,默認(rèn)應(yīng)該可以直接打開(kāi)VS 2019,也可以使用菜單“文件”->“打開(kāi)”->“文件”,打開(kāi)dump文件。
在打開(kāi)的界面中,左側(cè)是dump文件的基礎(chǔ)信息,右側(cè)是常用操作:
2.設(shè)置符號(hào)路徑
在進(jìn)行調(diào)試之前,需要先設(shè)置調(diào)試文件路徑,這樣調(diào)試時(shí)才能正確顯示調(diào)用的模塊方法。
點(diǎn)擊“設(shè)置符號(hào)路徑”,在符號(hào)文件位置加入應(yīng)用程序?qū)?yīng)的.pdb文件路徑:
3.執(zhí)行調(diào)試
點(diǎn)擊“使用僅限托管進(jìn)行調(diào)試”,等待一會(huì),可以看到拋出的未處理的異常:
由于是在本機(jī)調(diào)試,結(jié)果發(fā)現(xiàn)在堆棧窗口中還是無(wú)法看到方法名,提示定位不到dll。
因此,把服務(wù)器上的應(yīng)用程序dll也復(fù)制到符號(hào)路徑下,再次調(diào)試,就可以正常顯示了。
結(jié)論
根據(jù)調(diào)用堆棧定位到的方法,我們輕松找到了問(wèn)題原因并解決。
使用VS 2019調(diào)試dump,比windbg上手簡(jiǎn)單許多,你還不趕快試試!
如果你覺(jué)得這篇文章對(duì)你有所啟發(fā),請(qǐng)關(guān)注我的個(gè)人公眾號(hào)”My IO“
總結(jié)
以上是生活随笔為你收集整理的无需Windbg | 使用VS 2019调试.NET程序的Crash异常的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 体验.NET Core使用IKVM对接J
- 下一篇: 技术分享 | 一条神奇的曲线——贝塞尔曲