问题标签 [google-breakpad]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
586 浏览

minidump - breakpad 不会在擦除迭代器上生成 minidump 两次

我发现 breakpad 有时无法处理 sigsegv。我写了一个简单的例子来重现它:

gcc 是 4.8.5 而我的 comiple cmd 是

运行 a.out,得到“Segmentation fault”,但没有生成 minidump。

如果我取消注释 nullptr write,breakpad 工作!

我应该怎么做才能纠正它?

GDB 调试输出:

我从进程转储中尝试了breakpad,但仍然一无所获(nullptr write works)。

0 投票
2 回答
186 浏览

c++ - 如何运行 Boost 测试并生成 Minidump?

我们的项目使用 Boost.Test 进行单元测试。当我们的测试用例发生意外异常时,我们也希望获得 minidump,因此我们已经开始集成 Google Breakpad 来编写 minidump。

看起来 Boost.Test 正在拦截用户测试中所有抛出的异常——我假设是因为 Boost 测试用例用 try / catch 包装了每个函数,如果抛出意外异常,单元测试就会失败。这可以防止 Breakpad 异常处理程序触发和写入小型转储。

是否有可能让 Boost.Test 不仅在单元测试中捕获和失败意外异常?而是让异常未经处理(或重新抛出),以便可以触发 Breakpad 或其他异常处理程序来编写小型转储?

0 投票
0 回答
1174 浏览

android - 如何从 Windows 上的 logcat 解释 breakpad microdump?

我正在尝试将我的旧应用程序转换为即时应用程序。在解决了即时应用程序项目结构的许多问题后,我能够将构建构建为在测试设备(android 7.0、Armv8)上运行没有问题的常规应用程序。但是,当我尝试在测试设备上运行即时应用程序时,即时应用程序的 Google Play 服务在即时应用程序完全启动之前停止工作,并且我在 Android Studio 的 logcat 中获得了一个 breakpad microdump。有什么办法可以在 Windows 上使用这个 microdump 来找出代码在哪个阶段中断?我用谷歌搜索了 2 天,但没有找到任何有效的方法来阅读此输出。

从下一行判断是:

我相信某些资源丢失或某处有空指针,但我需要来自 microdump 的堆栈跟踪来找出位置。

如果有人能指出可以解释此输出的 Windows 工具,我将不胜感激。

0 投票
0 回答
1352 浏览

c++ - 如何在 Mac OSX 上显示 Minidump 堆栈跟踪?

我编写了一个引发 C++ 异常的小型测试程序。我已经设置了 Breakpad 来为这个抛出的异常编写一个小型转储。我现在有一个想要查看堆栈跟踪的 .dmp 文件。一些参考资料表明我应该这样做。

  1. 使用我已经完成的 Breakpad 的 'dump_syms' 实用程序生成一个 .sym 文件。我在调试二进制文件上运行 dump_syms (应该内置调试符号?)。./dump_syms breakpad_testing > breakpad_testing.sym

此时我有 .dmp 文件和 .sym 文件

  1. 检查 .sym 文件的第一行以查看以获取二进制版本哈希?这看起来像这样 - MODULE mac x86_64 ED3C7C3C3C283C749036117557E0A8500 breakpad_testing
  2. 使用它来创建预期的文件夹结构mkdir -p ./symbols/breakpad_testing/ED3C7C3C3C283C749036117557E0A8500并将 .sym 文件移动到那里。mv breakpad_testing.sym ./symbols/breakpad_testing/ED3C7C3C3C283C749036117557E0A8500
  3. 使用“minidump_stackwalk”工具显示堆栈。minidump_stackwalk breakpad_testing.dmp ./symbols

然而,这些步骤似乎对 minidump_stackwalk 的输出没有任何影响,我仍然看到输出行,例如minidump.cc:2122: INFO: MinidumpModule could not determine version for /Users/mb/Library/Developer/Xcode/DerivedData/<blah>/Build/Products/Debug/breakpad_testing和未符号化的堆栈跟踪。

