什么是CLR Exception---E0434F4D

就是公共语言运行时(CLR)异常,异常代码为0xE0434F4D。因此任何托管异常,如NullReferenceException、invalidooperationexception或SQLException…基本上所有托管异常都在本机中称为0xe0434f4d。代码的后面三个字节对应assic码的 "COM",所以又叫COM异常。

异常代码e043432可以是任何内容。它只是表示一个CLR异常,它有很多很多类型。要获得更多信息,您必须使用类似的工具!PrintException输出异常的信息。

E0434F4D的异常结构填充

当发生了E0434F4D的CLR Exception时,Exception_Record结构各成员填充值如下:

ExceptionAddress: 77e4bee7 (kernel32!RaiseException+0x00000053)//引发异常地址

ExceptionCode: e0434f4d (CLR exception)//异常代码

ExceptionFlags: 00000001

NumberParameters: 1//附加参数个数,可能为0

  Parameter[0]: 80131509//映射的HRESULT值,代表的具体错误,对应一个 CLR异常类型

附加参数的个数可能为0,此时一般对应clr COMException

一般调试分析步骤

下面的步骤主要针对包含E0434352异常的dmp分析的:

观察异常信息

输入.exr -1观察异常结构,确定两个信息:

  • Exception Code
  • Parameter[0] - HRESULT

获取CLR异常具体信息

输入!sos.pe来获取如下信息:

  • Exception object - address of class instance
  • Exception type - Class name of the exception
  • Message - String description of the exception
  • Inner Exception - Address of the inner exception
  • Stack Trace