How can I migrate from a Microsoft Symbol Server to Google Breakpad? -


our product generates minidump files in case goes wrong. run symbol server storing , accessing debug symbols of our builds such proper stack traces out of dump files.

since our product runs on other operating systems (in particular linux , os x), started @ google breakpad. appears use minidumps, , pdb files storage. however, wonder:

(how) can migrate existing symbol server google breakpad don't lose existing symbols? imagine other people did same move already, maybe there's common approach this?

you have few options:

  1. run dump_syms (this tool processed pdbs text-based breakpad's .sym format, comes breakpad) on pdbs in server , upload them breakpad server (there couple options, use socorro). need keep running on new symbols builds care about.

  2. request symbols server needed stack_walker when processing incoming crash (we haven't done that)

  3. periodically missing symbols in last number of crashes, see if on symbol server, run them through dump_syms, upload .syms crash server send crashes reprocessing.

you need hit ms symbol servers system symbols, have implement 1 of later options that.

we've went option 3 system symbols, implementation heavily depends on crash server used (we using socorro crash-stats, not recommended configuration). there multiple python implementation of ms symbol server integration around. stack_walker know name , guid of symbol, can ignore pe parsing parts.

a catch aware of: there no concept of symbol server on osx , breakpad crash dumps useless there. reconstruct stack trace osx crash need access originating system binaries (to run them through dump_syms). might not possible. need manually build repository of osx symbols, see this: https://wiki.mozilla.org/breakpad:symbols

catch #2: windows using case insensitive fs (surprise), , generated pdbs lowercased linker no reason (while pe-binary using still referencing proper case). creates headaches if crash server running on *nix machine. consider extracting symbol name pe binary instead of relying on pdb file name in case.

catch #3: still need run symbol server debugging dump files uploaded breakpad (in case when stack trace not enough , want open dump in visual studio). bp uses symbol server, not replaces it.


Comments

Popular posts from this blog

python - Healpy: From Data to Healpix map -

c - Bitwise operation with (signed) enum value -

xslt - Unnest parent nodes by child node -