【发布时间】:2009-08-04 10:07:51
【问题描述】:
我注意到很多桌面应用程序(例如 Firefox、Google Chrome、VS 2008 等)都有一个崩溃转储,可以发送给软件供应商进行分析。我打算自己创建这样的故障转储。我在做.Net
在收集哪些数据时,最佳做法是什么,以便收集的数据足以重现和修复错误,仅此而已?
【问题讨论】:
我注意到很多桌面应用程序(例如 Firefox、Google Chrome、VS 2008 等)都有一个崩溃转储,可以发送给软件供应商进行分析。我打算自己创建这样的故障转储。我在做.Net
在收集哪些数据时,最佳做法是什么,以便收集的数据足以重现和修复错误,仅此而已?
【问题讨论】:
我收集异常名称、堆栈跟踪并询问客户在崩溃时他在做什么。通常这就足够了。
此外,您还可以使用他们的Windows Error Reporting 与 Microsoft 建立帐户以获取应用程序崩溃的调试数据。
【讨论】:
我建立了一个直接向我的错误数据库报告的日志系统,它报告了以下信息:
首先会弹出一个表单,用户可以在其中查看要发送的所有内容,并且可以选择识别他/她自己 + 描述问题发生时他/她正在做什么。如果提供了电子邮件,用户将收到一封电子邮件,用于跟踪错误报告。
您应该努力使日志记录过程尽可能不打扰,并且足够详细,以便您至少可以确定从哪里开始查找。
我目前正在构建一个日志系统,可以为多次遇到相同问题的用户启用,其中日志的最后 N 项可以附加到错误报告中,其中包含代码流(方法调用、返回、异常等)。
【讨论】:
为什么不使用 Microsoft 已经提供的 Mini dump 框架。我建议查看函数 MiniDumpCallback 和 MiniDumpWriteDump,它们允许应用程序使用额外的应用程序特定数据来扩充迷你转储。
【讨论】: