I've written a small test program which throws a C++ exception. I've setup Breakpad to write a minidump on this thrown exception. I now have a .dmp file I'd like to see the stack trace for. Several references indicate I should.
- Generate a .sym file using Breakpad's 'dump_syms' utility program, which I've done. I'm running dump_syms on the debug binary (which should have the debug symbols built in?).
./dump_syms breakpad_testing > breakpad_testing.sym
At this point I have the .dmp file and the .sym file
- Inspect the first line of the .sym file to view to get a binary version hash? This will look something like this -
MODULE mac x86_64 ED3C7C3C3C283C749036117557E0A8500 breakpad_testing
. - Use this to create an expected folder structure
mkdir -p ./symbols/breakpad_testing/ED3C7C3C3C283C749036117557E0A8500
and move the .sym file there.mv breakpad_testing.sym ./symbols/breakpad_testing/ED3C7C3C3C283C749036117557E0A8500
- Show stack using 'minidump_stackwalk' tool.
minidump_stackwalk breakpad_testing.dmp ./symbols
However these steps don't seem to have any effect on the output of minidump_stackwalk, I still see output lines such as minidump.cc:2122: INFO: MinidumpModule could not determine version for /Users/mb/Library/Developer/Xcode/DerivedData/<blah>/Build/Products/Debug/breakpad_testing
and an unsymbolicated stack trace.
Is there something I'm misunderstanding or not using properly regarding Breakpad on OSX?
This is one of the references I've been following https://blog.inventic.eu/2012/08/qt-and-google-breakpad/