| OCR Text |
Show stream contains events with the detailed information about the executor's behavior. Each event contains the description of one machine instruction: the instruction counter, the program counter, the executed instruction, the address of the result, the value of the result, and the previous value at the address of the result. The information in the execution stream incorporates various aspects of the executor's behavior, including: the control flow, the data flow, the trace, and the inverse trace. Another computer process, a director, can monitor the execution stream. Since there is a large amount of data in the execution stream, the stream is in general not stored. The director must perform the analysis dynamically. To support a dynamic analysis of the execution stream, the interpreter provides an event filter. This filter is set up by the director and removes events not interesting to the director from the execution stream. The filter relieves the director of the burden to analyze all events. The part of the execution stream containing inverse trace may be saved in history stream for the purpose of reverse execution or later analysis. The director has the ability to stop the interpreter and to examine and to modify any part of executor's state. The director and the executor can run on the same processor or on different processors. The communication between them can be a message passing or a shared memory architecture. The specific choice depends on the application. Although this chapter provides an answer to the question: what is introspection, two main questions related to introspection remain: is it useful and how it can be implemented? These two questions are central to the rest of the thesis. 33 |