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

Fast breakpoints: design and implementation

Published: 01 June 1990 Publication History

Abstract

We have designed and implemented a fast breakpoint facility. Breakpoints are usually thought of as a feature of an interactive debugger, in which case the breakpoints need not be particularly fast. In our environment breakpoints are often used for non-interactive information gathering; for example, procedure call count and statement execution count profiling [Swinehart, et al.]. When used non-interactively, breakpoints should be as fast as possible, so as to perturb the execution of the program as little as possible. Even in interactive debuggers, a conditional breakpoint facility would benefit from breakpoints that could transfer to the evaluation of the condition rapidly, and continue expeditiously if the condition were not satisfied. Such conditional breakpoints could be used to check assertions, etc. Program advising could also make use of fast breakpoints [Teitelman]. Examples of advising include tracing, timing, and even animation, all of which should be part of an advanced programming environment.
We have ported the Cedar environment from a machine with microcode support for breakpoints [Lampson and Pier] to commercial platforms running C code [Atkinson, et al.]. Most of our ports run under the Unix* operating system, so one choice for implementing breakpoints for Cedar was to use the breakpoint facility provided by that system. The breakpoints provided by the Unix operating system are several orders of magnitude too slow (and also several process switches too complicated) for the applications we have in mind. So we designed a breakpoint system that was fast enough for our purposes.
Breakpoints for uni-processors running single threads of control used to be fast and simple to implement. This paper shows that breakpoints can still be fast, even with multiple threads of control on multi-processors. This paper describes problems in the design of a breakpoint package for modern computer architectures and programming styles, and our solutions to them for a particular architecture.

References

[1]
Z. Aral, and I. Gertner, "High-Level Debugging in Parasight", in Proceedings of the Workshop on Parallel and Distributed Debugging, SIGPLAN Notices Volume 24, Number 1, January 1989.
[2]
R. Atkinson, A. Demers, C. Hauser, C. Jacobi, P. Kessler, M. Weiser, "Experiences Creating a Portable Cedar", in Proceedings of the SIGPLAN'89 Conference on Programming Design and Implementation, S IGPLAN Notices Vol. 24, No. 7, July 1989.
[3]
A. Demers, M. Weiser, B. Hayes, H. Boehm, D. Bobrow, S. Shenker, "Combining Generational and Conservative Garbage Collection: Framework and Implementations", in Proceedings of the 17th Annual ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages, January 1990.
[4]
T. G. Evans and D. L. Darley, "On-line Debugging Techniques: A Survey", in Proceedings of the Fall Joint Computer Conference, 1966.
[5]
R. S. Fabry, "MADBUG - A MAD Debugging System", in The Compatible Time-Sharing System. A Programmer's Guide, Second Edition, MIT Press, Cambridge MA, 1965.
[6]
S. Gill, "The Diagnosis of Mistakes in Programmes on the EDSAC", in Proceedings of the Royal Society, Series A, Vol. 206, pp. 538-554.
[7]
S. Graham, P. Kessler, M. McKusick, "gprof: A Call Graph Execution Profiler", in Proceedings of the SIGPLAN'82 Symposium on Compiler Construction, SIGPLAN Notices Vol. 17, No. 2, June 1982.
[8]
M. S. Johnson, An Annotated Software Debugging Bibliography, Hewlett-Packard Laboratories, March 1982.
[9]
G. Kane, MIPS RISC Architecture, Prentice-Hall inc., Englewood Cliffs, NJ, 1988.
[10]
T. J. Klensk and L. E. Larson, IBM Technical Disclosure Bulletin, Vol. 15, No. 4, pp 1248-50, September 1972.
[11]
D. E. Knuth, The Art of Computer Programming, Vol. 1, p. 189, Addison-Wesley, 1968.
[12]
B. Lampson and K. Pier, "A Processor for High- Performance Personal Computer", in SIGAR CH/IEEE Proceedings of the 7th Symposium on Computer Architecture, La Baule, May 1980.
[13]
C. H. Pappas and W. H. Murray III, 80386 Microprocessor Handbook, Osborne McGraw-Hill, Berkeley, CA, 1988.
[14]
T. G. Stockham and J. B. Dennis, "FLIT- Flex0writer Interrogation Tape: A Symbolic Utility Program for the TX-0", Memo 5001-23, Department of Electrical Engineering, MIT, July 1960.
[15]
Sun Microsystems, Inc., Debugging Tools, Part No. 800-1775-10, May 1988.
[16]
Sun Microsystems, Inc., The SPARC Architecture Manual, Part No. 800-1399-03, June 1987.
[17]
D. Swinehart, P. Zellweger, R. Beach, R. Hagmann, "A Structural View of the Cedar Programming Environment", Transactions on Programming Languages and Systems, Vol. 8, No. 4, October 1986.
[18]
W. Teitelman, Interlisp Reference Manual, Xerox Corporation, Palo Alto, CA, Oct, 1978.

