A knowledge-based system for debugging concurrent software (ada, temporal logic)

Carol Helfgott Ledoux · 1985

The recent development of high-level concurrent programming languages has emphasized the problem of limited debugging tools to support the development of applications using these languages. A new approach is necessary to improve the efficacy of debugging tools and to adapt them to the framework of a concurrent software environment. A knowledge-based debugging approach is presented that aids diagnosis of a variety of run-time errors that can occur in concurrent programs written in the Ada('1) programming language. In this approach, an event stream of program activity is captured in an historical database and accessed using Prolog-based queries constrained by temporal-logic primitives. Diagnosis is aided by applying rule-based descriptions of some common classes of soft- ware errors and by matching program specifications against the trace database. This approach was used in building a prototype debugger, called Your Own Debugger for Ada (YODA). The design of YODA is described and analyses of several sample Ada programs are presented to illustrate diagnosis of errors associated with concur- rency, including deadness errors and misuse of shared data. ('1)Ada is a registered trademark of the U.S. Government--Ada Joint Program Office.

Read the paper · More papers on PaperTik