如何解释 WinDbg 中显示的异常代码?

How to interpret exception codes shown in WinDbg?

我正在调试一个正在崩溃的 Windows 应用程序。启动应用程序后,用 WinDbg 附加到它,然后让它崩溃,WinDbg 命令中出现以下内容 window:

(119c.1794): Unknown exception - code 0000071a (first chance)

我一直在网上搜索,但没有找到任何关于如何解释这些异常代码的解释。

如果有所不同,它是 64 位 Windows 8(通过 WoW64)上的 32 位 .NET 应用程序 运行。

WinDbg 在知道时已经显示了异常的名称:

(15c0.1370): Break instruction exception - code 80000003 (first chance)

您可以通过 .exr -1 获得更多详细信息:

0:009> .exr -1
ExceptionAddress: 77d5000c (ntdll!DbgBreakPoint)
   ExceptionCode: 80000003 (Break instruction exception)
  ExceptionFlags: 00000000
NumberParameters: 1
   Parameter[0]: 00000000

您还可以按照@rrirower 的建议显示 NTSTATUS 代码:

0:009> !gle
LastErrorValue: (Win32) 0 (0) - The operation completed successfully.
LastStatusValue: (NTSTATUS) 0 - STATUS_WAIT_0

并且这些状态码可以用!error解码。它将考虑 Win32、Winsock、NTSTATUS 和 NetApi 错误:

0:009> !error 0000071a 
Error code: (Win32) 0x71a (1818) - The remote procedure call was cancelled.