问题标签 [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.
minidump - breakpad 不会在擦除迭代器上生成 minidump 两次
我发现 breakpad 有时无法处理 sigsegv。我写了一个简单的例子来重现它:
gcc 是 4.8.5 而我的 comiple cmd 是
运行 a.out,得到“Segmentation fault”,但没有生成 minidump。
如果我取消注释 nullptr write,breakpad 工作!
我应该怎么做才能纠正它?
GDB 调试输出:
我从进程转储中尝试了breakpad,但仍然一无所获(nullptr write works)。
c++ - 如何运行 Boost 测试并生成 Minidump?
我们的项目使用 Boost.Test 进行单元测试。当我们的测试用例发生意外异常时,我们也希望获得 minidump,因此我们已经开始集成 Google Breakpad 来编写 minidump。
看起来 Boost.Test 正在拦截用户测试中所有抛出的异常——我假设是因为 Boost 测试用例用 try / catch 包装了每个函数,如果抛出意外异常,单元测试就会失败。这可以防止 Breakpad 异常处理程序触发和写入小型转储。
是否有可能让 Boost.Test 不仅在单元测试中捕获和失败意外异常?而是让异常未经处理(或重新抛出),以便可以触发 Breakpad 或其他异常处理程序来编写小型转储?
android - 如何从 Windows 上的 logcat 解释 breakpad microdump?
我正在尝试将我的旧应用程序转换为即时应用程序。在解决了即时应用程序项目结构的许多问题后,我能够将构建构建为在测试设备(android 7.0、Armv8)上运行没有问题的常规应用程序。但是,当我尝试在测试设备上运行即时应用程序时,即时应用程序的 Google Play 服务在即时应用程序完全启动之前停止工作,并且我在 Android Studio 的 logcat 中获得了一个 breakpad microdump。有什么办法可以在 Windows 上使用这个 microdump 来找出代码在哪个阶段中断?我用谷歌搜索了 2 天,但没有找到任何有效的方法来阅读此输出。
从下一行判断是:
我相信某些资源丢失或某处有空指针,但我需要来自 microdump 的堆栈跟踪来找出位置。
如果有人能指出可以解释此输出的 Windows 工具,我将不胜感激。
c++ - 如何在 Mac OSX 上显示 Minidump 堆栈跟踪?
我编写了一个引发 C++ 异常的小型测试程序。我已经设置了 Breakpad 来为这个抛出的异常编写一个小型转储。我现在有一个想要查看堆栈跟踪的 .dmp 文件。一些参考资料表明我应该这样做。
- 使用我已经完成的 Breakpad 的 'dump_syms' 实用程序生成一个 .sym 文件。我在调试二进制文件上运行 dump_syms (应该内置调试符号?)。
./dump_syms breakpad_testing > breakpad_testing.sym
此时我有 .dmp 文件和 .sym 文件
- 检查 .sym 文件的第一行以查看以获取二进制版本哈希?这看起来像这样 -
MODULE mac x86_64 ED3C7C3C3C283C749036117557E0A8500 breakpad_testing
。 - 使用它来创建预期的文件夹结构
mkdir -p ./symbols/breakpad_testing/ED3C7C3C3C283C749036117557E0A8500
并将 .sym 文件移动到那里。mv breakpad_testing.sym ./symbols/breakpad_testing/ED3C7C3C3C283C749036117557E0A8500
- 使用“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/
multithreading - Breakpad 无法在多线程 ARM 应用程序上创建日志
我一直在开发一个使用 google breakpad 生成故障转储的应用程序,我注意到一旦应用程序是多线程的,似乎不再生成故障转储(而在单线程应用程序中成功生成了 .dmp 文件) .
在寻找此问题的原因时,我在 i386 架构下运行时发现了一个已回答的问题,我认为该问题与 ARM 问题无关,并且似乎 与 ARM 报告了类似但未解决的问题。
在通常创建日志的回调函数中,给出了正确的路径,但“成功”的布尔值是错误的,我不确定我能做什么,如果有的话,我可以用这个失败做什么。
此应用程序在 ARM Cortex-A9 处理器上运行,如果有帮助的话。
我主要是在寻找可以尝试解决此问题的任何类型的反馈或路径。如果我可以提供任何进一步的信息,请告诉我。
electron - 分析电子故障转储
使用 electron-packager 打包的电子应用程序正在崩溃并生成转储文件。
我能够使用 breakpad、minidump_stackwalk 来查看转储文件的一部分。这是输出的快照,
此信息在识别崩溃时不是很有用。有没有办法获得发生崩溃的应用程序代码的堆栈跟踪?
另外,我不确定 WARNING 消息是否相关,或者如果是,如何修复它。
我看过,
还有这本书,开发电子边缘
但似乎缺乏关于调试电子崩溃报告的文档。
google-breakpad - 如何在没有错误的情况下为 Windows 构建breakpad?breakpad和crashpad有什么区别
在 Windows 中构建breakpad时出现以下错误。c:\breakpad\src>src\tools\gyp\gyp.bat src\client\windows\breakpad_client.gyp gyp:检测到 .gyp 文件依赖图中的循环:
electron - 无法为小型转储文件获取匹配的电子符号
我正在尝试分析电子崩溃。我已经安装了 Electron v2.0.0。我已经下载了相应的符号 zip 文件。我已经构建了 Breakpad,其中包含该minidump_stackwalk
工具。当我现在执行时:
我得到了很多输出,其中仍然包含诸如“警告:无符号...”之类的消息,即使我可以看到 minidum_stackwalk 在正确的位置搜索。
我究竟做错了什么?
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
?)
这是一个示例转储,删除了对我的应用程序的引用。