Accelerator Manual (G06.27+, H06.04+, J06.03+)

Debugging Accelerated Programs
Accelerator Manual527303-003
7-2
Register-Exact Points
When executing TNS instructions on a TNS/R system, the TNS/R system maintains
the TNS machine state (the register stack, S, P, E, and L registers) as if you were
running your program on a TNS system. Because the TNS machine state is
maintained, no change is required to run existing TNS programs on TNS/R systems
and, with very few exceptions, debugging is the same.
Register-Exact Points
Register-exact points are locations in an accelerated program at which the values in
both memory and the TNS register stack are the same as if the program were
executing on a TNS system. No optimizations cross register-exact points. Complex
statements might contain several such points: at each function call, privileged
instruction, and embedded assignment. Register-exact points are a subset of
memoryexact points.
By default, the Accelerator defines register-exact points only where necessary for
correct execution; for example, following procedure calls. Register-exact points are the
only points at which an accelerated program makes transitions to and from executing
TNS instructions.
At register-exact points, you can safely use all Inspect debugging commands (including
modifying memory variables) as if the program were on a TNS system.
Memory-Exact Points
Memory-exact points are locations in an accelerated program at which the values in
memory (but not necessarily in the register stack) are the same as if the program were
running on a TNS processor. Displaying memory variables gives accurate results at
memory-exact points. However, modifying memory variables at these points might not
reliably affect the program’s subsequent actions because the changed variable might
have already been loaded in registers. Most source statement boundaries are memory-
exact points. Register-exact points are a subset of memory-exact points.
Nonexact Points
Nonexact points are locations in an accelerated program that are not memory-exact
points. Most code locations in an accelerated program are nonexact points. At
nonexact points, the TNS program state is not consistent, displayed memory might not
be current, and the reported current program counter location is only approximate.
Attempting to modify memory at a nonexact point might result in the data being
overwritten by a subsequent store operation.
Accelerator Debugging Options
The Accelerator offers you two debugging options—ProcDebug and StmtDebug. The
Accelerator debugging option you use slightly affects source-level debugging and
significantly affects machine-level debugging. Most source-level debugging capabilities
are preserved. Source-level debugging restrictions include the possibility of deleted