Papers
Topics
Authors
Recent
Assistant
AI Research Assistant
Well-researched responses based on relevant abstracts and paper content.
Custom Instructions Pro
Preferences or requirements that you'd like Emergent Mind to consider when generating responses.
Gemini 2.5 Flash
Gemini 2.5 Flash 170 tok/s
Gemini 2.5 Pro 51 tok/s Pro
GPT-5 Medium 45 tok/s Pro
GPT-5 High 36 tok/s Pro
GPT-4o 107 tok/s Pro
Kimi K2 196 tok/s Pro
GPT OSS 120B 445 tok/s Pro
Claude Sonnet 4.5 38 tok/s Pro
2000 character limit reached

Accurate Coverage Metrics for Compiler-Generated Debugging Information (2402.04811v1)

Published 7 Feb 2024 in cs.PL and cs.SE

Abstract: Many debugging tools rely on compiler-produced metadata to present a source-language view of program states, such as variable values and source line numbers. While this tends to work for unoptimised programs, current compilers often generate only partial debugging information in optimised programs. Current approaches for measuring the extent of coverage of local variables are based on crude assumptions (for example, assuming variables could cover their whole parent scope) and are not comparable from one compilation to another. In this work, we propose some new metrics, computable by our tools, which could serve as motivation for language implementations to improve debugging quality.

