Comment on page

Google Breakpad Integration

Overview

After crash occurs and intercepted by breakpad it creates minidump file (*.dmp) with useful crash related information. Extracting human readable information from minidump file format requires running of minidump_stackwalk tool with specially pre-generated symbol files on application binaries.

Getting Readable Stack Trace from User Submitted Files

  1. 1.
    Original breakpad repository should be checked out on dev machine and built locally;
  2. 2.
    Use dump_syms tool to generate symbols file from application binary file:
google-breakpad/src/tools/linux/dump_syms/dump_syms ./ApplicationBinary > ./ApplicationBinary.sym
head -n1 ./ApplicationBinary.sym
Above command output may look something like this:
MODULE Windows x86_64 6EDC6ACDB282125843FD59DA9C81BD830 ApplicationBinary
  1. 1.
    To structure symbols file correctly you can do following next:
mkdir -p ./symbols/ApplicationBinary/6EDC6ACDB282125843FD59DA9C81BD830
mv ./ApplicationBinary.sym ./symbols/ApplicationBinary/6EDC6ACDB282125843FD59DA9C81BD830
  1. 1.
    Generate readable stack trace pointing to the place with crash by running minidump_stackwalk tool on minidump file with passing the path to previously generated symbol files:
google-breakpad/src/processor/minidump_stackwalk 09fd98ec-d55c-29e1-4ae067b0-4aaec0d6.dmp ./symbols
NOTES:
  • symbols can be generated only for application binaries with debug info (Debug or RelWithDebInfo);
  • warn users that dumps may contain sensitive infomatiom;
  • (for wallet binaries) ask users to generate dumps locally instead of sharing raw minidump file publicly.