我有一个用C#编写的应用程序。此应用程序通过Windows锁定,返回类似:“xxx应用程序已停止工作”。
有可能找到这次崩溃的原因吗?我尝试在整个应用程序中使用try {} catch {}但没有成功。它适用于我的电脑,但不适用于我朋友的电脑。 两台计算机都具有相同的配置:
更新
好吧,在我朋友的计算机日志中,我发现了一些崩溃的细节:
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
我该如何解决?
答案 0 :(得分:3)
“在我的机器上工作”是一个非常常见的问题,有无数的原因。通常原因是两台机器之间存在某些不同。一些容易排除的事情:
您的问题的字面答案是肯定的,您可以注册一个名为Windows错误报告的内容,并获取该对话框所说的正在收集的报告。但是,我真诚地怀疑你是否想要它们。您应该拥有所需的所有信息,以便在您所处的位置找到错误。专注于两台机器之间的不同之处(即使你认为它是无关紧要的)。
答案 1 :(得分:1)
很可能是缺少依赖性。仔细检查以确保您的程序正在安装它所需的所有Dll。我遇到了类似的问题,通常是.ocx文件未正确注册或不存在。
就您的问题而言,请尝试使用.Net Framework SDK或Visual Studio中的MDbg.exe文件。 Microsoft还提供其他debugging tools。