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

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

Controls
|||
ALL TIME
JAN
FEB
MAR
APR
MAY
JUN
JUL
AUG
SEP
article

Debugging debugging information using dynamic call trees

Stephen Kell, J. Ryan Stinnett
Research Portal (King's College London)
Software System Performance and Reliability
article

Debugging debugging information using dynamic call trees

Stephen Kell, J. Ryan Stinnett
article en

Abstract

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.

Research Portal (King's College London)
Defense Advanced Research Projects Agency, Advanced Research Projects Agency, Engineering and Physical Sciences Research Council
Openalex Percentile: Top 65%
Software System Performance and Reliability
AI Navigator

Ask Laika to Summarize, Analyze, and Connect papers live on the map.

Summarize Papers & Methodologies

Extract key findings, datasets, and comparative methods across publications.

Benchmark Rankings & Visual Analytics

Rank top research institutions, authors, funders, topics, and journals by Field-Weighted Citation Impact (FWCI) and paper volume with instant charts.

Connect Distant Disciplines

Bridge topological clusters on the map to find hidden collaborative intersections.

Debugging debugging information using dynamic call trees — Stephen Kell, J. Ryan Stinnett · Research Portal (King's College London) (2026) | TGRS Research Map | TGRS