windbg错误码汇总

引用:windows码农屠龙手册

windbg错误码汇总

80000003

Break instruction exception
中断指令异常,表示在系统未附加内核调试器时遇到断点或断言,通常中断指令异常可以在以下条件下触发:
a.硬代码中断请求,如:asm int 3
b.System.Diagnostics.Debugger.Break(C 35)
c.DebugBreak()(WinAPI)
d.操作系统启用内存运行时检查,就像应用程序验证程序在堆损坏、内存溢出后会触发一样。
e.编译器可以有一些配置来启用未初始化的内存块和函数结束时应填充的内容(在重新运行…后的空白区域)。例如,如果启用/GZ,Microsoft VC编译器可以填充0xCC。0xCC实际上是asm int 3的操作码。所以如果某个错误导致应用程序运行到这样的块中,就会触发一个断点。

c0000005

Access violation
非法访问,导致的原因:

  1. 指针异常。引用指针前判断指针是否为空
  2. 数据越界。
e0000008
c0000409

Security check failure or stack buffer overrun
堆栈溢出是用户模式线程可能遇到的错误。有三个可能的原因导致此错误:
a.线程使用为其保留的整个堆栈。这通常是由无限递归引起的。
b.线程无法扩展堆栈,因为页面文件已用完,因此无法提交任何其他页面来扩展堆栈。
c.线程无法扩展堆栈,因为系统在用于扩展页面文件的短暂时间内。

c0000374
c0000096

Unknown exception - code c0000096 (first/second chance not available)
特权指令是一种处理器操作码(汇编指令),它只能在0环模式下执行。这些类型的指令通常用于从windows内核访问I/O设备和受保护的数据结构。
常规程序以“用户模式”(环3)执行,这不允许直接访问I/O设备等。原因可能是堆栈损坏或函数指针调用混乱。当使用指向无效数据的函数指针时,通常会发生这种情况。如果您的代码破坏了返回堆栈,也可能发生这种情况。有时追踪这类bug可能相当棘手,因为它们通常很难复制。


windbg错误码汇总_第1张图片

你可能感兴趣的:(软件调试,windows码农屠龙手册,windbg,错误码)