A graphical debugger for concurrent ada programs

Melinda Lee Moran · 1985

Programming is a decidedly human activity, and programs, as human creations, will always be subject to the fallibilities of the human condition. A significant proportion of the cost of producing a first working version of a program is spent in the isolation and resolution of these embedded fallibilities or bugs. Progress in the development of high level languages has been rapid; progress in the development of high level debugging tools to support them has not kept pace. The recent debut of languages such as Concurrent Euclid, Modula 2, and Ada which facilitate the use of concurrency have added a new facet of complexity to the art of debugging, the facet of time. Among the languages affording concurrency, Ada is the first to implement it commercially using the concept of the rendezvous, a concept first proposed by C. Hoare in 1978. Time and usage have yet to test the adequacy of this construct. One of the tools, noticeably absent from the defined support environment for Ada, however, which may negatively influence the outcome of this testing, is a debugging tool tailored to isolating and resolving the errors inherent to multi-task programs. One of the mediums currently being explored which shows great promise for use in debugging tools is that of high resolution graphics. To date, however, a debugging tool supporting a specific abstraction of the rendezvous construct has not been developed. Indeed little, if any, empirical evidence exists to verify the superiority of debugging tools over textual debugging tools. Questions such as the appropriate form of abstraction, the distribution of responsibility for screen layout, the appropriate level of detail in the model, etc. remain unanswered. The nature of this research was the design and evaluation of a debugging tool for concurrent Ada programs which employs a abstraction of the task and the rendezvous construct. This graphical was experimentally evaluated against a debugger producing textual output. Sixteen subjects participated in debugging four concurrent Ada programs, two utilizing the debugger and two utilizing the textual debugger. The programs were run on a DEC GIGI terminal tied to a VAX 11/780 under Telesoft's partial Ada compiler. Results of the evaluation indicate that the debugger format effects no statistically significant difference in the mean debugging time required by subjects for programs where (1) the number of tasks in the program is small (four to five) and the relationships between them is simple, (2) the bug in the program is relatively simple, and (3) the bug in the program occurs early in the sequence of events occurring within the program. The evaluation also shows, however, that in terms of subject preference there is a 3:1 difference in favor of the debugger.

Read the paper · More papers on PaperTik