Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
Recovery of noncurrent variables in source-level debugging of optimized code
Proc. of the sixth conference on Foundations of software technology and theoretical computer science
PELAS-Program Error-Locating Assistant System
IEEE Transactions on Software Engineering
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
High-level debugging with the aid of an incremental optimizer
Proceedings of the Twenty-First Annual Hawaii International Conference on Software Track
Techniques for debugging parallel programs with flowback analysis
ACM Transactions on Programming Languages and Systems (TOPLAS)
Debugging parallelized code using code liberation techniques
PADD '91 Proceedings of the 1991 ACM/ONR workshop on Parallel and distributed debugging
Source level debugging of automatically parallelized code
PADD '91 Proceedings of the 1991 ACM/ONR workshop on Parallel and distributed debugging
Incremental global reoptimization of programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
A new approach to debugging optimized code
PLDI '92 Proceedings of the ACM SIGPLAN 1992 conference on Programming language design and implementation
Adapting a debugger for optimised programs
ACM SIGPLAN Notices
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
A further note on Hennessy's “Symbolic debugging of optimized code”
ACM Transactions on Programming Languages and Systems (TOPLAS)
A note on Hennessy's “symbolic debugging of optimized code”
ACM Transactions on Programming Languages and Systems (TOPLAS)
Symbolic Debugging of Optimized Code
ACM Transactions on Programming Languages and Systems (TOPLAS)
An interactive high-level debugger for control-flow optimized programs
SIGSOFT '83 Proceedings of the symposium on High-level debugging
A further 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
Debugging highly-optimized Ada with code motion (DHACM)
Proceedings of the conference on TRI-Ada '97
Dynamic currency determination in optimized programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
A new framework for debugging globally optimized code
Proceedings of the ACM SIGPLAN 1999 conference on Programming language design and implementation
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
Reversible Debugging Using Program Instrumentation
IEEE Transactions on Software Engineering
Optimizing Java Programs in the Presence of Exceptions
ECOOP '00 Proceedings of the 14th European Conference on Object-Oriented Programming
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
Enhancing source-level programming tools with an awareness of transparent program transformations
Proceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications
Hi-index | 0.00 |
Correct optimization can change the behavior of an incorrect program; therefore at times it is necessary to debug optimized code. However, optimizing compilers produce code that impedes source-level debugging.Optimization can cause an inconsistency between where the user expects a breakpoint to be located and the breakpoint's actual location. This article describes a mapping between statements and breakpoint locations that ameliorates this problem. The mapping enables debugger behavior on optimized code that approximates debugger behavior on unoptimized code sufficiently closely for the user to use traditional debugging strategies.Optimization can also cause the value of a variable to be noncurrent—to differ from the value that would be predicted by a close reading of the source code. This article presents a method of determining when this has occurred, and shows how a debugger can describe the relevant effects of optimization. The determination method is more general than previously published methods; it handles global optimization and many flow graph transformations, and it is not tightly coupled to optimizations performed by a particular compiler. Necessary compiler support is also described.