Definition Search Book Streamline Icon: https://streamlinehq.com
References (34)
  1. Where Did My Variable Go? Poking Holes in Incomplete Debug Information. In Proc. of ASPLOS ’23. https://doi.org/10.1145/3575693.3575720
  2. Kristina Bessonova. 2019. [llvm-dwarfdump][Statistics] Unify Coverage Statistic Computation. https://reviews.llvm.org/D70548
  3. Debugging Optimized Code: Concepts and Implementation on DIGITAL Alpha Systems. Digital Technical Journal 10, 1 (1998), 81–99.
  4. A New Approach to Debugging Optimized Code. In Proc. of PLDI ’92. https://doi.org/10.1145/143095.143108
  5. DOC: A Practical Approach to Source-Level Debugging of Globally Optimized Code. In Proc. of PLDI ’88. https://doi.org/10.1145/53990.54003
  6. Daniele Cono D’Elia and Camil Demetrescu. 2018. On-Stack Replacement, Distilled. In Proc. of PLDI ’18. https://doi.org/10.1145/3192366.3192396
  7. Who’s Debugging the Debuggers? Exposing Debug Information Bugs in Optimized Binaries. In Proc. of ASPLOS ’21. https://doi.org/10.1145/3445814.3446695
  8. DWARF Debugging Information Format Committee. 2017. DWARF Debugging Information Format: Version 5. https://dwarfstd.org/doc/DWARF5.pdf
  9. Frank Ch. Eigler. 2006. Problem Solving With SystemTap. In Proceedings of the Linux Symposium (Ottawa, Canada).
  10. Shu-Yu Guo. 2014. Debugging in the Time of JITs. https://rfrn.org/~shu/2014/05/14/debugging-in-the-time-of-jits.html
  11. John Hennessy. 1982. Symbolic Debugging of Optimized Code. TOPLAS 4, 3 (July 1982), 323–344. https://doi.org/10.1145/357172.357173
  12. Debugging Optimized Code with Dynamic Deoptimization. In Proc. of PLDI ’92. https://doi.org/10.1145/143095.143114
  13. Jakub Jelínek. 2010. Improving Debug Info for Optimized Away Parameters. In GCC Summit. https://gcc.gnu.org/wiki/summit2010?action=AttachFile&do=view&target=jelinek.pdf
  14. Peter B. Kessler. 1990. Fast Breakpoints: Design and Implementation. In Proc. of PLDI ’90. https://doi.org/10.1145/93542.93555
  15. Xavier Leroy. 2009. Formal Verification of a Realistic Compiler. Commun. ACM 52, 7 (July 2009), 107–115. https://doi.org/10.1145/1538788.1538814
  16. Debug Information Validation for Optimized Code. In Proc. of PLDI ’20. https://doi.org/10.1145/3385412.3386020
  17. Stephen Livermore-Tozer. 2023. [RFC] Redefine Og/O1 and Add a New Level of Og. https://discourse.llvm.org/t/rfc-redefine-og-o1-and-add-a-new-level-of-og/72850
  18. LLVM Project. 2020. llvm-dwarfdump - Dump and Verify DWARF Debug Information. https://llvm.org/docs/CommandGuide/llvm-dwarfdump.html
  19. LLVM Project. 2022. Source Level Debugging with LLVM. https://llvm.org/docs/SourceLevelDebugging.html
  20. Alive2: Bounded Translation Validation for LLVM. In Proc. of PLDI ’21. https://doi.org/10.1145/3453483.3454030
  21. George C. Necula. 2000. Translation Validation for an Optimizing Compiler. In Proc. of PLDI ’00. https://doi.org/10.1145/349299.349314
  22. Nicholas Nethercote and Julian Seward. 2007. Valgrind: A Framework for Heavyweight Dynamic Binary Instrumentation. In Proc. of PLDI ’08. https://doi.org/10.1145/1250734.1250746
  23. Robert O’Callahan. 2018. Comparing the Quality of Debug Information Produced by Clang and GCC. https://robert.ocallahan.org/2018/11/comparing-quality-of-debug-information.html
  24. Engineering Record and Replay for Deployability. In Proc. of USENIX ATC ’17. https://www.usenix.org/conference/atc17/technical-sessions/presentation/ocallahan
  25. Alexandre Oliva. 2010. Consistent Views at Recommended Breakpoints. In Proc. of GCC Summit. 6. https://www.fsfla.org/~lxoliva/papers/sfn/gcc2010.pdf
  26. Alexandre Oliva. 2017a. Location View Numbering. https://dwarfstd.org/ShowIssue.php?issue=170427.1
  27. Alexandre Oliva. 2017b. Statement Frontier Notes and Location Views. https://developers.redhat.com/blog/2017/07/11/statement-frontier-notes-and-location-views
  28. Alexandre Oliva. 2019. GCC gOlogy: Studying the Impact of Optimizations on Debugging. https://www.fsfla.org/~lxoliva/writeups/gOlogy/gOlogy.html
  29. J. Ryan Stinnett and Stephen Kell. 2024. Accurate Coverage Metrics for Compiler-Generated Debugging Information (artifact). https://doi.org/10.5281/zenodo.10568392
  30. Caroline Tice and Susan L. Graham. 1998. OPTVIEW: A New Approach for Examining Optimized Code. In Proc. of PASTE ’98. https://doi.org/10.1145/277631.277636
  31. Finding and Understanding Bugs in C Compilers. In Proc. of PLDI ’11. https://doi.org/10.1145/1993498.1993532
  32. Polle T. Zellweger. 1983. An Interactive High-Level Debugger for Control-Flow Optimized Programs. In Proc. of SIGSOFT ’83. https://doi.org/10.1145/1006147.1006183
  33. Polle T. Zellweger. 1984. Interactive Source-Level Debugging of Optimized Programs. Ph. D. Dissertation. University of California, Berkeley. https://search.library.berkeley.edu/permalink/01UCS_BER/1thfj9n/alma991002570669706532
  34. Lawrence W Zurawski and Ralph E Johnson. 1991. Debugging Optimized Code with Expected Behavior. Unpublished draft.
Citations (1)

Summary

We haven't generated a summary for this paper yet.

Dice Question Streamline Icon: https://streamlinehq.com

Open Problems

We haven't generated a list of open problems mentioned in this paper yet.

Lightbulb Streamline Icon: https://streamlinehq.com

Continue Learning

We haven't generated follow-up questions for this paper yet.

List To Do Tasks Checklist Streamline Icon: https://streamlinehq.com

Collections

Sign up for free to add this paper to one or more collections.

X Twitter Logo Streamline Icon: https://streamlinehq.com

Tweets

This paper has been mentioned in 1 tweet and received 1 like.

Upgrade to Pro to view all of the tweets about this paper: