2009-09-02 60 views
15

我正在寻找一个跨平台碰撞处理程序。 Google Breakpad看起来很有希望,但它很缺乏任何文档,并且需要合理的操作才能真正开始。跨平台碰撞处理程序

什么是更好的选择?

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

+0

跨平台应该如何? gdb + coredump在x86,arm,ppc等上很好地工作,但需要gcc工具链。 – stefaanv 2009-09-02 11:27:32

回答

7

嗯,事实证明,谷歌霹雳板毕竟是相当不错的。这并不是一件容易的事情,但它可以满足我的需要。

+0

嗨,我似乎无法弄清楚如何建立它。任何帮助将不胜感激 - http://stackoverflow.com/questions/2925094/how-to-build-google-breakpad – Steve 2010-05-27 21:29:38

+0

文件不是很好,我承认。我一直在努力改善这一点,现在我认为它会好一点,请参阅:http://code.google.com/p/google-breakpad/wiki/GettingStartedWithBreakpad尽管这是一个非常有用的库,大量的生产软件,所以它做得很好。 – 2011-02-24 13:46:28

6

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

也许它可以帮助你:

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

+0

我知道它很老,但在文章中我看不到Unix/Linux版本。是否有某种后续行动? – yatsa 2014-04-11 12:57:21

+0

呃,我现在看到它了(有POSIX兼容示例的源代码) – yatsa 2014-04-11 13:04:37

3

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

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

+1

不,这不是巧合 - mozilla使用google breakpad,因为它是crash处理程序。 – Thomi 2009-09-02 12:29:55