Object Code Accelerator Manual
Object Code Accelerator Manual—528144-003
7-1
7 Debugging OCA Programs
You can use either Visual Inspect or Native Inspect to debug programs accelerated by
OCA. 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 do not need to be concerned about the
Itanium instructions into which OCA has converted your program, nor with the
algorithms by which OCA has optimized your program.
This section describes:
•
Differences Between Debugging TNS and Accelerated Programs on page 7-1
•
A Strategy for Debugging on page 7-2
For a complete discussion of debugging TNS programs and accelerated programs on
TNS/R systems, refer to the Visual Inspect online help, the Inspect Manual, and the
Debug Manual.
Differences Between Debugging TNS and
Accelerated Programs
TNS/E 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. OCA optimizes
program performance for TNS/E systems by reordering instructions to achieve optimal
program performance.
Both the hardware features of native systems and the optimizations performed by OCA
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, a program might not have the same state that it would
on a TNS system.
Exact 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, exact points do not exist at all program
locations. When a program is not at an exact point, memory and TNS registers might
not be current. To make debugging easier than with most TNS/E-based systems,
Visual Inspect and Native Inspect determine the consistency of the program state,
classifying exact 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.
When executing TNS instructions on a TNS/E system, the TNS/E system maintains the
TNS machine state (the register stack, S, P, ENV, and L registers) as if you were
running your program on a TNS system. Because the TNS machine state is