多平台崩溃报告?

时间:2011-05-16 09:49:08

标签: c++ exception-handling cross-platform crash-reports

在c ++(windows,mac,linux)的跨平台应用程序中实现崩溃报告的最佳方法是什么?看着谷歌破解,但花了几个星期试图让socorro(UI)工作无济于事。

编辑:@Nim要清除,我想在发生异常时向我的服务器发送堆栈跟踪。

2 个答案:

答案 0 :(得分:5)

当我们进行跨平台工作时(从之前的Windows版本开始),我们花了很多时间研究可能的工具。 Google Breakpad确实是最好的跨平台解决方案。

你的问题是Socorro,它是巨大的,混淆的,令人困惑的。我可以建议两条路线:

  • 删除当前版本的Socorro,它太喜欢Hadoop等新奇的OSS玩具,并回滚到Socorro 1.x.你需要做更多的工作来设置你的处理器,你的转储将进入Postgres表,但你将有更少的移动部件和疯狂的基础设施来处理。
  • 完全忘记Socorro并为Breakpad转储编写自己的处理器,并使用UI查看它们。 Breakpad已经完成了非常艰苦的工作 - 解析符号并捕获异常 - 所以你需要编写的是收集器,转储可以上传到,一个服务器场上运行Breakpad处理器,某个地方存储处理结果,以及查看它们的内容。

知道我们现在做了什么,我们可能会选择第二种选择,而不是试图整合Socorro--我们花了很多时间来找到适合我们的Socorro版本并使其适应我们的工作流程已经超出了我们只需编写一个完全符合我们想要的系统所需的内容。

答案 1 :(得分:2)

我怀疑有一个可靠的,除了google-breakpad作为win / mac / linux一体化解决方案。你最好的选择是使用一个跨平台的日志库并处理SEH异常并使用windbg如果你需要minidumps(这里有一些很好的资源:http://www.debuginfo.com/articles.html