【问题标题】:Our application crashes - How to find the cause of the crash?我们的应用程序崩溃 - 如何找到崩溃的原因?
【发布时间】:2012-03-04 19:11:11
【问题描述】:

我们有一个联系人同步应用程序。在按下启动应用程序中同步的主要逻辑的按钮后不久,应用程序停止工作,Windows(在本例中为 7)说我们的应用程序“已停止工作”,之后唯一的可能性是通过按钮关闭应用程序标题为“关闭应用程序”。

一个奇怪的事情是,在我的开发机器上,应用程序运行良好。它不会崩溃,也不会抛出任何错误。但是,当作为安装程序打包并安装在其他机器上时,它确实会停止工作,如上所述。

请让我知道我可以使用哪些应用程序来更好地调试此错误、如何了解有关此错误的更多信息、触发它的原因、如何解决它等。

提前致谢。

稍后编辑

这是在事件查看器日志中打印的内容:

Faulting application name: ourappname.exe, version: 1.2.9.0, time stamp: 0x4f3926c8
Faulting module name: ntdll.dll, version: 6.1.7600.16915, time stamp: 0x4ec49caf
Exception code: 0xc0000374
Fault offset: 0x000c33bb
Faulting process id: 0xecc
Faulting application start time: 0x01ccea61773d12e0
Faulting application path: C:\Program Files\path\to\ourappname.exe
Faulting module path: C:\Windows\SYSTEM32\ntdll.dll
Report Id: bb3977f0-5654-11e1-9a84-0800275ba797

这有帮助吗?

【问题讨论】:

  • 首先要看的是 EventViewer 的应用程序部分。异常记录在那里,并且可以让您了解失败的原因。
  • @PaulAlanTaylor 我刚刚在问题中添加了更多信息。不过,我没有看到任何可以从 EventViewer 文件中引导我走向正确方向的东西。
  • 您是否检查了 C:\Users\dre\AppData\Local\Temp\WER3F91.tmp.mdmp 中的故障转储?是否附加了未处理的异常处理程序?
  • @PVitt,打开那个 .mdmp 文件最好用什么应用程序?显然不是文本,记事本无法以清晰的文本打开。
  • @Andrei:bing 中的第一首热门歌曲:fileinfo.com/extension/mdmp

标签: .net debugging


【解决方案1】:

设置global uncaught exception handler 并记录错误。为了更好地衡量,您可以write a memory dump of your application 并使用WinDbgSOS.dll 来相当精确地查看您的应用程序中发生的事情(dbghelp.dll 与WinDbg 一起在Windows 调试工具中提供)。

【讨论】:

  • 应用程序崩溃时,全局异常处理程序不会记录任何内容。这是否意味着该文章中给出的 2 个示例未捕获该异常?我还没试过写内存转储。
猜你喜欢
  • 1970-01-01
  • 2011-11-14
  • 1970-01-01
  • 2014-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多