Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
article
Free access

Efficient debugging primitives for multiprocessors

Published: 01 April 1989 Publication History
  • Get Citation Alerts
  • Abstract

    Existing kernel-level debugging primitives are inappropriate for instrumenting complex sequential or parallel programs. These functions incur a heavy overhead in their use of system calls and process switches. Context switches are used to alternately invoke the debugger and the target programs. System calls are used to communicate data between the target and debugger.
    None of this is necessary in shared-memory multiprocessors. Multiple processors concurrently run both the debugger and the target. Shared-memory is used to implement efficient communication. The target's state is accessed by running both the target and the debugger in the same address space. Finally, instrumentation points, which have largely been implemented as traps to the system, are reimplemented as simple branches to routines of arbitrary complexity maintained by the debugger. Not only are primitives such as conditional breakpoints thus generalized, but their efficiency is improved by several orders of magnitude. In the process, much of the traditional system's kernel support for debugging is reimplemented at user-level.
    This paper describes the implementation of debugging primitives in Parasight, a parallel programming environment. Parasight has been used to implement conditional breakpoints, an important primitive for both high-level and parallel debugging. Preliminary measurements indicate that Parasight breakpoints are 1000 times faster than the breakpoints in parallel “cdb”, a conventional UNIX debugger. Light-weight conditional breakpoints open up new opportunities for debugging and profiling both parallel and sequential programs.

    References

    [1]
    CDB User's Guide. Encore Computer Corporation, Marlborough, MA 01581-4003.
    [2]
    DDT Reference Manual. Digital Equipment Corporation, 1972.
    [3]
    UMAX 4.2 Programmer's Reference Manual. Encore Computer Corporation, Marlborough, MA 01581-4003.
    [4]
    UMAX V Support Tools Guide. Encore Computer Corporation, 1986. Chapter 8: The Common Object File Format.
    [5]
    VAX/VMS Source. level Debugger Reference Manual. Digital Equipment Corp., Maynard, Mass., 1986.
    [6]
    E. Adams and S. S. Muchnick. Dbxtooh window-based symbolic debugger for Sun workstations. Software -- Practice and Experience, 16(7):653-669, July 1986.
    [7]
    Z. Aral and I. Gertner. High-level debugging in Parasight. In A CM Workshop on Parallel and Distributed Debugging, University of Wisconsin- Madison, May 1988.
    [8]
    Z. Aral and I. Gertner. Non-intrusive and interactive profiling in Parasight. In A CM/SIGPLAN PPEALS 1988 ~ Symposium on Parallel Programming: Experience with Applications, Languages and Systems, New Haven, Connecticut, July 1988.
    [9]
    Z. Aral and I. Gertner. Parasight: an architecture for high-level debugging and profiling. In A CM 1988 International Conference on Supercomputing, Saint Malo, France, July 1988.
    [10]
    C. G. Bell. Multi: a new class of mulitprocessor computers. Science, 228, April 1985.
    [11]
    T. Doeppner. Threads- A System }or the Support of Concurrent Programming. Computer Science Technical Report CS-87-11, Brown University, June 1987.
    [12]
    S. L. Graham, P. B. Kessler, and M. K. McKusick. Gpro~, a call graph execution profiler, in Proceedings of the SIGPLAN '8~ Symposium on Compiler Construction SIGPLAN Notices, Vol. 17, No. 6, June 1982.
    [13]
    J. Hennessy. Symbolic debugging of optimized code. A CM Transactions on Programming Languages and Systems, July 1982.
    [14]
    Colin Hunter. Series 3~000 Programmer's Reference Manual National Semiconductor Corp., 1987.
    [15]
    T. J. LeBlanc and J. M. Mellor-Crummey. Debugging parallel programs with instant replay. IEEE Transactions on Computers, C-36(4), April 1987.
    [16]
    M. I(. McKusick, M. J. Karels, and J. M. Bloom (editors). UNIX Programmers' Manual, 4.3 Berkley Software Distribution. University of California, Berkley, April 1986.
    [17]
    I. Nassi. A preliminary report on the Ultramax: a massively parallel shared memory multiprocessor. In DARPA Workshop on Parallel Architectures for Mathematical and Scientific Computing, July 1987.
    [18]
    R. Rashid. Threads of a new system. Unix Review, August 1986.
    [19]
    S. Reiss. Working in the garden environment for conceptual programming. IEEE Software, November 1987.
    [20]
    E. Satterthwaite. Source Language Debugging Tools. PhD thesis, Computer Science Department, Stanford University, 1975. STAN-CS-75- 494.
    [21]
    Z. Segall and F. Gregoretti. Programming for Observability Support in a Parallel Programming Environment. Technical Report CMU-CS-85-176, Carnegie-Mellon University, November 1985.
    [22]
    Z. SegaU and L. Rudolph. Pie: a programming and instrumentation environment for parallel processing. IEEE Software, November 1985.

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM SIGARCH Computer Architecture News
    ACM SIGARCH Computer Architecture News  Volume 17, Issue 2
    Special issue: Proceedings of ASPLOS-III: the third international conference on architecture support for programming languages and operating systems
    April 1989
    291 pages
    ISSN:0163-5964
    DOI:10.1145/68182
    Issue’s Table of Contents
    • cover image ACM Conferences
      ASPLOS III: Proceedings of the third international conference on Architectural support for programming languages and operating systems
      April 1989
      303 pages
      ISBN:0897913000
      DOI:10.1145/70082
    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 April 1989
    Published in SIGARCH Volume 17, Issue 2

    Check for updates

    Qualifiers

    • Article

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)44
    • Downloads (Last 6 weeks)4
    Reflects downloads up to 11 Aug 2024

    Other Metrics

    Citations

    View Options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Get Access

    Login options

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media