Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
DOC: a practical approach to source-level debugging of globally optimized code
PLDI '88 Proceedings of the ACM SIGPLAN 1988 conference on Programming Language design and Implementation
IMPACT: an architectural framework for multiple-instruction-issue processors
ISCA '91 Proceedings of the 18th annual international symposium on Computer architecture
Debugging optimized code with dynamic deoptimization
PLDI '92 Proceedings of the ACM SIGPLAN 1992 conference on Programming language design and implementation
Detection and recovery of endangered variables caused by instruction scheduling
PLDI '93 Proceedings of the ACM SIGPLAN 1993 conference on Programming language design and implementation
Evicted variables and the interaction of global register allocation and symbolic debugging
POPL '93 Proceedings of the 20th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Debugging optimized code without being misled
Debugging optimized code without being misled
Debugging optimized code without being misled
ACM Transactions on Programming Languages and Systems (TOPLAS)
Debugging of globally optimized programs using data flow analysis
PLDI '94 Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation
A note on Hennessy's “symbolic debugging of optimized code”
ACM Transactions on Programming Languages and Systems (TOPLAS)
Source-level debugging of scalar optimized code
PLDI '96 Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation
OPTVIEW: a new approach for examining optimized code
Proceedings of the 1998 ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
Symbolic Debugging of Optimized Code
ACM Transactions on Programming Languages and Systems (TOPLAS)
Interactive source-level debugging for optimized programs (compilation, high-level)
Interactive source-level debugging for optimized programs (compilation, high-level)
An interactive high-level debugger for control-flow optimized programs
SIGSOFT '83 Proceedings of the symposium on High-level debugging
Comparison checking: an approach to avoid debugging of optimized code
ESEC/FSE-7 Proceedings of the 7th European software engineering conference held jointly with the 7th ACM SIGSOFT international symposium on Foundations of software engineering
Tdb: a source-level debugger for dynamically translated programs
Proceedings of the sixth international symposium on Automated analysis-driven debugging
Issues in debugging highly parallel FPGA-based applications derived from source code
ASP-DAC '03 Proceedings of the 2003 Asia and South Pacific Design Automation Conference
Non-transparent debugging for software-pipelined loops
CASES '07 Proceedings of the 2007 international conference on Compilers, architecture, and synthesis for embedded systems
Transparent Debugging of Dynamically Optimized Code
Proceedings of the 7th annual IEEE/ACM International Symposium on Code Generation and Optimization
Hi-index | 0.00 |
With an increasing number of executable binaries generated by optimizing compilers today, providing a clear and correct source-level debugger for programmers to debug optimized code has become a necessity. In this paper, a new framework for debugging globally optimized code is proposed. This framework consists of a new code location mapping scheme, a data location tracking scheme, and an emulation-based forward recovery model. By taking over the control early and emulating instructions selectively, the debugger can preserve and gather the required program state for the recovery of expected variable values at source breakpoints. The framework has been prototyped in the IMPACT compiler and GDB-4.16. Preliminary experiments conducted on several SPEC95 integer programs have yielded encouraging results. The extra time needed for the debugger to calculate the limits of the emulated region and to emulate instructions is hardly noticeable, while the increase in executable file size due to the extra debug information is on average 76% of that of the executable file with no debug information.