Program monitoring and analysis: Software structures and architectural support

The ability to monitor the progress of a program in execution is useful in program testing and debugging, and for performance analysis and profiling. Systems to support this activity should ideally be high‐level‐language based, but progress in implementing them has been limited by the lack of suitable hardware support. In this paper we derive software structures to support a generalized system of execution monitoring, and define a set of architectural primitives sufficient to support these structures. Simple and efficient means of implementing these primitives within the machine architecture are described.