【问题标题】:it is possible to get the crash details of a application that triggers Microsoft Windows Error Reporting?是否可以获得触发 Microsoft Windows 错误报告的应用程序的崩溃详细信息?
【发布时间】:2011-12-22 22:05:51
【问题描述】:

我有一个用 C# 编写的应用程序。此应用程序被 Windows 锁定,返回类似:“xxx 应用程序已停止工作”。

是否有可能获得这次崩溃的原因?我尝试在整个应用程序中使用 try{} catch{},但没有成功。它适用于我的电脑,但不适用于我朋友的电脑。 两台计算机具有相同的配置:

  • Windows 7 7 Ultimate 32 位
  • 处理器:2.13GHz
  • 内存:2gb

更新

嗯,在我朋友的电脑事件日志中,我发现了崩溃的一些细节:

Faulting application name: xxxx.exe, version: 1.0.0.0,time stamp:0x4eb5e63a
Fault Module Name:KERNELBASE.dll, version: 6.1.7600.16850, time stamp:0x4e21132b
Exception Code:0xe0434352
Identification of the process that failed: 0x26c
Start time of the faulting application: ... 
Faulting application path: ... \xxx.exe 
Path F module failures: C:\Windows\system32\KERNELBASE.dll
Report ID: xxxxx-yyyy-dddd-dddd-aaaaaa

更新 2

最后,我找到了导致异常的函数。 用try {}catch (Exception Err) {}处理函数我发现了一些异常细节:

Err.Message:The device is not ready
Err.Source: mscorlib

我该如何解决?

【问题讨论】:

  • 您查看过事件日志吗?
  • 您是否在代码中使用了某种 c++ 包装类?还是你引用了c++ wrapper dll?
  • 没有人可以告诉你如何在没有看到代码的情况下修复它,你没有做太多的事情。听起来您没有在朋友的机器上调试应用程序。如果你调试它,你应该能够找出导致错误的代码。
  • 我有1687行代码(包括2个winForms,3个库一个我写的)。
  • 函数试图访问什么设备

标签: c# winforms windows-7


【解决方案1】:

很可能是缺少依赖项。仔细检查以确保您的程序正在安装它需要的所有 Dll。我遇到过类似的问题,通常是 .ocx 文件未正确注册或不存在。

就您的问题而言,请尝试使用 .Net Framework SDK 或 Visual Studio 中的 MDbg.exe 文件。微软还有其他debugging tools 可用。

【讨论】:

  • 你好,马克·霍尔。提前,感谢您的回复。我发现了崩溃的一些细节。问题已更新..但我会测试你提到的解决方案。
  • @TheMask:也许确保您的程序正在安装部分就足够了。应该问,因为你没有提到它:你做了部署吗? (即设置项目)。
【解决方案2】:

“在我的机器上工作”是一个非常常见的问题,原因有很多。通常原因是两台机器之间有些不同。一些容易排除的事情:

  • 你朋友的电脑是安装Visual Studio的开发机器吗?
  • 您的应用程序是否依赖于特定路径(例如,D: 驱动器)、数据库、服务、COM 组件或安装包应包含的其他内容?
  • 您朋友的 UAC 配置是否与您不同?你们中的一个是否以帐户管理员身份登录,而另一个使用管理员组中的另一个帐户?
  • 您是否在朋友的机器上测试了调试版本?调试版本通常不可再分发
  • 您是否测试了某个类库的 exe 版本 x 和 y 版本,却忘记了您昨天对其中一个进行了更改?
  • 您和您的朋友是否有不同版本的 IE、Office 或该应用程序可能使用的某些其他组件?您是否有不同的 IE 设置(例如代理?)
  • 这两台计算机是否都完全赶上了更新和服务包?
  • 应用程序是否试图访问您朋友机器上没有的硬件(麦克风、网络摄像头)或两台机器之间存在明显差异的硬件?

您的问题的字面答案是肯定的,您可以注册一个名为 Windows 错误报告的东西,并获取对话框说它正在收集的报告。但是,我真诚地怀疑您是否想要它们。您应该拥有在您所在的位置找到错误所需的所有信息。专注于两台机器之间的不同(即使您认为它无关紧要)。

【讨论】:

    猜你喜欢
    • 2021-11-09
    • 2023-01-03
    • 1970-01-01
    • 2016-07-02
    • 2015-01-11
    • 1970-01-01
    • 2010-10-27
    • 2019-09-15
    • 1970-01-01
    相关资源
    最近更新 更多