A set of mechanisms is presented for expressing conditionals at different levels of abstraction in the event-action model of interactions between the debugging system and the program being debugged. In this approach simple conditionals are defined at the lowest level of abstraction in terms of the elementary behavior of the target program. They can be expressed in terms of both the values of the program-defined entities (target entities) and the values of a set of variables, the instruction address (_ia) variables. The debugging system associates an _ia variable with each block of the target program. The _ia variable for a given block is accessed on the execution of a statement in that block, and its value is replaced with the label of that statement. Simple conditionals can be grouped to express other conditionals at higher levels of abstraction (compound conditionals) by means of a set of operators, the instantaneous/deferring (_id) operators. The _id operators allow the programmer to keep track of the evolution of the values assumed by the simple conditionals. They make it possible to monitor the activity of the target program in terms of both the path followed by the flow of control (flow history) and the sequence of the program states (state history).
Abstraction mechanisms for event control in program debugging
LAZZERINI, BEATRICE;LOPRIORE, LANFRANCO
1989-01-01
Abstract
A set of mechanisms is presented for expressing conditionals at different levels of abstraction in the event-action model of interactions between the debugging system and the program being debugged. In this approach simple conditionals are defined at the lowest level of abstraction in terms of the elementary behavior of the target program. They can be expressed in terms of both the values of the program-defined entities (target entities) and the values of a set of variables, the instruction address (_ia) variables. The debugging system associates an _ia variable with each block of the target program. The _ia variable for a given block is accessed on the execution of a statement in that block, and its value is replaced with the label of that statement. Simple conditionals can be grouped to express other conditionals at higher levels of abstraction (compound conditionals) by means of a set of operators, the instantaneous/deferring (_id) operators. The _id operators allow the programmer to keep track of the evolution of the values assumed by the simple conditionals. They make it possible to monitor the activity of the target program in terms of both the path followed by the flow of control (flow history) and the sequence of the program states (state history).I documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.