Debug information validation for optimized code
Yuanbo Li, Shuo Ding, Qirun Zhang, Davide Italiano
摘要
Almost all modern production software is compiled with optimization. Debugging optimized code is a desirable functionality. For example, developers usually perform post-mortem debugging on the coredumps produced by software crashes. Designing reliable debugging techniques for optimized code has been well-studied in the past. However, little is known about the correctness of the debug information generated by optimizing compilers when debugging optimized code.
Optimizing compilers emit debug information (e.g., DWARF information) to support source code debuggers. Wrong debug information causes debuggers to either crash or to display wrong variable values. Existing debugger validation techniques only focus on testing the interactive aspect of debuggers for dynamic languages (i.e., with unoptimized code). Validating debug information for optimized code raises some unique challenges: (1) many breakpoints cannot be reached by debuggers due to code optimization; and (2) inspecting some arbitrary variables such as uninitialized variables introduces undefined behaviors.
This paper presents the first generic framework for systematically testing debug information with optimized code. We introduce a novel concept called actionable program. An actionable program P ⟨s,v ⟩ contains a program location s and a variable v to inspect. Our key insight is that in both the unoptimized program P ⟨s ,v ⟩ and the optimized program P ′ ⟨s,v ⟩ , debuggers should be able to stop at the program location s and inspect the value of the variable v without any undefined behaviors. Our framework generates actionable programs
问问这篇 Paper
智能体会读完全文。
Lune 把这篇 Paper 索引到了每一个公式,引用它的顶会 Paper 也一样。你提问,回答直接引用原文。
引用它的顶会 Paper16
- CcNav: Understanding Compiler Optimizations in Binary CodeSabin Devkota, Pascal Aschwanden, Adam Kunen, Matthew P. LeGendre 等IEEE VIS 2020 · 被引用 34 次
- Who's debugging the debuggers? exposing debug information bugs in optimized binariesGiuseppe Antonio Di Luna, Davide Italiano, Luca Massarelli, Sebastian Österlund 等ASPLOS 2021 · 被引用 32 次
- Where Did My Variable Go? Poking Holes in Incomplete Debug InformationCristian Assaiante, Daniele Cono D'Elia, Giuseppe Antonio Di Luna, Leonardo QuerzoniASPLOS 2023 · 被引用 14 次
- D-Helix: A Generic Decompiler Testing Framework Using Symbolic DifferentiationMuqi Zou, Arslan Khan, Ruoyu Wu, Han Gao 等USENIX Security 2024 · 被引用 14 次
- Compilation Consistency Modulo Debug InformationTheodore Luo Wang, Yongqiang Tian, Yiwen Dong, Zhenyang Xu 等ASPLOS 2023 · 被引用 14 次
它引用的顶会 Paper1
相关 Paper
- Debugging Debugging Information using Dynamic Call TreesJ. Ryan Stinnett, Stephen KellOOPSLA 2026
- Debugger Toolchain Validation via Cross-Level DebuggingYibiao Yang, Maolin Sun, Jiangchang Wu, Qingyang Li 等ASPLOS 2025 · 被引用 8 次
- Robustifying Debug Information Updates in LLVM via Control-Flow Conformance AnalysisShan Huang, Jingjing Liang, Ting Su, Qirun ZhangPLDI 2025 · 被引用 3 次
- Refined Input, Degraded Output: The Counterintuitive World of Compiler BehaviorTheodoros Theodoridis, Zhendong SuPLDI 2024 · 被引用 14 次
- FuzzyFlow: Leveraging Dataflow To Find and Squash Program Optimization BugsPhilipp Schaad, Timo Schneider, Tal Ben-Nun, Alexandru Calotoiu 等SC 2023 · 被引用 3 次
