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.