Debugging debugging information using dynamic call trees
Debugging tools rely on compiler-generated metadata to present a source-language view, but current compilers often throw away or corrupt debugging information in optimised programs.Attempts to test debugging information are confounded by ad-hoc limitations of the debug info formats and a lack of clarity on whether the compiler or the format is to blame for any given loss.Adopting the "residual program" conceptual view of debug info, we conduct a study of the quality of debugging information in respect of the source-level dynamic call trees it can recover.We compare the trees recovered from optimised and unoptimised versions of the same program, producing a classification of the observed divergences.For each class, we analyse whether format or compiler is to blame and identify specific ways to address these defects.We also validate our classification across a larger collection of well-known codebases.
Authors
- Stephen Kell (ORCID: https://orcid.org/0000-0002-2702-5983)
- J. Ryan Stinnett
Publication Details
- Journal
- Research Portal (King's College London)
- Published
- 2026-10-05
- Primary Topic
- Software System Performance and Reliability
- Type
- article
- Field-Weighted Citation Impact
- 0.00
Funders
- Defense Advanced Research Projects Agency
- Advanced Research Projects Agency
- Engineering and Physical Sciences Research Council