The design and implementation of a language-independent, interactive system to facilitate the analysis and symbolic debugging of computer programs written in high-level languages is presented. The principal features of the system, called RAIDE, are:
(1) Host source language independence is supported by the abstraction of language entities and constructs (for example, variables, constants, procedures, statements, and events) with a language interfacer providing language-dependent details;
(2) Translators can cooperate with RAIDE at varying levels of detail;
(3) The user interacts with RAIDE and an executing object program using an extendable debugging language, called Dispel; (4) Primitive debugging actions are kept to a minimum and nonprimitive actions (for example, tracing, snapshots, and postmortem dumping) are provided by user-supplied and library procedures written in Dispel; and
(5) The implementation is aided by simulation of a virtual debugging machine, called SPAM.
To demonstrate RAIDE's feasibility, a prototype implementation was undertaken, including a SPAM simulator and the modification of two language translators (namely, Asple and BCPL) to interface with RAIDE. Besides describing the external and internal designs of the debugging system, the abstract machine, and the debugging language, the thesis also discusses the advantages and shortcomings of each of these components. Numerous examples of debugging commands written in Dispel are given. Two significant side-effects of the research are reported; reflections on the software tools supporting the implementation, and suggestions for translator design to facilitate run-time debugging.
The thesis contains a substantial annotated bibliography and an extensive index. / Science, Faculty of / Computer Science, Department of / Unknown
|Johnson, Mark Scott
|University of British Columbia
Page generated in 0.0019 seconds