gpt4 book ai didi

c# - 使用 windbg 进行 .NET 转储分析

转载 作者:行者123 更新时间:2023-11-30 18:02:28 26 4
gpt4 key购买 nike

我正在使用 windbg 和 psscor2.dll 调试 .NET 3.5 CLR 转储扩大。发生异常的代码如下所示:

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

好的,所以使用 !pe 命令我有一个异常(exception)。这是一个空引用异常,但问题的真正原因在上面的某个地方,在 try 中,或者在一个捕获中,并且在那里发生的异常被 finally block 中的这个异常所掩盖。 app在压测中crash了,repro不好做,dump就是我的全部。

因此,向所有 windbg/.NET 内部专家提问。你知道我怎样才能在 finally block 中得到在这个异常之前发生的异常吗?我在堆栈上看不到任何有用的东西(!dso 命令),这或多或少是我的 psscor2 知识结束的地方:)。

谢谢。

最佳答案

  1. 对您的进程使用 windbg attatch,执行“sxe clr”并等待任何空引用第一次机会异常,并使用 !pe 命令检查调用堆栈。
  2. 您可以使用“!dumpheap -type Exception”查找名称中包含单词“Exception”的对象,然后查找 NullReferenceException 对象,使用 .foreach(ex {!dumpheap -short -mt }){!pe ex
  3. 您可以从!dso 或!clrstack -a 中找到参数或局部变量

关于c# - 使用 windbg 进行 .NET 转储分析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8073212/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com