简介

CLRDBG_NOTIFICATION_EXCEPTION_CODE,值为0x0x04242420。此异常在.CLR 4.0的启动路径期间触发,是CLR4.0版本初始化调试服务时向调试器发送消息通知。个人认为这应该只在附加调试器时抛出。

详细说明

这实际上是一个未记录的异常(CLRDBG_NOTIFICATION_exception_CODE),它显然是对4.0clr中托管调试器使用的IPC协议的一个补充。忽略它应该是完全安全的。

此特定异常并不表示发生了错误,而是表示CLR正在尝试向调试器发送消息。最有可能的情况是,您看到的异常对应于运行时启动事件,这是一条消息,指示CLR已初始化到足以让启蒙调试器开始与其交互。如果VS启用了托管调试,它将理解该消息并通知调试人员在将来继续生成这些消息。当然,聪明的调试器不会将它们显示为原始异常,它将解码它们的含义,而是在内部进行更新,例如“加载了新的应用程序域”或“反射发出刚刚在内存中创建了一个新类型”。或者,如果调试器没有托管代码,它将无法识别此异常的任何特殊情况没有特别回应。如果没有响应,CLR假设调试器没有为托管代码提供服务,并且不应该发送任何进一步的消息(异常)。

异常填充结构

ExceptionAddress: 762819b2 (KERNELBASE!RaiseException+0x00000062)//抛出地址
ExceptionCode: 04242420//异常代码
ExceptionFlags: 00000000
NumberParameters: 3//参数个数,一般为3个
   Parameter[0]: 31415927//是个常量,不知什么意思
   Parameter[1]: 721a0000//CLR4.0 clr.dll模块加载基址
   Parameter[2]: 00bef768//struct DebuggerIPCEvent const *调试器IPC事件指针