Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/70082.68189acmconferencesArticle/Chapter ViewAbstractPublication PagesasplosConference Proceedingsconference-collections
Article
Free access

A software instruction counter

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

    Although several recent papers have proposed architectural support for program debugging and profiling, most processors do not yet provide even basic facilities, such as an instruction counter. As a result, system developers have been forced to invent software solutions. This paper describes our implementation of a software instruction counter for program debugging. We show that an instruction counter can be reasonably implemented in software, often with less than 10% execution overhead. Our experience suggests that a hardware instruction counter is not necessary for a practical implementation of watch-points and reverse execution, however it will make program instrumentation much easier for the system developer.

    References

    [1]
    T. Cargill and B. Locanthi. Cheap hardware support for software debugging and profiling. In Proc. of the 2nd International Conference on Architectural Support for Programming Languages and Operating Systems, pages 82-83, Palo Alto, CA, Oct. 1987.
    [2]
    Digital Equipment Corporation. VAX Architecture Handbook. Digital Equipment Corporation, Maynard, MA, 1981.
    [3]
    I. J. P. Elshoff. A distributed debugger for Amoeba. In Proc. of the $IGPLAN/$IGOP$ Workshop on Parallel and Distributed Debugging, pages 1-10, Madison, WI, May 1988.
    [4]
    R. Fowler, T. LeBlanc, and J. Mellor-Crummey. An integrated approach to parallel program debugging and performance analysis on largescale multiprocessors. In Proc. of the SIG- PLAN/$IGOP$ Workshop on Parallel and Distributed Debugging, pages 163-173, Madison, WI, May 1988.
    [5]
    R. B. Gardner. SPARC scalable processor architecture. Sun Technology, 1(3):42-55, 1988.
    [6]
    S. Graham, P. Kessler, and M. McKusick. gprof: A call graph execution profiler. In Proc. of the SIGPLAN '82 Symposium on Compiler Construction, pages 120-126. SIGPLAN notices, Vol 17, No. 6, june 1982.
    [7]
    Hewlett-Packard. Precision architecture and Instruction Reference Manual. Hewlett-Packard Company, Rockville, MD, 1987.
    [8]
    M. Johnson. Some requirements for architectural support of software debugging. In Proc. of the Symposium on Architectural Support for Programming Languages and Operating Systems, pages 140-148, Palo Alto, CA, Mar. 1982.
    [9]
    T. J. LeBlanc and J. M. Mellor-Crummey. Debugging parallel programs with Instant Replay. {EEE Transactions on Computers, C-36(4):471- 482, Apr. 1987.
    [10]
    R. McLear, D. Scheibelhut, and E. Tammaru. Guidelines for creating a debuggable processor. In Proc. of the Symposium on Architectural Support for Programming Languages and Operating Systems, pages 100-106, Palo Alto, CA, Mar. 1982.
    [11]
    Motorola. 68020 3~-bit Microprocessor User's Manual, Second Edition. Prentice Hall, Englewood Cliffs, NJ, 1985.
    [12]
    J. Moussouris, L. Crudele, D. Freitas, C. Hansen, E. Hudson, R. March, S. Przybylski, T. Riordan, C. Rowen, and D. Van't Hof. A CMOS RISC processor with integrated system functions. In Proc. of the 1986 COMPCON. IEEE, Mar. 1986.
    [13]
    S. S. Muchnick. Optimizing compilers for SPARC. Sun Technology, 1(3):64-77, 1988.
    [14]
    D. Z. Pan and M. A. Linton. Supporting reverse execution of parallel programs. In Proc. of ~he SIGPLAN/SIGOPS Workshop on Parallel and Distributed Debugging, pages 124-129, Madison, WI, May 1988.
    [15]
    R. Richardson. Dhrystone 2.1 benchmark. Usenet Distribution, Dec. 1988.
    [16]
    D. W. Wall and M. L. Powell. The Mahler experience' Using an intermediate language as the machine description. In Proc. of the ~nd International Conference on Architectural Support for Programming Languages and Operating Systems, pages 100-104, Palo Alto, CA, Oct. 1987.
    [17]
    R. P. Weicker. Dhrystone benchmark: Rationale for version 2 and measurement rules. $IGPLAN Notices, pages 49-62, Aug. 1988.

    Cited By

    View all
    • (2020)How C++ Templates Are Used for Generic ProgrammingACM Transactions on Software Engineering and Methodology10.1145/335657929:1(1-49)Online publication date: 30-Jan-2020
    • (2020)On the Monitoring of Decentralized SpecificationsACM Transactions on Software Engineering and Methodology10.1145/335518129:1(1-57)Online publication date: 30-Jan-2020
    • (2019)Fault Tolerance Through Redundant Execution on COTS Multicores: Exploring Trade-Offs2019 49th Annual IEEE/IFIP International Conference on Dependable Systems and Networks (DSN)10.1109/DSN.2019.00031(188-200)Online publication date: Jun-2019
    • Show More Cited By

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    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
    • 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
    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 April 1989

    Permissions

    Request permissions for this article.

    Check for updates

    Qualifiers

    • Article

    Conference

    ASPLOS89
    Sponsor:

    Acceptance Rates

    Overall Acceptance Rate 535 of 2,713 submissions, 20%

    Upcoming Conference

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)59
    • Downloads (Last 6 weeks)10
    Reflects downloads up to 10 Aug 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2020)How C++ Templates Are Used for Generic ProgrammingACM Transactions on Software Engineering and Methodology10.1145/335657929:1(1-49)Online publication date: 30-Jan-2020
    • (2020)On the Monitoring of Decentralized SpecificationsACM Transactions on Software Engineering and Methodology10.1145/335518129:1(1-57)Online publication date: 30-Jan-2020
    • (2019)Fault Tolerance Through Redundant Execution on COTS Multicores: Exploring Trade-Offs2019 49th Annual IEEE/IFIP International Conference on Dependable Systems and Networks (DSN)10.1109/DSN.2019.00031(188-200)Online publication date: Jun-2019
    • (2017)Back-in-Time Debugging in Heterogeneous Software Stacks2017 IEEE International Symposium on Software Reliability Engineering Workshops (ISSREW)10.1109/ISSREW.2017.62(183-190)Online publication date: Oct-2017
    • (2017)On the Design and Implementation of an Efficient Lock-Free SchedulerJob Scheduling Strategies for Parallel Processing10.1007/978-3-319-61756-5_2(22-45)Online publication date: 12-Jul-2017
    • (2016)Abstractions for Practical Virtual Machine ReplayACM SIGPLAN Notices10.1145/3007611.289225751:7(93-106)Online publication date: 25-Mar-2016
    • (2016)Abstractions for Practical Virtual Machine ReplayProceedings of the12th ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments10.1145/2892242.2892257(93-106)Online publication date: 25-Mar-2016
    • (2013)DIMEProceedings of the Eleventh ACM International Conference on Embedded Software10.5555/2555754.2555779(1-10)Online publication date: 29-Sep-2013
    • (2013)DIME: Time-aware dynamic binary instrumentation using rate-based resource allocation2013 Proceedings of the International Conference on Embedded Software (EMSOFT)10.1109/EMSOFT.2013.6658603(1-10)Online publication date: Sep-2013
    • (2013)Identifying execution points for dynamic analysesProceedings of the 28th IEEE/ACM International Conference on Automated Software Engineering10.1109/ASE.2013.6693069(81-91)Online publication date: 11-Nov-2013
    • Show More Cited By

    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