A debugging environment is presented, based on the event-action model for interaction between the debugging system and the program being debugged (target program). Events are defined at two different levels of abstraction. At the lower level, we have the simple events. These events are expressed in terms of the values of the program-defined entities, and the values of a set of variables, called instruction address (_ia) variables. An _ia variable is associated by the debugging system to each program block. The _ia variable for a given block is accessed when a statement of that block is executed, and its value is replaced by the label of that statement. At the higher level, we have the compound events, expressed in terms of simple events and a set of operators, the instantaneous/deferring (_id) operators. At any given time, an instantaneous operator will produce a result which depends on the value(s) of its factor(s) at that time, whereas a deferring operator produces a result which depends not only on the value(s) assumed at that time, but also on the values assumed from another given time, called the origin of the operator. On the occurrence of a given event, the actions connected to that event will be performed. Possible actions can be moving the origins of the deferring operators, and generating traps. A trace trap displays a portion of the program state. A break trap returns control to the programmer at the console. Instruction address variables and instantaneous/deferring operators are powerful mechanisms for monitoring the activity of the target program. They make it possible to construct event abstractions in terms of the path followed by the flow of control (flow history) and the sequence of the program states (state history). Rather than offering a fixed set of special-purpose tools, tailored to a specific program debugging approach, the resulting environment adequately supports different debugging techniques, and offers the user a considerable degree of control over the debugging experiment.
Expressing event abstractions in a debugging environment
1987
Abstract
A debugging environment is presented, based on the event-action model for interaction between the debugging system and the program being debugged (target program). Events are defined at two different levels of abstraction. At the lower level, we have the simple events. These events are expressed in terms of the values of the program-defined entities, and the values of a set of variables, called instruction address (_ia) variables. An _ia variable is associated by the debugging system to each program block. The _ia variable for a given block is accessed when a statement of that block is executed, and its value is replaced by the label of that statement. At the higher level, we have the compound events, expressed in terms of simple events and a set of operators, the instantaneous/deferring (_id) operators. At any given time, an instantaneous operator will produce a result which depends on the value(s) of its factor(s) at that time, whereas a deferring operator produces a result which depends not only on the value(s) assumed at that time, but also on the values assumed from another given time, called the origin of the operator. On the occurrence of a given event, the actions connected to that event will be performed. Possible actions can be moving the origins of the deferring operators, and generating traps. A trace trap displays a portion of the program state. A break trap returns control to the programmer at the console. Instruction address variables and instantaneous/deferring operators are powerful mechanisms for monitoring the activity of the target program. They make it possible to construct event abstractions in terms of the path followed by the flow of control (flow history) and the sequence of the program states (state history). Rather than offering a fixed set of special-purpose tools, tailored to a specific program debugging approach, the resulting environment adequately supports different debugging techniques, and offers the user a considerable degree of control over the debugging experiment.File | Dimensione | Formato | |
---|---|---|---|
prod_419550-doc_148318.pdf
accesso aperto
Descrizione: Expressing event abstractions in a debugging environment
Dimensione
4.87 MB
Formato
Adobe PDF
|
4.87 MB | Adobe PDF | Visualizza/Apri |
I documenti in IRIS sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.