|
|
HP WDB 5.2 Release Notes: HP 9000 and HP Integrity Systems > Chapter 2 Known Problems and WorkaroundsKnown Problems on Itanium |
|
The set threadverbose functionality is not available in HP WDB 3.3. The steplast command has the following limitations:
HP WDB has the ability to detect any occurrence of a signal in your program. You can notify HP WDB in advance what to do for each kind of signal. Normally, HP WDB ignores non-erroneous signals like SIGALRM (to not interfere with their role in the functioning of your program but to stop your program immediately whenever an error signal happens). You can change these settings with the handle command. Use caution if you disable all signals from certain processes. Disabling SIGTRAP in your program may cause your program to hang on HP-UX 11.00 and 11.11, because breakpoint events are treated as SIGTRAP signals by the operating system. HP-UX 11.00 and 11.11 use SIGTRAP to communicate with the debugger. If you disable all signals from certain processes (to allow the signals to be delivered to the right process), your program may hang when you try to debug it. This behavior occurs because if you disable SIGTRAP, the debugger no longer receives notification of events such as breakpoint hits and loading or unloading of shared libraries. This behavior does not occur with breakpoints and SIGTRAP on HP-UX 11.20 and later versions of HP-UX. This is because of changes in the ttrace calls that the operating system uses to communicate with the debugger. To prevent this problem, do the following: Ensure to set the following flag:
In addition, ensure that the following warning message is not displayed by the debugger before your program execution halts:
If you attach to a program that has not been compiled for debugging, you may see the following warning messages about various registers when you step, request a back trace, or request register information from the debugger, and the process is stopped in a system call:
To avoid these warning messages, use the finish command to execute the process until the system call returns. The reason for this message is that when a process stops at a system call, all registers are not readable by the debugger. The debugger’s call to the system routine, ttrace, returns this message when it tries to access such non-readable registers. The debugger then prints this error message from ttrace. HP WDB cannot find debug information in dynamically loaded shared libraries if the main program has been stripped. The main program is most likely stripped if HP WDB displays the following message when you load the program. no debugging symbols found A workaround is to use this process is as follows:
To debug CMA programs on both HP-UX 11.0 and 11.11, build the program with /usr/lib/libcma.sl (there is no archive library in /usr/lib). HP WDB does not reliably step out of functions with both the step and next commands. A workaround is to use the finish command at the end of a function. The following Fortran features are not supported:
You must compile with the +d option to turn off inlining if you want to call, step into, or set breakpoints in C++ functions that have been inlined. For example, you might see the following message while debugging:
For the call to succeed, you must compile your code with the +d option to get the correct result. After the +d option is used, the compilation displays the following message:
If a virtual class is defined in a shared library that is not compiled for debugging (-g0), the debug information is not available in the executable. If you try to access the class, HP WDB displays the <no data fields> message. For example, RWCollectableDate is defined in librwtool.sl, which is not compiled with -g0. The following line creates an object named d3:
If you try to print the variable or class, HP WDB returns the following message:
The gdb64 component of HP WDB cannot step over call to vfork() because of an HP-UX limitation. The limitation is fixed in the HP-UX 11.0 Extension Pack, December 1998. If you restart a program using the run command, any catchpoints you have set on C++ exceptions in shared-linked executables are deleted, and a warning message is displayed. You can recreate the catchpoints using the catch command. HP recommends that you do not resize an hpterm or xterm terminal window while using the Terminal User Interface (TUI). If you do so, the following problems occur:
You need to install the linker patch, PHSS_19866 for HP-UX 11.00 (or a later linker patch), to generate object modules that enable faster linking and smaller executable file sizes for large applications. Refer to your Compiler Release Notes for more details. If the value of the shell environment variable TERM is not set, HP WDB attempts to use settings valid for an xterm display. If the value for TERM is invalid, the shell prints the following message:
You must set the value of TERM to a valid type and restart HP WDB. If you request a backtrace and one of the functions was called with a very large array as an argument, HP WDB attempts to get memory to hold the array and reports that it is out of virtual memory.The workaround is to use the following command: set print args off The edit windows that WDB-GUI opens do not have undo functionality. The update pop-up menu item in Leak View collapses all items, because the memory check of HP WDB does not guarantee consistent leak numbers from subsequent info leaks output. Fixing the target after deleting lines from current procedure can cause line numbers to be incorrect. When you try to compile gdb from the source available here, it fails to compile and generates the following error:
You can safely ignore this compile failure. This error occurs after gdb is built successfully. The error is caused by a reference to an HP-internal header file that is used to build a library that is not required to build gdb. The compile generates a working gdb binary regardless of this error message. |
|