【问题标题】:Diagnosing CLR errors in Windows Event Viewer在 Windows 事件查看器中诊断 CLR 错误
【发布时间】:2010-10-17 04:44:31
【问题描述】:

我们有一个在生产中崩溃的 .NET 桌面应用程序。我们如何诊断错误?我想知道发生的异常类型、错误消息和堆栈跟踪。

由于我们的代码没有处理异常,我们收到了 “此应用程序遇到问题,需要关闭” Windows 消息框。唯一的选择是关闭,没有调试按钮。

This MSDN article 建议查看 Windows 事件注册表。我查了一下,里面的信息是这样的:

故障应用程序 Initect.Server.UI.exe, 版本 0.12.9084.90, 时间戳 0x49cac472, 错误模块 KERNEL32.dll, 版本 6.0.6001.18000, 时间戳 0x4791a81d, 异常代码 0xe0434f4d, 故障偏移量 0x0002f35f, 进程 ID 0x44c, 应用程序启动时间 0x01c9ada7f320cab0

这些信息如何告诉我异常类型、堆栈跟踪和错误消息?

【问题讨论】:

    标签: exception exception-handling clr event-log crash-dumps


    【解决方案1】:

    这些信息不足以让您获得堆栈跟踪、异常类型、错误消息等。

    您可以在 Windows Server 2008 上配置 Windows 错误报告(向您显示问题并需要关闭 UI)以始终收集转储文件,然后您可以进行调试。这不需要您在生产环境中安装 Visual Studio 或任何其他调试器。

    http://blogs.technet.com/askperf/archive/2008/02/05/ws2008-windows-error-reporting.aspx 显示了执行此操作的正确注册表设置。

    【讨论】:

    • 您发送的链接向我展示了如何生成迷你转储。我该如何处理小型转储?
    • 您可以在 Visual Studio 中打开它们进行事后调试。它们显示崩溃时您的进程状态。
    • msdn.microsoft.com/en-us/library/d5zhxt22.aspx 看起来是一个很好的起点。
    • 谢谢。我必须顺便说一句,这似乎比它应该做的要困难得多。似乎CLR在遇到未处理的托管异常时应该自动将错误信息放入日志中。
    • 链接已损坏。你有新的吗?
    猜你喜欢
    • 2016-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多