簡體   English   中英

使用windbg進行.NET轉儲分析

[英].NET dump analysis using windbg

我正在使用windbg和psscor2.dll擴展調試.NET 3.5 CLR轉儲。 發生異常的代碼如下所示:

try 
{
 ...
}
catch
{
 ...
}
catch
{
 ...
}
finally
{
 ...
 // exception I found in the dump happened here.
 ...
}

好的,所以使用!pe命令我有一個例外。 它是一個空引用異常,但問題的真正原因是在上面,try或其中一個catch中,並且發生的異常在finally塊中被這個掩蓋。 應用程序在壓力測試中崩潰,所以創建一個repro並不容易,所以dump就是我擁有的一切。

所以,對那里所有windbg / .NET內部大師提出質疑。 你知道如何在finally塊中獲得在此之前發生的異常。 我沒有看到任何有用的堆棧( !dso命令),這或多或少是我的psscor2知識結束的地方:)。

謝謝。

  1. 使用windbg attatch到你的進程,執行“sxe clr”並等待任何空引用第一次機會異常並使用!pe命令檢查callstack。
  2. 您可以使用“!dumpheap -type Exception”查找名稱中包含單詞“Exception”的對象,然后找到NullReferenceException對象,使用.foreach(ex {!dumpheap -short -mt}){!pe ex}
  3. 您可以從!dso或!clrstack -a中找到參數或局部變量

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM