== Breakpad

=== Enabling breakpad
Use the `-DBreakpad=enabled` option. This requires Breakpad be installed as a package.

=== Building breakpad on linux
[source, sh]
----
# Get the missing linux syscall support header
if [ ! -f breakpad.git/src/third_party/lss/linux_syscall_support.h ]; then
    mkdir -p breakpad.git/src/third_party/lss
    curl -L https://chromium.googlesource.com/linux-syscall-support/+/master/linux_syscall_support.h?format=TEXT | base64 --decode > breakpad.git/src/third_party/lss/linux_syscall_support.h
fi

buildpath=$(pwd)/build
if [ ! -d $buildpath ]; then
    mkdir $buildpath
fi

installpath=$(pwd)/install
if [ ! -d $installpath ]; then
    mkdir $installpath
fi

cd $buildpath
../breakpad.git/configure --prefix=$installpath
make
make install
----

=== Producing symbols
[source, sh]
----
tools/linux/dump_syms/dump_syms ./poi > poi.sym
head -n1 poi.sym
mkdir -p ./symbols/poi/<hex>
mv poi.sym ./symbols/poi/<hex>
----

=== Processing minidump
[source, sh]
----
processor/minidump_stackwalk minidump.dmp ./symbols
----
