3

我编写了一个引发 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/

4

0 回答 0