Kim Elms
Programming Languages and Systems Group, Department of Computer Science, Queensland University of Technology, Australia
Download articlePublished in: Proceedings of the 3rd International Workshop on Automatic Debugging; 1997 (AADEBUG-97)
Linköping Electronic Conference Proceedings 1:3, p. 27-36
Linköping Electronic Articles in Computer and Information Science vol. 2 1:3, p. 27-36
Published: 1997-09-10
ISBN:
ISSN: 1650-3686 (print), 1650-3740 (online)
Previously the debugging of optimised code has not been possible without recompiling the executable code and preventing the use of code optimisation techniques. Although current research efforts offer partial solutions to a small set of optimisation techniques; no unified approach has been developed to overcome the barriers imposed by a large range of sophisticated optimisation techniques.
The approach taken in the building of the prototype described throughout this paper combines program simulation and interpretation techniques with run-time executable modification techniques to provide an integrated environment for function-level interpretation. This has been achieved without the modification of an existing compiler and also without the enhancement of the compiler-debugger interface (CDI); thereby allowing direct application of the debugger in current operational environments.
This paper describes the construction of gpdb; a debugger for the Gardens Point compiler environment. This debugger has proved to be fundamental for the production of an interactive development environment which allows an optimised program to be run; corrected; modified; and even further developed without the need for the recompilation of the executable program; or the resetting of the debugging environment.
[BHS92] Brooks; G.; Hansen; G.J. and Simmons; S. ANew Approach to Debugging Optimised Code. In Proceedings of the SIGPLAN ‘92 Conference on Programming Language Design and Implementation; SIGPLAN Notices; v27(7); pp 1-11; San Francisco; California; June 1992; ACM Press.
[CiGo93] Cifuentes C. and Gough; K.J. A Methodology for Decompilation. In Proceedings of the XIX Conferencia Latinoamericana de Informática; pp 257-266; Buenos Aires; Argentina; August 1993. Centro Latinoamericano de Estudios en Informática.
[CmKe93] Cmelik; R.F. and Keppel D. Shade: A Fast Instruction-Set Simulator for Execution Profiling. TR# 93-06-06. University of Washington; June 1993.
[Copp93] Copperman; M. Debugging Optimised Code Without Being Misled. PhD Thesis; TR# UCSC-CRL-93-21. University of California; Santa Cruz; May 1993.
[GLE94] Gough; K.J.; Ledermann; J. and Elms; K. Interpretive Debugging of Optimised Code; Proceedings of ACSC-17; Christchurch; 1994.
[Goug95] Gough; K.J. The DCode Intermediate Program Representation Reference Manual and Report; available from ftp.fit.qut.edu.au/pub /papers/dcode300.ps.Z; 1995.
[HCU92] Hölzle; U.; Chambers; C. and Ungar D. Debugging Optimised Code with Dynamic Deoptimization. In Proceedings of the SIGPLAN ‘92 Conference on Programming Languages Design and Implementation; SIGPLAN Notices. v27(7); pp 32-43; San Francisco; California; June 1992; ACM Press.
[Henn82] Hennessy; J. Symbolic Debugging of Optimised Code. In ACM Transactions on Programming Languages and Systems; v4(3). pp 323-344; July 1982.
[Ho91] Ho; W.W. DLD: A Dynamic Link/Unlink Editor (v3.2.3). University of California Davis; 1991.
[Kess90] Kessler; P. Fast Breakpoints: Design and Implementation. In Proceedings of the ACM SIGPLAN ‘90 Conference on Programming Language Design and Implementation; SIGPLAN Notices; v25(6). pp 78-84; June 1990.
[Paxs90] Paxson; V. A Local Agent Architecture for Implementing Efficient Breakpoint Debuggers. CS 262; EECS Department; University of California; Berkeley; 1990.
[PeSi79] Perkins; S.R. and Sites; R.L. Machine Independent Pascal Code Optimisation. In Proceedings of the SIGPLAN Symposium on Compiler Construction; pp 201-207; 1979.
[Pizz93] Pizzi; R. GNU Debugger Internal Architecture. University of California Davis; December 1993.
[RaHa92] Ramsey; N. and Hanson D.R. A Retargetable Debugger. In Proceedings of the SIGPLAN ’92 Conference on Programming Language Design and Implementation; SIGPLAN Notices; v27(7); pp 22-31; July 1992.
[Rams93] Ramsey; N. A Retargetable Debugger. PhD Thesis; Princeton University; Princeton; NJ; january 1993.
[Sosi92] Sosic; R. Dynascope: A Tool for ProgramDirecting. In Proceedings of the SIGPLAN ’92 Conference on Programming Language Design and Implementation; SIGPLAN Notices; v27(6); pp 12-21; June 1992.
[Sosi95] Sosic; R. A Procedural Interface for Program Directing. Software Practice and Experiences; v25(7); pp 767-787; July 1995.
[Wirt71] Wirth; N. The Design of the Pascal Compiler. Software Practice and Experience. v1(4); pp 309-333; 1971.
[Wism94] Wismüller; R. Debugging of Globally Optimised Programs Using Data Flow Analysis. In Proceedings of the SIGPLAN ’94 Conference on Programming Language Design and Implementation; SIGPLAN Notices; v29(4); pp 278-289; June 1994.
[Zell83] Zellweger; P.T. An Interactive High-Level Debugger for Control-Flow Optimised Programs. In Proceedings of the ACM SIGSOFT/SIGPLAN Software Engineering Symposium on High-Level Debugging; 1983.
[Zura91] Zurawski; L.W. Debugging Optimised Code with Expected Behaviour; University of Illinois at Urbana-Champaign; 1991.