|
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
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.
| |
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
|
|
 |
4
|
Peter A. Buhr , Martin Karsten , Jun Shih, KDB: a multi-threaded debugger for multi-threaded applications, Proceedings of the SIGMETRICS symposium on Parallel and distributed tools, p.80-87, May 22-23, 1996, Philadelphia, Pennsylvania, United States
[doi> 10.1145/238020.238047]
|
| |
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
|
|
| |
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
|
|
| |
11
|
X. Leroy. The linuxthreads library. http://pauillac.inria.fr/?xleroy/linuxthreads, 1996.
|
| |
12
|
|
 |
13
|
|
| |
14
|
F. Mueller. A library implementation of POSIX threads under UNIX. In Proceedings of the USENIX Conference, pages 29{41, Jan. 1993.
|
| |
15
|
|
| |
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
|
|
| |
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
|
|
 |
24
|
Steven Cameron Woo , Moriyoshi Ohara , Evan Torrie , Jaswinder Pal Singh , Anoop Gupta, The SPLASH-2 programs: characterization and methodological considerations, Proceedings of the 22nd annual international symposium on Computer architecture, p.24-36, June 22-24, 1995, S. Margherita Ligure, Italy
|
CITED BY 2
|
|
Jaydeep Marathe , Frank Mueller , Tushar Mohan , Bronis R. de Supinski , Sally A. McKee , Andy Yoo, METRIC: tracking down inefficiencies in the memory hierarchy via binary rewriting, Proceedings of the international symposium on Code generation and optimization: feedback-directed and runtime optimization, March 23-26, 2003, San Francisco, California
|
|
|
|
|