崩溃检测、日志记录和 C++ [关闭]

Posted

技术标签:

【中文标题】崩溃检测、日志记录和 C++ [关闭]【英文标题】:Crash detection, logging, and C++ [closed] 【发布时间】:2011-10-31 03:38:09 【问题描述】:

我有一个用 QT C++ 编写的应用程序,它在我的 Ubuntu 下运行良好,无论是在 Virtual Box 中,还是在“目标机器”上,一个小的 Zotac MAG 盒子。我已经运行了好几个小时,通过它进行了输入(头脑麻木的工作),我不能让这个混蛋崩溃,但用户一直告诉我它每天可能崩溃 4 次。该应用程序并没有真正做太多,它是一个 html5 应用程序,只是一个加载网站的 webkit 小部件。有一两个地方可能会崩溃,我已经检查了代码,它看起来很好,对我有用。

我得到的崩溃报告是二手的,通过翻译,两个人都不知道,细节的程度是:“它崩溃了很多。”显然,在找出真正的问题是什么时,这与牧师的球一样有用。现在它可能是坏 ram,也可能是一些错误配置,这将被检查,但我想补充两点:

日志记录和崩溃检测。

我掌握了日志记录,我很确定这不会是一个可怕的问题,但我不确定如何进行崩溃检测,甚至可能会自动提交日志。

我该怎么做呢?任何可以缓解学习曲线的建议都很棒。

部署系统为 Ubuntu 10.10 LTS。

【问题讨论】:

你能从崩溃中恢复核心文件吗?或者,Windows 上的 Firefox 有一个内置的崩溃报告机制——我希望 Linux 也有,所以你可以借用它吗? 您是按源代码还是二进制文件分发代码?如果是后者,我怀疑其他用户的机器上存在不同版本的运行时库。让您的用户运行“ldd yourapp”(其中 yourapp 是可执行二进制文件的名称)。他们的运行时链接器依赖项列表是否与您的匹配?您是否建议您的客户启用核心转储并为您提供转储文件? (搜索 SO 以了解如何启用核心转储)。 它是一个QT C++应用程序的二进制发行版,源代码还没有,但很快就会有,它的sc不多。不幸的是,该应用程序并不针对精通技术的人,他们喜欢 cmdline 的东西。事实证明,崩溃的原因与硬件有关,但我仍然想尝试这个核心转储文件并最终破解。感谢所有这些建议。 【参考方案1】:

我相信Google's Breakpad 就是您要找的。

【讨论】:

以上是关于崩溃检测、日志记录和 C++ [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

苹果手机崩溃日志怎么看

如何捕捉 Swift 崩溃并进行一些日志记录

C++日志记录类以及日志记录程序

苹果手机怎么查看崩溃日志

客户端 Javascript 崩溃的服务器端日志记录

如何在代码中启用/禁用 spdlog 日志记录?