今天我看到了一个.NET NullReferenceException,其中IMHO应该是第一次机会异常,因为异常被捕获并显示为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
无法解释输出。
阅读MSDN for EXCEPTION_RECORD structure,我发现了
和also on MSDN表示EXCEPTION_NONCONTINUABLE的值为1.
到目前为止,这符合我的期望,我有第一次机会例外。
但后来我做了
0:000> .lastevent
Last event: 12c0.b2c: Access violation - code c0000005 (first/second chance not available)
为什么.lastevent
认为信息不存在?哪个命令更可靠?