Standard DWARF debug information defines a series of sections in the output, with one of each per object file. Each of these sections may have information about every function and variable in that unit. Linkers typically leave this information intact, referencing address 0 (or other tombstone value) when a function or variable’s section is discarded, as the debug sections still contain used information. This approach has issues such as potential ambiguity and excessive space usage.
This talk will present a solution to these issues, leveraging existing ELF features, which enables linkers to discard dead pieces of DWARF without the linker requiring any special knowledge of its structure. It will also include performance figures to evaluate the approach.
Duration: 5 Minutes