Cited By

View all
  • (2024)Source-Level Debugging of Compiler-Optimised Code: Ill-Posed, but Not ImpossibleProceedings of the 2024 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software10.1145/3689492.3690047(38-53)Online publication date: 17-Oct-2024
  • (2024)Accurate Coverage Metrics for Compiler-Generated Debugging InformationProceedings of the 33rd ACM SIGPLAN International Conference on Compiler Construction10.1145/3640537.3641578(126-136)Online publication date: 17-Feb-2024
  • (2019)Debugging Support for Pattern-Matching Languages and AcceleratorsProceedings of the Twenty-Fourth International Conference on Architectural Support for Programming Languages and Operating Systems10.1145/3297858.3304066(1073-1086)Online publication date: 4-Apr-2019
  • 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 '90: Proceedings of the ACM SIGPLAN 1990 conference on Programming language design and implementation
June 1990
351 pages
ISBN:0897913647
DOI:10.1145/93542
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 1990

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Article

Acceptance Rates

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

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)155
  • Downloads (Last 6 weeks)30
Reflects downloads up to 17 Jan 2025

Other Metrics

Citations

Cited By

View all
  • (2024)Source-Level Debugging of Compiler-Optimised Code: Ill-Posed, but Not ImpossibleProceedings of the 2024 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software10.1145/3689492.3690047(38-53)Online publication date: 17-Oct-2024
  • (2024)Accurate Coverage Metrics for Compiler-Generated Debugging InformationProceedings of the 33rd ACM SIGPLAN International Conference on Compiler Construction10.1145/3640537.3641578(126-136)Online publication date: 17-Feb-2024
  • (2019)Debugging Support for Pattern-Matching Languages and AcceleratorsProceedings of the Twenty-Fourth International Conference on Architectural Support for Programming Languages and Operating Systems10.1145/3297858.3304066(1073-1086)Online publication date: 4-Apr-2019
  • (2019)Unix, Plan 9 and the Lurking SmalltalkReflections on Programming Systems10.1007/978-3-319-97226-8_6(189-213)Online publication date: 11-Jan-2019
  • (2013)The operating systemProceedings of the Seventh Workshop on Programming Languages and Operating Systems10.1145/2525528.2525534(1-7)Online publication date: 3-Nov-2013
  • (2013)Deriving code coverage information from profiling data recorded for a trace-based just-in-time compilerProceedings of the 2013 International Conference on Principles and Practices of Programming on the Java Platform: Virtual Machines, Languages, and Tools10.1145/2500828.2500829(1-12)Online publication date: 11-Sep-2013
  • (2012)Effective Malware Analysis Using Stealth BreakpointsThreats, Countermeasures, and Advances in Applied Information Security10.4018/978-1-4666-0978-5.ch023(444-461)Online publication date: 2012
  • (2011)Jazz2Proceedings of the 9th International Conference on Principles and Practice of Programming in Java10.1145/2093157.2093169(81-90)Online publication date: 24-Aug-2011
  • (2009)Re-inforced stealth breakpoints2009 Fourth International Conference on Risks and Security of Internet and Systems (CRiSIS 2009)10.1109/CRISIS.2009.5411978(59-66)Online publication date: Oct-2009
  • (2007)Virtual Execution Environments: Support and Tools2007 IEEE International Parallel and Distributed Processing Symposium10.1109/IPDPS.2007.370489(1-6)Online publication date: Mar-2007
  • 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