Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
A debugger for concurrent programs
Gait J. Software--Practice & Experience15 (6):539-554,1985.Type:Article
Date Reviewed: Feb 1 1986

This paper describes a source level debugger (CBUG) for concurrent programs written in C. Although C does not directly support concurrent processes, it is traditionally augmented by the standard UNIX system calls (fork, etc.). The basic object to CBUG is a process. Support exists for monitoring, tracing, and single stepping at message and synchronization granularity. A multiwindow user environment supports windows for processes, I/O (pipes, files, etc.), and menus. The paper is oriented towards C and UNIX experts, although the references are extensive.

CBUG uses hooks in the C source, compiling a modified version with the debugger. A concurrent program is monitored by a supervisory routine that starts each process, waits for it to finish, and cleans up after it. Processes are invoked with embedded copies of CBUG which communicate with one another to support interactive breaks, deadlock recovery, single stepping, and redirection of output to the windows.

The paper includes a nice discussion of how program behavior is altered when timing delays are introduced. (Probe Effect) CBUG is actually powerful enough to determine how much overhead can be tolerated without introducing the probe effect. In another example, CBUG demonstrates exactly how correct answers can be obtained from incorrectly synchronized processes.

Reviewer:  Roger D. H. Warburton Review #: CR110020
Bookmark and Share
 
CBUG (D.2.5 ... )
 
 
C (D.3.2 ... )
 
 
Debugging Aids (D.2.5 ... )
 
 
User Interfaces (D.2.2 ... )
 
 
Concurrent Programming (D.1.3 )
 
Would you recommend this review?
yes
no

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy