diff --git a/README.md b/README.md index 450182db34..6e07d7002a 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,54 @@ -Stackwalker [](https://travis-ci.org/NatronGitHub/stackwalker) ------------ +# Stackwalker [](https://travis-ci.org/NatronGitHub/stackwalker) -Parse crash reports from Natron. + +Stackwalker is used to dump symbols and process crash reports for MINGW, Linux and macOS. + +*This is a fork of Google Breakpad and Mozilla Socorro with additional features/changes maintained for Natron.* + +## Requirements + +* pkg-config +* libcurl +* libzip +* jsoncpp + +## Build + +``` +git submodule update -i --recursive +cd breakpad +./configure && make +cd .. +make -C minidump-stackwalk +``` + +This will create two binaries: + +* ``breakpad/src/tools/<OS>/dump_syms`` +* ``minidump-stackwalk/stackwalker`` + +## Usage + +``dump_syms`` is used to create a symbol file for a given (not stripped) binary. Example: + +``` +dump_syms Natron-bin > Natron-bin.sym +``` + +``stackwalker`` is used to parse crash report dumps against symbols generated from ``dump_syms``. Example: + +``` +stackwalker CRASH.dmp <LOCAL_OR_REMOTE_SYMBOLS_DIR> > CRASH.json +``` + +## Symbols Storage + +Symbols are stored using the following directory structure: + +* Filename *(example: Natron-bin)* + * ID *(example: 69CDA01A0F236F7C71CD19E5A20A21AC0)* + * Filename.sym.zip *(example: Natron-bin.sym.zip)* + +Filename and ID must match line 1 in the symbol file. + +**Note that Stackwalker only supports zipped symbols (filename.sym.zip)**