什么是CLR Exception---E0434352
CLR異常是.NET應用程序生成的異常類型。異常被封裝在從System.exception類派生的類中。它的異常代碼是0xE0434352,代碼的后面三個字節對應assic碼的 "CCR",所以又叫CCR異常。
異常代碼e043432可以是任何內容。它只是表示一個CLR異常,它有很多很多類型。要獲得更多信息,您必須使用類似的工具
!PrintException
輸出異常的信息
E0434352的異常結構填充
當發生了E0434352的CLR Exception時,Exception_Record結構各成員填充值如下:
ExceptionAddress: 760d35d2 (KERNELBASE!RaiseException+0x00000062) //引發異常地址
ExceptionCode: e0434352 (CLR exception) //異常代碼
ExceptionFlags: 00000001
NumberParameters: 5 //附加參數個數
Parameter[0]: 80070057 //映射的HRESULT值,代表的具體錯誤,對應一個 CLR異常類型
Parameter[1]: 00000000
Parameter[2]: 00000000
Parameter[3]: 00000000
Parameter[4]: 542b0000 //clr.dll模塊被加載到進程空間里的基址
一般調試分析步驟
下面的步驟主要針對包含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