【问题标题】:Cross-platform crash handler跨平台崩溃处理程序
【发布时间】:2010-11-24 22:11:09
【问题描述】:

我正在寻找一个跨平台的崩溃处理程序。 Google Breakpad 看起来很有希望,但它严重缺乏任何文档,并且需要进行合理的摆弄才能真正开始。

什么是更好的选择?

我所需要的只是能够在崩溃时可靠地记录崩溃转储、堆栈跟踪和 CPU 信息。或者,使用 Google Breakpad 的体验如何?它是伟大的还是可怕的?

【问题讨论】:

  • 跨平台的程度如何? gdb + coredump 在 x86、arm、ppc...上运行良好,但需要 gcc 工具链。

标签: c++ cross-platform crash crash-dumps postmortem-debugging


【解决方案1】:

好吧,事实证明 google-breakpad 还是很不错的。设置起来并不容易,但可以满足我的需要。

【讨论】:

【解决方案2】:

几年前,我在 DDJ 上写了一篇关于在 C/C++ 中使用 Windows 和 Unix/Linux 转储堆栈的文章。它不使用核心转储,但会在内部错误或操作系统确定应用程序故障时将堆栈帧写入日志文件。

也许对你有帮助:

http://www.ddj.com/architect/185300443

【讨论】:

  • 我知道它很旧,但我在文章中看不到 Unix/Linux 版本。是否有某种后续行动?
  • 呃,我现在看到了(有源代码与 POSIX 兼容的例子)
【解决方案3】:

对于编译后的代码,有两个不错的选择 - UNIX 变体下的 core dumps 和 Windows 下的 Dr. Watson 崩溃日志/转储。我知道这不是一个跨平台解决方案,但是如果您只处理两个平台,那么拥有两个解决方案并不是一件坏事。

当然,解决方案只捕获崩溃时的核心映像,而不是机器的状态。我不知道在应用程序崩溃时会捕获 IO 和 CPU 负载的任何东西。您可能想查看Mozilla Crash Reporter,这很奇怪,也称为“Breakpad”...巧合?

【讨论】:

  • 不,这不是巧合 - mozilla 使用 google breakpad 作为它的崩溃处理程序。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多