Open
Description
Another future killer app: properly setting the flags and running the tools to produce proper symbol/debuginfo files (similar to source maps, but for native code).
This comment covers a lot of useful details on the state of this stuff in rust.
Some quick notes:
Each platform has different formats for this:
- windows pdb
- apple dsym
- linux dwp / linux "strip"
- breakpad (platform-agnostic) sym
Different platforms have different symbol servers:
- windows symbol server (can fetch exe/dll/pdb)
- breakpad generalizes this for .sym, see mozilla's tecken
- linux debuginfod
- apple: just ask xcode lolsob
- android: suck eggs
To generate symbol files for rust you want to:
- build a release binary
- with opt-level=3 or w/e release is
- with codegen-units=1
- with LTO..?
- with debug info cranked to max
- build with debug=2
- enable split-debuginfo which is horribly platform specific
- if targetting breakpad: run dump_syms to get a .sym
- strip the binary?
Then the user will want to:
- grab the final debuginfo/symbol file
- get the unique build ids that map the debuginfo to the binary (platform-specific, hopefully embedded in the file, but we should still get them out?)
- upload it to a symbol server?
- package it?