Debugging .exr ExceptionFlags与.lastevent冲突

Debugging .exr ExceptionFlags与.lastevent冲突,debugging,exception-handling,windbg,internals,Debugging,Exception Handling,Windbg,Internals,今天我看到了一个.NET NullReferenceException,它应该是第一次出现的异常,因为异常被捕获并显示为MessageBox 在WinDbg中,它看起来如下所示: 0:000> .exr -1 ExceptionAddress: 000007fe8e5794ba ExceptionCode: c0000005 (Access violation) ExceptionFlags: 00000000 NumberParameters: 2 Parameter[0

今天我看到了一个.NET NullReferenceException,它应该是第一次出现的异常,因为异常被捕获并显示为MessageBox

在WinDbg中,它看起来如下所示:

0:000> .exr -1
ExceptionAddress: 000007fe8e5794ba
   ExceptionCode: c0000005 (Access violation)
  ExceptionFlags: 00000000
NumberParameters: 2
   Parameter[0]: 0000000000000001
   Parameter[1]: 0000000000000149
Attempt to write to address 0000000000000149
我想知道
ExceptionFlags
是否包含该信息,但WinDbg帮助
.hh.exr
没有解释输出

阅读,我发现了

  • 此成员可以为零,表示可继续的异常
  • 或异常\u不连续表示不连续的异常
这个异常值为1

到目前为止,这符合我的期望,我有一个第一次机会例外

但后来我做到了

0:000> .lastevent
Last event: 12c0.b2c: Access violation - code c0000005 (first/second chance not available)

为什么
.lastevent
认为信息不存在?哪个命令更可靠?

我想知道同一线程或其他线程是否有任何其他异常记录。IIRC,它们在堆栈上。在x86中,可以在堆栈中搜索0x1003f,但不能确定x64。也许可以查看所有线程堆栈,看看是否有其他线程引发了异常。我想知道是否有其他异常记录用于同一线程或其他线程。IIRC,它们在堆栈上。在x86中,可以在堆栈中搜索0x1003f,但不能确定x64。也许可以查看所有线程堆栈,看看是否有其他线程引发了异常。