[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1145/178243.178430acmconferencesArticle/Chapter ViewAbstractPublication PagespldiConference Proceedingsconference-collections
Article
Free access

Debugging of globally optimized programs using data flow analysis

Published: 01 June 1994 Publication History

Abstract

Advanced processor and machine architectures need optimizing compilers to be efficiently programmed in high level languages. Therefore the need for source level debuggers that can handle optimized programs is rising. One difficulty in debugging optimized code arises from the problem to determine the values of source code variables. To ensure correct debugger behaviour with optimized programs, the debugger not only has to determine the variable's storage location or associated register. It must also verify that the variable is current, i.e. the value determined from that location is really the value that the variable would have in unoptimized code. We will deduce requirements on algorithms for currentness determination and present an algorithm meeting this requirements that is more general than previous work. We will also give first experiences with an implementation. To our knowledge this is the first implementation of a currentness determination algorithm for globally optimized code.

References

[1]
A. Adl-Tabatabai and T. Gross. Detection and Recovery of Endangered Variables Caused by Instruction Scheduling. In Proceedings of the ACM/SIGPLAN Conference on Programming Language Design and Implementatio n PLDr 93, volume 28(6) of ACM SIGPLAN Notices, pages 13-25, Albuquerque, New Mexico, June 1993.
[2]
A. Adl-Tabatabai and T Gross. Evicted Variables and the Interaction of Global Register Allocation and Symbolic Debugging. In Proceedings of the 20th Annual ACM SIGACT- SIGPLAN Symposium on Principles of Programruing Languages, pages 371-383, Charleston, South-Carolina, January 1993. ACM Press.
[3]
T Bemmerl and A. Bode. An Integrated Environment for Programming Distributed Memory Multiprocessors. in A. Bode, editor, Distributed Memory Computing, 2nd European Conference, EDMCC2, volume 487 of Lecture Notes in Computer Science, pages 130-142, Mt~nchen, FRG, April 1991. Springer-Verlag.
[4]
G. Brooks, G. J. Hansen, and S. Simmons. A New Approach to Debugging Optimized Code. In ACM SiGPLAN '92 Conference on Programming Language Design and Implementation, volume 27(7) of ACM SIGPLAN Notices, pages 1-11, San Francisco, California, June 1992. ACM Press.
[5]
D.S. Coutant, S. Meloy, and M. Ruscetta. DOC: A Practical Approach to Source-Level Debugging of Globally Optimized Code. In Proceedings of the SIGPLAN '88 Conference on Programming Language Design and Implementation, volume 23(7) of ACM SIGPLAN Notices, pages 125-134, June 1988.
[6]
M. Copperman. Debugging Optimized Code WithoutBeing Misled. PhD thesis, Univ. of California, Santa Cruz, May 1993. Technical Report UCSC-CRL-93-21.
[7]
R. Gupta. Debugging Code Reorganized by a Trace Scheduling Compiler. Structured Programming, 11(3): 141-150, 1990.
[8]
U. H61zle, C. Chambers, and D. Ungar. Debugging Optimized Code with Dynamic Deoptimization. In ACM SIGPLAN ' 92 Conference on Programming Language Design and Implementation, volume 27(7)ofACM SIGPLANNotices, pages 32-43, San Francisco, California, June 1992. ACM Press.
[9]
M.S. Hecht. Flow Analysis of Computer Programs. The Computer Science Library. Elsevier North-Holland, New York, 1977.
[10]
J. Hennessy. Symbolic Debugging of Optimized Code. ACM Transactions on Programming Languages and Systems, 4(3):323-344, July 1982.
[11]
S.S. Muchnick and N. D. Jones. Program Flow Analysis, Theory and Applications. Prentice Hall, Englewood Cliffs, 1981.
[12]
S.S. Muchnick. Compiling forRISC-Based Systems. In RISC Compilers Tutorial, SIGPLAN' 90 Conference on Programming Language Design and Implementation, White Plains, New York, June 1990.
[13]
L.L. Pollock and M. L. Sofia. High-Level Debugging with the Aid of an Incremental Optimizer. In Proceedings of the Twenty-First Annual Hawaii International Conference on System Sciences, volume II, Software Track, pages 524-532, 1988.
[14]
D.A. Padua and M. J. Wolfe. Advance~ Compiler Optimizations for Supercomputers. Communications of the ACM, 29(12):1184-1201, December 1986.
[15]
P.T. Zellweger. Interactive Source-Level Debugging of Optimized Programs. Technical Report CSL-84-5, Xerox Corporation, Palo Alto Research Center, Palo Alto, California, May 1984.
[16]
L.W. Zurawski and R. E. Johnson. Debugging Optimized Code with Expexted Behaviour. unpublished manuscript, April 1991.

Cited By

View all
  • (2023)BigDataflow: A Distributed Interprocedural Dataflow Analysis FrameworkProceedings of the 31st ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3611643.3616348(1431-1443)Online publication date: 30-Nov-2023
  • (2022)Automatic generation of debug headers through BlackBox equivalence checkingProceedings of the 20th IEEE/ACM International Symposium on Code Generation and Optimization10.1109/CGO53902.2022.9741273(144-154)Online publication date: 2-Apr-2022
  • (2021)Who’s debugging the debuggers? exposing debug information bugs in optimized binariesProceedings of the 26th ACM International Conference on Architectural Support for Programming Languages and Operating Systems10.1145/3445814.3446695(1034-1045)Online publication date: 19-Apr-2021
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
PLDI '94: Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation
August 1994
360 pages
ISBN:089791662X
DOI:10.1145/178243
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]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 June 1994

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Article

Conference

PLDI94
Sponsor:

Acceptance Rates

Overall Acceptance Rate 406 of 2,067 submissions, 20%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)109
  • Downloads (Last 6 weeks)5
Reflects downloads up to 12 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2023)BigDataflow: A Distributed Interprocedural Dataflow Analysis FrameworkProceedings of the 31st ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering10.1145/3611643.3616348(1431-1443)Online publication date: 30-Nov-2023
  • (2022)Automatic generation of debug headers through BlackBox equivalence checkingProceedings of the 20th IEEE/ACM International Symposium on Code Generation and Optimization10.1109/CGO53902.2022.9741273(144-154)Online publication date: 2-Apr-2022
  • (2021)Who’s debugging the debuggers? exposing debug information bugs in optimized binariesProceedings of the 26th ACM International Conference on Architectural Support for Programming Languages and Operating Systems10.1145/3445814.3446695(1034-1045)Online publication date: 19-Apr-2021
  • (2020)Debug information validation for optimized codeProceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation10.1145/3385412.3386020(1052-1065)Online publication date: 11-Jun-2020
  • (2019)VFixProceedings of the 41st International Conference on Software Engineering10.1109/ICSE.2019.00063(512-523)Online publication date: 25-May-2019
  • (2010)Detecting bugs in register allocationACM Transactions on Programming Languages and Systems10.1145/1734206.173421232:4(1-36)Online publication date: 22-Apr-2010
  • (2009)Transparent Debugging of Dynamically Optimized CodeProceedings of the 7th annual IEEE/ACM International Symposium on Code Generation and Optimization10.1109/CGO.2009.28(275-286)Online publication date: 22-Mar-2009
  • (2000)FULLDOC: A Full Reporting Debugger for Optimized CodeStatic Analysis10.1007/978-3-540-45099-3_13(240-259)Online publication date: 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
  • Show More Cited By

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media