KERNELBASE.dll异常0xe0434352偏移0x000000000000a49d。

32

最近,我从我们一位客户运行我们的应用程序的虚拟机上收到了一些系统事件日志。

我注意到日志中有以下条目:

Description: The process was terminated due to an unhandled exception.
Framework Version: v4.0.30319
4/22/2014 5:05:28 PM;"Error";".NET Runtime";"1026";"Application: MyApp.exe
Report Id: d50fe7ab-ca61-11e3-9e10-6805ca17040a"
Faulting module path: C:\Windows\system32\KERNELBASE.dll
Faulting application path: C:\Program Files\MyApp\bin\MyApp.exe
Faulting application start time: 0x01cf5e44d3e971c2
Faulting process id: 0x13fc
Fault offset: 0x000000000000a49d
Exception code: 0xe0434352
Faulting module name: KERNELBASE.dll  version: 6.1.7601.17514  time stamp: 0x4ce7c78c
4/22/2014 5:05:29 PM;"Error";"Application Error";"1000";"Faulting application name: MyApp.exe  version: 1.2.1403.7002  time stamp: 0x5319d243

跟着一个巨大的rdlc堆栈跟踪,在"目录名称无效"结束。

我一直在尝试确定Fault offset: 0x000000000000a49d Exception code: 0xe0434352实际意味着什么。到目前为止,我只能说它可能与用户访问权限有关,KERNELBASE.dll文件可能已经损坏,或者这可能是某种神秘的Microsoft巫术。

有没有人对这意味着什么有明确的答案?或者有msdn Lync详细解释这个问题吗? 我真的很想了解这个问题背后的全部细节。


听起来你在应用程序中处理文件IO时可能错过了一些异常处理。这将是开始的第一个地方。另外,你应该发布完整的堆栈跟踪,不要害羞。 - Ashigore
@Ashigore,所提到的异常来自于Microsoft.Reporting.WinForms.LocalProcessingException,它基本上表示提供的导出路径无效。这毫无意义,因为在调用导出之前,我创建了所有必需的目录结构,并且没有任何问题的迹象。 - memory of a dream
@memoryofadream 有没有可能在创建目录和写入文件之间存在竞态条件?也许在创建目录后插入一个循环检查,以检查该路径现在是否有效,然后再继续进行操作? - Ashigore
@Ashigore 感谢您的建议,但这不可能是问题。我的日志显示该文件夹已成功创建于去年十月,并且此导出功能自那时以来一直在使用它而没有任何问题。我唯一的猜测是该应用程序没有足够的权限在此文件夹中创建文件。至少在此次运行期间是如此。这就是为什么我正在尝试理解这些CLR代码。我希望它们可以为某些事情提供一些启示。 - memory of a dream
@leppie 谢谢链接。我应该理解所讨论的异常代码代表一个AppDomain.UnhandledException吗? - memory of a dream
1个回答

56

0xe0434352是CLR异常的SEH代码。如果您不理解这意味着什么,请停下来阅读深入Win32™结构化异常处理的崩溃课程。因此,您的进程未处理CLR异常。请不要攻击KERNELBASE.DLL,它只是不幸的受害者。罪犯是MyApp.exe。

在DrWatson文件夹中应该有崩溃的minidump和完整堆栈,它将包含您需要的所有内容来确定问题的根本原因。

我建议您在myapp.exe代码中适当地连接AppDomain.UnhandledExceptionApplication.ThreadException


2
谢谢,那帮了我大忙。我已经包装了我的代码以捕获所有异常,结果发现是缺少某个第三方程序集。在 Exception.Message 中清楚地显示了哪个文件找不到。 - dmihailescu
对我来说,我已经更新到SP1(从13.0.1728.2到13.0.4001.0)。在安装Visual Studio、数据工具和其他东西之后,可能会出现某些损坏的情况。这不应该引起问题,但需要考虑一下。 :) - Chiramisu
3
你的链接已失效,这里提供一个替代链接: https://www-user.tu-chemnitz.de/~heha/viewchm.php/hs/Win32SEH.chm/Win32SEH.htm - Elaskanator
那个链接也失效了。请看这个链接:https://bytepointer.com/resources/pietrek_crash_course_depths_of_win32_seh.htm - Barış Akkurt

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接