HP WDB 5.7 Release Notes

available. In such cases, the debugger reports that the value of the local variable is not available
because of optimization. The debugger displays the current code address, which is used in the
attempt to recover the value of the variable. If the variable is optimized completely out of existence,
the debugger reports the corresponding message.
Optimization of code results in the reordering of the instructions and the source line-numbers.
Hence, the value of the variable, which is printed by the debugger may not correspond to the
reported source code location. The debugger may print the value of the variable at a source code
location either before or after the reported source code location.
NOTE: The following limitations apply when debugging optimized code:
Support for high-level loop transformations such as modulo-scheduled loops, or
LNO-optimized loop nests is limited.
(This limited support includes all loop optimizations that are enabled at +O3 and above,
and some loop optimizations at +O2 or -O. )
Debug support for local aggregates and arrays is limited.
Complete debug support for inlined subroutines is not available.
Variable values that are unavailable at the current code location are reported unavailable,
even if these values can be computed from some other values that are available.
Step operations may include occasional "backwards" steps, because of the reordered code
during optimization.
Support to Prevent the Debugged Program from Stopping at Instructions that are Predicated False
This enhancement in HP WDB 5.7 provides support to prevent the debugged program from
stopping at instructions that are predicated false. The program execution can be stopped by a
software breakpoint, a hardware breakpoint, or an asynchronous signal. In the case of
optimizations such as if-conversion, the predicated false instructions indicate that an alternate
source path is executed. Hence, stopping the program at a predicated false instruction results in
the misleading conclusion that the path corresponding to the predicated false instruction is
executed.
To prevent this ambiguity, HP WDB 5.7 does not stop at predicated false instructions. The
predicated false instructions are equated to NOPs (No OPeration), because these instructions do
not modify the processor state.
NOTE: The program stops at asynchronous signal stops even if the reported instruction is
predicated false.
The exception to this rule is the use of certain instructions, such as wtop, wexit, and frcpa,
which modify the processor state even when predicated false. In such cases, the debugger stops
at the instructions irrespective of the predicate value of the instructions.
Assembly and low-level programmers, who require the old behavior of the debugger to stop at
the instructions irrespective of the predicate value of these instructions, can explicitly turn off
this feature.
To explicitly turn off this feature, enter the following command at the gdb prompt:
(gdb) set no-predication-handling 1
Debugging Macros
HP WDB 5.7 enables you to display and evaluate macro definitions for programs running on
Integrity systems. This feature is available only for compiler versions A.06.15 and later.
8 HP WDB 5.7 Release Notes