所有Managed异常的HRESULT都是0xE0434352(无法用Error Lookup找到这个Error Code)。
通常在Event Log或者WinDBG所见到的Managed异常如下:
CLR exception - code e0434352
通常情况下First Chance Exception不是真正能导致程序Crash的异常,通常这个异常可以通过try…catch来捕获。只有当这个异常无法被捕获时才会升级为Second Chance Exception,这个异常会导致Crash。
可以用过WinDBG的命令sxe e0434352来使Debugger在First Chance Exception的时候Break。
继续Debug
可以看出Thread 4出现了一个System.Exception,还能看出这是一个First Chance Exception。
WinDBG报了Second Chance Exception,这导致了程序Crash。
慢慢玩儿,有点意思。
sxe 我懂。!pe 不记得用过,这是扩展命令,不知是哪个模块的。用 windbg 调试 .Net 程序有种用手术刀切菜的感觉...
ReplyDeleteBTW, 顺手查了一下张银奎写的《软件调试》(这书我买了又给人借走,只留电子版),其中写道:
“托管异常,这是.Net程序使用托管方法抛出的异常。所有这类异常的异常代码都是 0xe0636f6d (.com)”
我没有证实。
你的 e0434352 用 ASCII 翻译是(.CCR),莫非是这个意思?
!pe在sos.dll中,是WinDBG的.net扩展。
ReplyDeleteVS自然很好,但是有时候莫名其妙的错误不是我代码的问题...
我也奇怪张银奎的异常代码会和我的那么不一样,根据更权威的资料:
basically all managed exception are natively referred to as 0xe0434f4d
有神奇了,难道版本不一样error code也不一样??
再补充一下:
ReplyDelete这本和这本值得一看。