Maygen: A Symbolic Debugger Generation System
Abstract:
With the development of high-level languages for new computer architectures comes the need for appropriate debugging tools as well. One method for meeting this need would be to develop, from scratch, a symbolic debugger with the introduction of each new language implementation for any given architecture. This, however, seems to require unnecessary duplication of effort among developers. Compilation technology has alleviated some duplication of effort in the development of compilers. Can similar ideas aid in the efficient development of symbolic debuggers as well Maygen explores the possibility of making debugger development efficient by influencing the language and architecture development processes. Maygen is a debugger generation system, built upon the idea that symbolic debuggers can be divided into three components a set of source language interface routines, a set of machine architecture interface routines, and a language-independent and architecture- independent debugger skeleton. Maygen then exploits this modularity First, Maygen precisely defines as well as houses the language-independent and architecture-independent debugger skeleton. Second, Maygen defines the protocol for interface interaction among source language developers, machine architecture developers, and the general-purpose debugger skeleton. Finally, Maygen provides a framework in which the resident debugger skeleton is automatically developed into a stand-alone symbolic debugger the resulting debugger is tailored to the specific provisions of a particular language group and a particular architecture group.