异常DBG_PRINTEXCEPTION_C(0x40010006)和DBG_PRINTEXCEPTION_WIDE_C(0x4001000A)
Posted 活着的虫子
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了异常DBG_PRINTEXCEPTION_C(0x40010006)和DBG_PRINTEXCEPTION_WIDE_C(0x4001000A)相关的知识,希望对你有一定的参考价值。
简介
DBG_PRINTEXCEPTION_C,代码0x40010006;DBG_PRINTEXCEPTION_WIDE_C,代码0x4001000A;在调试器的控制台窗口打印异常信息/调试信息。它定义在 ntstatus.h头文件里,如下:
//
// MessageId: DBG_PRINTEXCEPTION_C
//
// MessageText:
//
// Debugger printed exception on control C.
//
#define DBG_PRINTEXCEPTION_C ((NTSTATUS)0x40010006L) // winnt
//
// MessageId: DBG_PRINTEXCEPTION_WIDE_C
//
// MessageText:
//
// Debugger printed exception on control C.
//
#define DBG_PRINTEXCEPTION_WIDE_C ((NTSTATUS)0x4001000AL) // winnt
它们唯一的差别是,DBG_PRINTEXCEPTION_C是多字节版本的,DBG_PRINTEXCEPTION_WIDE_C是Unicode版本的。
触发条件
OutputDebugString和其他类似的函数能有效地导致引发Windows异常(DBG_PRINTEXCEPTION_C或DBG_PRINTEXCEPTION_WIDE_C)。附加调试器后,Windows将接收异常并通知调试器。如果没有附加调试器,则将异常传递给程序(作为可继续的错误)。如果程序没有处理异常的处理程序,则继续生活。如果程序执行了,则调用该异常处理程序。,因为通常没有理由当OutputDebugString没有要打印到的调试器时,程序处理该事件。
异常结构填充
ExceptionAddress: 0xXXXXXXXX
ExceptionCode: 40010006/4001000A//错误代码
ExceptionFlags: 00000001
NumberParameters: 2//附加参数个数,一般为2个
Parameter[0]: //信息字符串长度
Parameter[1]://字符串指针
以上是关于异常DBG_PRINTEXCEPTION_C(0x40010006)和DBG_PRINTEXCEPTION_WIDE_C(0x4001000A)的主要内容,如果未能解决你的问题,请参考以下文章
应用程序发生异常 未知的软件异常(0x0eedfade),位置为0x7c812afb
获取内核当前执行模块和当前发生异常地址和线程异常Handler调用步骤
求救 没有注册类(异常来自HRESULT:0x80040154(REGDB_E_CLASSNOTREG))