我编写了一个小型测试程序,它抛出了一个C ++异常。我已经设置Breakpad在这个抛出的异常上写一个minidump。我现在有一个.dmp文件,我希望看到堆栈跟踪。一些参考文献表明我应该。
./dump_syms breakpad_testing > breakpad_testing.sym
此时我有.dmp文件和.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
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/
的参考之一