Report Number: CSL-TR-83-249
Institution: Stanford University, Computer Systems Laboratory
Title: Runtime and description of deadness errors in ADA tasking
Author: Helmbold, D.
Author: Luckham, David C.
Date: November 1983
Abstract: A routine monitoring system for detecting and describing tasking errors in Ada programs is presented. Basic concepts for classifying tasking errors, called deadness errors, are defined. These concepts indicate which aspects of an Ada computation must be monitored in order to detect deadness errors resulting from attempts to rendezvous or terminate. They also provide a basis for the definition and proof of correct detection. Descriptions of deadness errors are given in terms of the basic concepts. The monitoring system has two parts: (1) a separately compiled runtime monitor that is added to any Ada source to be monitored, and (2) a preprocessor that transforms the Ada source so that necessary descriptive data is communicated to the monitor at runtime. Some basic preprocessing transformations and an abstract monitoring for a limited class of errors were previously presented. Here an Ada implementation of a monitor and a more extensive set of preprocessing transformations are described. This system provides an experimental automated tool for detecting deadness errors in Ada83 tasking and supplies useful diagnostics. The use of the runtime monitor for debugging and for programming evasive actions to avoid imminent errors is described and examples of experiments are given.