Inspect Manual
Using Inspect on a TNS/R System
Inspect Manual—429164-006
15-7
Debugging TNS/R Native Programs
Displayed TNS register values are often out of date.
You can rarely modify TNS registers to affect program behavior.
Debugging Accelerated Programs at the TNS/R Machine
Level
Although it is rarely necessary to debug accelerated programs at the TNS/R machine
level, Inspect provides a limited set of features which allow you to:
Display instructions, including the correspondence between TNS and TNS/R
instructions
Display TNS/R registers
Modify TNS/R registers
The SELECT DEBUGGER DEBUG command can be used to access other TNS/R
debugging functionalities.
Debugging TNS/R Native Programs
Debugging a TNS/R native program is similar to debugging the RISC portions of an
accelerated program, but there are a few differences.
In TNS/R native mode, local variables are sometimes cached in registers.
Attempting to modify a local variable or use it for setting a memory access
breakpoint, for example, can have unexpected results.
In highly optimized native object code, parameter values are sometimes cached in
registers, making their exact location unpredictable.
In TNS/R native mode, unlike accelerated mode, there are no TNS instructions
corresponding to the RISC instructions.
Performance and Debugging of TNS/R
Programs
The following subsections detail how RISC processors improve program performance
and how specific performance elements may affect your code.
Register Usage
The TNS/R machine has 32 general purpose registers that can be used to store values
and intermediate results of computations. It is much faster to access values stored in
registers than to fetch them from memory. Therefore, an optimization strategy is used
to generate code such that frequently used values are available in registers. Storing
frequently used values minimizes the number of memory loads and stores that are