Nothing Special   »   [go: up one dir, main page]

skip to main content
article
Open access

Dynamic currency determination in optimized programs

Published: 01 November 1998 Publication History

Abstract

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.

References

[1]
ADL-TABATABAI, A. 1996. Source-Level Debugging of Globally Optimized Code. Ph.D. thesis, School of Computer Science, Carnegie Mellon University.
[2]
ADL-TABATABAI, A. AND GROSS, T. 1993a. Detection and Recovery of Endangered Variables Caused by Instruction Scheduling. In Proceedings of the A CM SIGPLAN '93 Conference on Programming Language Design and Implementation. SIGPLAN Not. 28, 6, 13-25.
[3]
ADL-TABATABAI, A. AND GROSS, T. 1993b. Evicted Variables and the Interaction of Global Register Allocation and Symbolic Debugging. In Proceedings of the 20th Annual A CM SIGACT- SIGPLAN Symposium on Principles of Programming Languages. ACM, New York, 371-383.
[4]
ADL-TABATABAI, A. AND GROSS, T. 1996. Source-Level Debugging of Globally Optimized Code. In Proceedings of the A CM SIGPLAN '96 Conference on Programming Language Design and Implementation. SIGPLAN Not. 31, 5, 13-25.
[5]
AGRAWAL, H., DEMILLO, R. A., AND SPAFFORD, E. H. 1993. Debugging with dynamic slicing and backtracking. Softw. Pract. Ezper. 23, 6, 589-616.
[6]
AHO, A., SETHI, R., AND ULLMAN, J. 1986. Compilers--Principles, Techniques and Tools. Addison Wesley.
[7]
COPPERMAN, M. 1993. Debugging Optimized Code Without Being Misled. Ph.D. thesis, Computer and Information Sciences, University of California at Santa Cruz, Santa Cruz, California.
[8]
COPPERMAN, M. 1994. Debugging Optimized Code Without Being Misled. ACM Trans. Program. Lang. Syst. 16, 3, 387-427.
[9]
COPPERMAN, M. AND THOMAS, J. 1995. Poor Man's Watchpoints. SIGPLAN Not. 30, 1, 37-44.
[10]
DHAMDHERE, D. M., ROSEN, B. K., AND ZADECK, F. K. 1992. How to Analyze Large Programs Efficiently and Informatively. In Proceedings of the A CM SIGPLAN '92 Conference on Programming Language Design and Implementation. SIGPLAN Not. 27, 7, 212-223.
[11]
HECHT, M. S. 1977. Flow Analysis of Computer Programs. Elsevier North-Holland, Inc.
[12]
HENNESSY, J. 1982. Symbolic Debugging of Optimized Code. ACM Trans. Program. Lang. Syst. 4, 3, 323-344.
[13]
KHEDKER, U. P. AND DHAMDHERE, D. M. 1994. A Generalized Theory of Bit Vector Data Flow Analysis. ACM Trans. Program. Lang. Syst. 16, 5, 1472-1511.
[14]
KOREL, B. AND LASKI, J. 1988. Dynamic program slicing. Inf. Process. Lett. 29, 155-163.
[15]
MUCHNICK, S. 1997. Advanced Compiler Design and Implementation. Morgan Kaufmann.
[16]
WISMULLER, R. 1994. Debugging of Globally Optimized Programs Using Data Flow Analysis. SIGPLAN Not. 29, 6, 278-289.
[17]
ZELLWEGER, P. T. 1983. An Interactive High-Level Debugger for Control-Flow Optimized Programs. In Proceedings of the A CM SIGSOFT/SIGPLAN Software Engineering Symposium on High-Level Debugging. SIGPLAN Not. 18, 8, 159-172.

Cited By

View all
  • (2007)Non-transparent debugging for software-pipelined loopsProceedings of the 2007 international conference on Compilers, architecture, and synthesis for embedded systems10.1145/1289881.1289887(23-32)Online publication date: 30-Sep-2007
  • (2003)A compact execution history for dynamic slicingInformation Processing Letters10.1016/S0020-0190(02)00322-885:3(145-152)Online publication date: 14-Feb-2003
  • (2002)Debugging and Testing Optimizers through Comparison CheckingElectronic Notes in Theoretical Computer Science10.1016/S1571-0661(04)80398-065:2(83-99)Online publication date: Apr-2002
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Transactions on Programming Languages and Systems
ACM Transactions on Programming Languages and Systems  Volume 20, Issue 6
Nov. 1998
212 pages
ISSN:0164-0925
EISSN:1558-4593
DOI:10.1145/295656
Issue’s Table of Contents
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 November 1998
Published in TOPLAS Volume 20, Issue 6

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. code instrumentation
  2. code optimization
  3. compiler
  4. debugging optimized code
  5. dynamic currency determination
  6. dynamic slicing
  7. minimal unrolled graph
  8. source-level debugging

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)33
  • Downloads (Last 6 weeks)4
Reflects downloads up to 25 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2007)Non-transparent debugging for software-pipelined loopsProceedings of the 2007 international conference on Compilers, architecture, and synthesis for embedded systems10.1145/1289881.1289887(23-32)Online publication date: 30-Sep-2007
  • (2003)A compact execution history for dynamic slicingInformation Processing Letters10.1016/S0020-0190(02)00322-885:3(145-152)Online publication date: 14-Feb-2003
  • (2002)Debugging and Testing Optimizers through Comparison CheckingElectronic Notes in Theoretical Computer Science10.1016/S1571-0661(04)80398-065:2(83-99)Online publication date: Apr-2002
  • (2001)Timestamped whole program path representation and its applicationsACM SIGPLAN Notices10.1145/381694.37883536:5(180-190)Online publication date: 1-May-2001
  • (2001)Timestamped whole program path representation and its applicationsProceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation10.1145/378795.378835(180-190)Online publication date: 20-Jun-2001
  • (2000)FULLDOC: A Full Reporting Debugger for Optimized CodeStatic Analysis10.1007/978-3-540-45099-3_13(240-259)Online publication date: 2000
  • (2000)Optimizing Java Programs in the Presence of ExceptionsECOOP 2000 — Object-Oriented Programming10.1007/3-540-45102-1_21(422-446)Online publication date: 12-May-2000
  • (1999)Comparison checkingProceedings of the 7th European software engineering conference held jointly with the 7th ACM SIGSOFT international symposium on Foundations of software engineering10.5555/318773.318947(268-284)Online publication date: 1-Oct-1999
  • (1999)Comparison checkingACM SIGSOFT Software Engineering Notes10.1145/318774.31894724:6(268-284)Online publication date: 1-Oct-1999
  • (1999)Comparison Checking: An Approach to Avoid Debugging of Optimized CodeSoftware Engineering — ESEC/FSE ’9910.1007/3-540-48166-4_17(268-284)Online publication date: 27-Aug-1999

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Full Access

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media