关于 OSX 上的 Breakpad,我有什么误解或没有正确使用吗?

这是我一直关注的参考资料之一https://blog.inventic.eu/2012/08/qt-and-google-breakpad/

0 投票
1 回答
186 浏览

multithreading - Breakpad 无法在多线程 ARM 应用程序上创建日志

我一直在开发一个使用 google breakpad 生成故障转储的应用程序,我注意到一旦应用程序是多线程的,似乎不再生成故障转储(而在单线程应用程序中成功生成了 .dmp 文件) .

在寻找此问题的原因时,我在 i386 架构下运行时发现了一个已回答的问题,我认为该问题与 ARM 问题无关,并且似乎 与 ARM 报告了类似但未解决的问题。

在通常创建日志的回调函数中,给出了正确的路径,但“成功”的布尔值是错误的,我不确定我能做什么,如果有的话,我可以用这个失败做什么。

此应用程序在 ARM Cortex-A9 处理器上运行,如果有帮助的话。

我主要是在寻找可以尝试解决此问题的任何类型的反馈或路径。如果我可以提供任何进一步的信息,请告诉我。

0 投票
2 回答
3375 浏览

electron - 分析电子故障转储

使用 electron-packager 打包的电子应用程序正在崩溃并生成转储文件。

我能够使用 breakpad、minidump_stackwalk 来查看转储文件的一部分。这是输出的快照,

此信息在识别崩溃时不是很有用。有没有办法获得发生崩溃的应用程序代码的堆栈跟踪?

另外,我不确定 WARNING 消息是否相关,或者如果是,如何修复它。

我看过,

但似乎缺乏关于调试电子崩溃报告的文档。

0 投票
0 回答
533 浏览

google-breakpad - 如何在没有错误的情况下为 Windows 构建breakpad?breakpad和crashpad有什么区别

在 Windows 中构建breakpad时出现以下错误。c:\breakpad\src>src\tools\gyp\gyp.bat src\client\windows\breakpad_client.gyp gyp:检测到 .gyp 文件依赖图中的循环:

0 投票
0 回答
153 浏览

electron - 无法为小型转储文件获取匹配的电子符号

我正在尝试分析电子崩溃。我已经安装了 Electron v2.0.0。我已经下载了相应的符号 zip 文件。我已经构建了 Breakpad,其中包含该minidump_stackwalk工具。当我现在执行时:

我得到了很多输出,其中仍然包含诸如“警告:无符号...”之类的消息,即使我可以看到 minidum_stackwalk 在正确的位置搜索。

我究竟做错了什么?

0 投票
1 回答
880 浏览

macos - 对 macOS 系统库的符号化调用?

我正在开发一个 macOS 应用程序,该应用程序使用 Google Crashpad 将客户崩溃报告上传回给我们。该工具生成的故障转储完全象征我们的应用程序,但不适用于系统库。

这与位于 /Library/Logs/DiagnosticReports 中的崩溃文件相反,后者具有系统库的符号,但通常不用于崩溃的应用程序。

我的问题是,如何在系统库中表示函数调用?我已经可以为我自己构建的应用程序atos和 dSYM 包执行此操作。但是,我无法找到有关如何为系统库执行此操作的文档。

Crashpad 的文档不是很有启发性,因为它主要针对 Linux 和 Windows:https ://www.chromium.org/developers/decoding-crash-dumps

但是,理论上我应该能够做到这一点(毕竟,macOS 的系统崩溃服务在生成自己的报告时会这样做 - 或者,也许我只需要将一些调试信息从 Xcode SDK 传递到atos?)

这是一个示例转储,删除了对我的应用程序的引用。

0 投票
2 回答
4243 浏览

minidump - Google 的 breakpad 和 crashpad 库有什么区别?

它们都是崩溃报告库,可生成用于开发人员分析的小型转储,并且都是由 Google 的 Chromium 项目开发的:

防波堤

防撞垫

他们的预期用例有什么不同吗?