A procedural interface for program directing
- 1 July 1995
- journal article
- Published by Wiley in Software: Practice and Experience
- Vol. 25 (7) , 767-787
- https://doi.org/10.1002/spe.4380250704
Abstract
Debugging and performance measurement tools are becoming more important in the development and maintenance of increasingly complex software. These tools belong to a class of programs, called directors. Directors are programs that monitor and control other programs. Through monitoring, directors analyze program execution at runtime. Monitoring provides tracing primitives as well as access to program's variables, dynamic data structures, and its internal state. Results of the monitoring analysis can be used by the director itself to change the future program behavior or presented to a human user for an interactive review and possible feedback actions. The future program behavior is changed through controlling primitives which provide an organized way to modify data values as well as the program code.This paper presents a library of directing commands which enable the construction of powerful directors. The interface has been implemented in a Unix environment as a runtime subsystem running in the directed program's address space. The paper provides the description of the interface and the basic programming techniques in building directors. Examples of novel applications, illustrating the use of the directing interface, are demonstrated by the directors for the visualization of program control and structured snapshots.Keywords
This publication has 15 references indexed in Scilit:
- Rewriting executable files to measure program behaviorSoftware: Practice and Experience, 1994
- A framework for dynamic program analyzersACM SIGPLAN Notices, 1993
- Experiences developing and using an object-oriented library for program manipulationACM SIGPLAN Notices, 1993
- An approach to genuine dynamic linkingSoftware: Practice and Experience, 1991
- Experience with topaz telebuggingPublished by Association for Computing Machinery (ACM) ,1988
- A distributed debugger for AmoebaPublished by Association for Computing Machinery (ACM) ,1988
- Profiling under UNIX by patchingSoftware: Practice and Experience, 1987
- Monitoring distributed systemsACM Transactions on Computer Systems, 1987
- Implementation of the blit debuggerSoftware: Practice and Experience, 1985
- GprofACM SIGPLAN Notices, 1982