Debug fission - Separating debug symbols from executables

Day 1 | 18:25 | 00:15 | K.3.201 | Johan Herland


Note: I'm reworking this at the moment, some things won't work.

The stream isn't available yet! Check back at 18:25.
Get involved in the conversation!Join the chat

An introduction and exploration of how to separate debug information from C/C++ build artifacts in order to save space and time when building large codebases. Is it possible to have fast builds without stripping away debug symbols altogether? How would you integrate this into a larger build system?

After a quick introduction to debug symbols, we dive into various compiler and linker options to make an executable smaller without stripping away its debug capabilities. We compare multiple approaches for splitting debug symbols from executables, and demonstrate their pros and cons.

After looking at the details, we take a step back and show how to integrate these techniques into larger build systems like CMake and Bazel, where the effect of split debug symbols is much more noticeable.