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

A thread-aware debugger with an open interface

Published: 01 August 2000 Publication History

Abstract

While threads have become an accepted and standardized model for expressing concurrency and exploiting parallelism for the shared-memory model, debugging threads is still poorly supported. This paper identifies challenges in debugging threads and offers solutions to them. The contributions of this paper are threefold. First, an open interface for debugging as an extension to thread implementations is proposed. Second, extensions for thread-aware debugging are identified and implemented within the Gnu Debugger to provide additional features beyond the scope of existing debuggers. Third, an active debugging framework is proposed that includes a language-independent protocol to communicate between debugger and application via relational queries ensuring that the enhancements of the debugger are independent of actual thread implementations. Partial or complete implementations of the interface for debugging can be added to thread implementations to work in unison with the enhanced debugger without any modifications to the debugger itself. Sample implementations of the interface for debugging have shown its adequacy for user-level threads, kernel threads and mixed thread implementations while providing extended debugging functionality at improved efficiency and portability at the same time.

References

[1]
R. Al~eri. An e~cient kernel-based implementation of posix threads. In USENIX Conference, Summer 1994.]]
[2]
F. Armand, F. Herrmann, J. Lipkis, and M. Rozier. Multi-threaded processes in CHORUS/MIX. In EEUG Conference, pages 1{13, Spring 1990.]]
[3]
B. Bruegge and P. Hibbard. Generalized path expressions: A high level debugging mechanism. In Software Engineering Symposium on High-Level Debugging, pages 34{44, Aug. 1983.]]
[4]
P. Buhr, M. Karsten, and J. Shih. KDB: A multi-threaded debugger for multi-threaded applications. In Symposium on Parallel and Distributed Tools, pages 80{87. ACM Press, May 1996.]]
[5]
D. Caswell and D. Black. Implementing a Mach debugger for multithreaded applications. In Winter USENIX Conference, pages 25{40, Berkeley, CA, USA, Jan. 1990.]]
[6]
J. Cownie and W. Gropp. A standard interface for debugger access to message queue information in MPI. In 6th European PVM/MPI Users' Group Meeting, volume 1697 of LNCS, pages 51{58. Springer-Verlag, 1999.]]
[7]
C. G. Davis. Testing large, real-time software systems. In Software Testing, Infotech State of the Art Report, volume 2, pages 85{105, 1979.]]
[8]
J. Eykholt, S. Kleiman, S. Barton, R. Faulkner, A. Shivalingiah, M. Smith, D. Stein, J. Voll, M. Weeks, and D. Williams. Beyond multiprocessing ... multithreading the SunOS kernel. In USENIX Conference, pages 11{18, Summer 1992.]]
[9]
H. P. D. Forum. Command interface for parallel debuggers. Draft revision 2.1 for standard, The Parallel Tools Consortium, Sept. 1998. http://www.ptools.org/hpdf/draft.]]
[10]
P. B. Kessler. Fast breakpoints. design and implementation. ACM SIGPLAN Notices, 25(6):78{84, June 1990.]]
[11]
X. Leroy. The linuxthreads library. http://pauillac.inria.fr/?xleroy/linuxthreads, 1996.]]
[12]
J. May and F. Berman. Retargetability and extensibility in a parallel debugger. Journal of Parallel and Distributed Computing, 35(2):142{155, June 1996.]]
[13]
C. E. McDowell and D. P. Helmbold. Debugging concurrent programs. ACM Computing Surveys, 21(4):593{622, Dec. 1989.]]
[14]
F. Mueller. A library implementation of POSIX threads under UNIX. In Proceedings of the USENIX Conference, pages 29{41, Jan. 1993.]]
[15]
M. K. Ponamgi, W. Hseush, and G. E. Kaiser. Debugging multithreaded programs with MPD. IEEE Software, 6(3):37{43, May 1991.]]
[16]
M. L. Powell, S. R. Kleiman, S. Barton, D. Shah, D. Stein, and M. Weeks. SunOS multi-thread architecture. In USENIX Conference, pages 65{80, Winter 1991.]]
[17]
C. Provenzano, G. Hudson, and K. Raeburn. Mit pthreads. http://www.mit.edu/people/proven/pthreads.html, 1993.]]
[18]
R. Snodgrass. A relational approach to monitoring complex systems. ACM Transactions on Computer Systems, 6(2):157{196, May 1988.]]
[19]
R. M. Stallman. GDB manual (the GNU source-level debugger). Technical report, Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA, Tel: (617) 876-3296, USA, Jan. 1989. Third Edition, GDB version 3.1.]]
[20]
D. Stein and D. Shah. Implementing lightweight threads. In USENIX Conference, pages 1{10, Summer 1992.]]
[21]
Technical Committee on Operating Systems and Application Environments of the IEEE. Portable Operating System Interface (POSIX)|Part 1: System Application Program Interface (API), 1996. ANSI/IEEE Std 1003.1, 1995 Edition, including 1003.1c: Amendment 2: Threads Extension {C Language}.]]
[22]
A. Tevanian, R. F. Rashid, D. B. Golub, D. L. Black, E. Cooper, and M. W. Young. MACH threads and the UNIX kernel: The battle for control. In USENIX Conference, pages 185{197, Summer 1987.]]
[23]
R. Wism? uller, M. Oberhuber, J. Krammer, and O. Hansen. Interactive debugging and performance analysis of massively parallel applications. Parallel Computing, 22(3):415{442, Apr. 1996.]]
[24]
S. C. Woo, M. Ohara, E. Torrie, J. P. Singh, and A. Gupta. The SPLASH-2 programs: Characteriation and methodological considerations. In Proceedings of the 22nd Annual International Symposium on Computer Architecture, pages 24{37, New York, June 22{24 1995. ACM Press.]]

Recommendations

Comments

Information & Contributors

Information

Published In

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 August 2000
Published in SIGSOFT Volume 25, Issue 5

Check for updates

Author Tags

  1. active debugging
  2. concurrency
  3. debugging
  4. open interface
  5. threads

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)73
  • Downloads (Last 6 weeks)10
Reflects downloads up to 17 Oct 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