在C++(Windows,Mac,Linux)的跨平台应用程序中实现崩溃报告的最佳方法是什么?调查了Google Breakpad,但花了数周时间试图使socorro(UI)无效。

编辑:@Nim以清除,我想在发生某些异常时将堆栈跟踪发送到我的服务器。

最佳答案

当我们进入跨平台(以前是仅限Windows)时,我们花费了大量时间来研究可能的工具。 Google Breakpad确实是最好的跨平台解决方案。

您的问题是Socorro,它庞大,困惑且令人困惑。我可以建议两条路线:

  • 删除当前版本的Socorro(对Hadoop等新型OSS玩具太爱了),然后回滚至Socorro1.x。您需要做更多的工作来设置处理器,转储将进入Postgres表,但是您将需要更少的 Activity 部件和疯狂的基础架构来处理。
  • 完全不了解Socorro,并为Breakpad转储和用于查看它们的UI编写您自己的处理器。 Breakpad已经完成了非常艰苦的工作-解析符号并捕获异常-因此,您需要编写的只是一个可以将转储上传到的收集器,一个在其上运行Breakpad处理器的服务器场,一个用于存储Dump的地方。处理结果,以及查看结果的内容。

  • 知道我们现在正在做什么,我们可能会选择第二种方法,而不是尝试集成Socorro-我们找到适合自己的Socorro版本并使其适应工作流程所花费的时间已经超出了它的范围。本来需要我们编写一个完全能够满足我们需求的系统。

    07-24 09:44