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

Accelerator Manual527303-003
7-1
7 Debugging Accelerated
Programs
You can use either Debug, the machine-level debugger, or Inspect, the symbolic
debugger, to debug accelerated programs. Source-level (symbolic) debugging of
accelerated programs is very similar to TNS programs. However, machine-level
debugging of accelerated programs is limited, and rarely necessary.
When debugging accelerated programs, you need not concern yourself with the RISC
instructions into which the Accelerator has converted your program, nor with the
algorithms by which the Accelerator has optimized your program.
This section describes:
Differences Between Debugging TNS and Accelerated Programs on page 7-1
Accelerator Debugging Options on page 7-2
A Strategy for Debugging on page 7-3
For a complete discussion of debugging TNS programs and accelerated programs on
TNS/R systems, refer to the Inspect Manual and the Debug Manual.
Differences Between Debugging TNS and
Accelerated Programs
RISC technology uses hardware and software components to increase program
performance. Hardware features that result in increased program performance include
the pipelining of instructions, which allows multiple instructions to be executed in
parallel, and an increased number of general purpose registers. The Accelerator
optimizes program performance for the TNS/R systems by reordering instructions to
achieve optimal program performance.
Both the hardware features of TNS/R systems and the optimizations performed by the
Accelerator might result in some debugging and execution differences when compared
with execution on TNS systems. The primary debugging difference for accelerated
programs is that at some points, the program might not have the same state that it
would on a TNS system.
Synchronization points are points at which there is a direct correspondence between
the state of an accelerated program and the state it would have if executed on a TNS
system. When debugging an accelerated program, synchronization points do not exist
at all program locations. When a program is not at a synchronization point, memory
and TNS registers might not be current. To make debugging easier than with most
RISC-based systems, Inspect determines the consistency of the program state,
classifying synchronization points as either memory-exact or register-exact points.
These points give you information about your program, such as if memory and
registers are current.