ACM Home Page
Please provide us with feedback. Feedback
Debugging standard ML without reverse engineering
Full text PdfPdf (1.29 MB)
Source Conference on LISP and Functional Programming archive
Proceedings of the 1990 ACM conference on LISP and functional programming table of contents
Nice, France
Pages: 1 - 12  
Year of Publication: 1990
ISBN:0-89791-368-X
Authors
Andrew P. Tolmach  Department of Computer Science, Princeton University
Andrew W. Appel  Department of Computer Science, Princeton University
Sponsors
INRIA : Institut Natl de Recherche en Info et en Automatique
SIGACT: ACM Special Interest Group on Algorithms and Computation Theory
SIGART: ACM Special Interest Group on Artificial Intelligence
SIGPLAN: ACM Special Interest Group on Programming Languages
SIGSAM: ACM Special Interest Group on Symbolic and Algebraic Manipulation
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 5,   Downloads (12 Months): 21,   Citation Count: 15
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/91556.91564
What is a DOI?

ABSTRACT

We have built a novel and efficient replay debugger for our Standard ML compiler. Debugging facilities are provided by instrumenting the user's source code; this approach, made feasible by ML's safety property, is machine-independent and back-end independent. Replay is practical because ML is normally used functionally, and our compiler uses continuation-passing style; thus most of the program's state can be checkpointed quickly and compactly using call-with-current-continuation. Together, instrumentation and replay support a simple and elegant debugger featuring full variable display, polymorphic type resolution, stack trace-back, breakpointing, and reverse execution, even though our compiler is very highly optimizing and has no run-time stack.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
Appel87a
 
Appel87b
 
Appel88
A.W. Appet, B.F. Duba, and D.B, MacQueen, "Profiling in the presence of optimization and garbage collection," Technical Report CS-TR-197-88, Princeton University Dept. of Computer Science, 1988.
 
Appel89a
A.W. Appel, "Runtime tags aren't necessary," Lisp and Symbolic Computation, vol. 2, pp. 153-162, 1989.
Appel89b
Aral89
 
Balzer69
R.M. Balzer, "EXDAMS - EXtendable Debugging and Monitoring System," AFIPS Proc. Spring Joint Computer Conference, vol. 34, pp. 567-580, AFIPS Press, Arlington, VA, 1969.
 
Bruegge85
Cargill87
 
Curtis82
R. Curtis and L. Winie, "Bugnet: A debugging system for parallel programming environments," Proc. 3rd International Conf. on Distributed Computing Systems, pp. 394-399, October 1982.
 
Dybvig88
R.K. Dybvig, D.P. Friedman, and C.T. Haynes, "Expansion-Passing style: A general macro mechanism," Lisp and Symbolic Computation, vol. 1, pp. 53-75, 1988.
 
Friedman84
D.P. Friedman, C.T. Haynes, and E. Kohlbecker, "Programming with continuations," in Program transformation and programming environments, ed. P. Pepper, pp. 263-274, Springer, 1984.
 
Hanson78
D.R. Hanson, "Event associations in SNOBOL4 for program debugging," Software Practice and Experience, vol. 8, pp. 115-129, 1978.
Hennessy82
Johnson88
 
LeBlanc87
McDowell89
Mellor-Crummey89
Miller88
 
Milner90
 
Shaw87
Robert A. Shaw, "Improving garbage collector performance in virtual memory," STAN-TR-87-323, Stanford University Computer Science Department, 1987.
Wilson89
 
Zellweger84
P.T. Zellweger, "Interactive source-level debugging of optimized programs," CSL-84-5, Xerox Corporation Palo Alto Research Center, May 1984.

CITED BY  15

Collaborative Colleagues:
Andrew P. Tolmach: colleagues
Andrew W. Appel: colleagues