Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
Information Processing Letters
How to analyze large programs efficiently and informatively
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
Debugging with dynamic slicing and backtracking
Software—Practice & Experience
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 generalized theory of bit vector data flow analysis
ACM Transactions on Programming Languages and Systems (TOPLAS)
ACM SIGPLAN Notices
Source-level debugging of scalar optimized code
PLDI '96 Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation
Advanced compiler design and implementation
Advanced compiler design and implementation
Symbolic Debugging of Optimized Code
ACM Transactions on Programming Languages and Systems (TOPLAS)
Flow Analysis of Computer Programs
Flow Analysis of Computer Programs
An interactive high-level debugger for control-flow optimized programs (Summary)
SIGSOFT '83 Proceedings of the ACM SIGSOFT/SIGPLAN software engineering 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
Timestamped whole program path representation and its applications
Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
A compact execution history for dynamic slicing
Information Processing Letters
Optimizing Java Programs in the Presence of Exceptions
ECOOP '00 Proceedings of the 14th European Conference on Object-Oriented Programming
Non-transparent debugging for software-pipelined loops
CASES '07 Proceedings of the 2007 international conference on Compilers, architecture, and synthesis for embedded systems
Hi-index | 0.00 |
Compiler optimizations pose many problems to source-level debugging of an optimized program due to reordering, insertion, and deletion of code. On such problem is to determine whether the value of a varible is current at a breakpoint—that is, whether its actual value is the same as its expected value. We use the notion of dynamic currency of a variable in source-level debugging and propose the use of a minimal unrolled graph to reduce the run-time overhead of dynamic currency determination. We prove that the minimal unrolled graph is an adequate basis for performing bit-vector data flow analyses at a breakpoint. This property is used to perform dynamic currency determination. It is also shown to help in recovery of a dynamically noncurrent variable.