windbg错误码汇总

文章详细解释了Windows调试过程中遇到的一些关键错误码,包括80000003(断点或断言异常)、c0000005(访问违反)、e0000008、c0000409(堆栈溢出)和c0000374等,分析了各种异常的原因和触发条件,如指针异常、无限递归、堆栈扩展失败和特权指令执行等。

引用: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.线程无法扩展堆栈,因为

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值