|
|
 |
|
 |
 |
HP-UX 11i v1, HP-UX 11i v2, HP-UX 11i v3
Copyright © 2009 Hewlett-Packard Development Company, L.P
Legal Notices
Confidential computer software. Valid license from HP required for possession, use or copying. Consistent with FAR 12.211
and 12.212, Commercial Computer Software, Computer Software Documentation, and Technical Data for Commercial Items are licensed
to the U.S. Government under vendor's standard commercial license.
The information contained in this document is subject to change without notice. The only warranties for HP products and services
are set forth in the express warranty statements accompanying such products and services. Nothing herein should be construed
as constituting an additional warranty. HP shall not be liable for technical or editorial errors or omissions contained herein.
UNIX is a registered trademark of The Open Group.
Intel and Itanium are trademarks or registered trademarks of Intel Corporation or its
subsidiaries in the United States and
other countries.
HP Wildebeest Debugger (WDB) 6.0 is an HP-supported implementation of the open source debugger GDB. It supports source-level
debugging of programs written in HP C, HP aC++, and Fortran 90 on Itanium®-based systems running HP-UX 11i v2 or HP-UX 11i
v3, and HP 9000 systems running HP-UX 11i v1, HP-UX 11i v2, or HP-UX 11i v3.
This document discusses the most recent product information for HP WDB 6.0.
For the latest version of HP WDB, see the HP WDB Technical Resources website at:
http://www.hp.com/go/wdb
2 What Is New in This Version
This section describes the following new features in this version of HP WDB:
2.1 Support for Core File Debugging of MITR Applications
With HP WDB 6.0, corefile debugging support for MIxed mode TRanslator (MITR) applications has been provided. MITR applications
are Itanium applications that load and execute 32-bit HP PA-RISC libraries. The PA-RISC libraries are executed using an emulator
library, /usr/lib/hpux32/libaries32.so, which is loaded by the dynamic loader when routines in the PA-RISC library are called.
A new command set debug-aries is introduced in HP WDB 6.0 to support core file debugging in mixed mode applications. The set debug-aries command is used to determine whether the frames of the emulator library (libaries32.so) or the emulated PA-RISC library must be displayed while executing stack-related commands, such as backtrace and frame.
Following is the syntax for the set debug-aries command:
If the setting is toggled between on and off, the corefile must be reloaded. The set debug-aries command is valid only for corefile debugging and setting this command to off is not supported for live debugging.
For more information on MITR, see the HP MITR webpage at:
http://www.hp.com/go/mitr
2.2 New Command for Searching a Pattern in the Memory Address Space
HP WDB 6.0 provides the new find command to search for a pattern in the given memory address range. The find command searches for a pattern in the given address range for both live and corefile debugging.
Following is the syntax for the find command:
find [/size-char] [/max-count] start-address, end-address, expr1 [, expr2 ...]
find [/size-char] [/max-count] start-address, +length, expr1 [, expr2 ...]
2.3 New Command to Unwind Beyond 10000 Frames
Starting with HP WDB 6.0, the number of frames to be unwound by default is now set to 10000 so that WDB does not run out-of-memory.
To enable unwinding beyond 10000 frames, HP WDB 6.0 now supports a new option, set unwind-all-frames at the gdb prompt.
Following is the syntax for the unwind-all-frames command:
set unwind-all-frames [on|off] where:
| on |
Enables WDB to unwind beyond 10000 frames.
|
| off |
Disables the limitation on the number of frames.
|
2.4 Updated Procedure to Process the Initialization File
During startup, WDB executes commands in the initialization (init) file. These files are called .gdbinit in UNIX. WDB follows a particular sequence in accessing the init file in different directories. Starting with HP WDB 6.0,
after accessing the init file in the home directory and current working directory, HP WDB 6.0 accesses the init file in the
/tmp directory if the GDB_PROCESS_TMP_GDBINIT environment variable is set.
Following is the updated procedure that HP WDB 6.0 follows to process the init files:
-
Read the init file (if any) in the home directory.
-
Process command-line options and operands.
-
Read the init file (if any) in the current working directory,
-
Read the init file (if any) in the /tmp directory if the GDB_PROCESS_TMP_GDBINIT environment variable is set.
-
Read command files specified by the -x option.
2.5 Enhancement to the info shared Command
The info shared command is enhanced to display the global pointer (gp) values along with text start, text end, data start, and data end of the shared library.
2.6 Enhancement to the info target Command
The info target command is enhanced to display the memory segments for the corefile. The output also displays other details, such as system
name, node name, operating system release name, license level, and machine model, for the core file. The enhancement is available
for HP-UX 11i v2 and later versions of Itanium systems.
|
Note: |
|
Limitations for the enhanced info target command on corefile are as follows:
-
The enhanced info target command is not supported when the expanded_node_host_names kernel parameter is set. It is supported only for the default utsname.
-
The heap segment listed in the memory segment does not contain mmapped memory for the given core file.
|
2.7 Support for Automatic Debugging of Shared Libraries
HP WDB 6.0 enables automatic debugging of shared libraries while attaching WDB to a running program on HP-UX 11i v3 Integrity
systems. For enabling automatic debugging of shared libraries, the PHKL_38651 and PHKL_38778 kernel patches must be installed
on the HP-UX 11i v3 Integrity systems.
To enable debugging of shared libraries on HP-UX 11i v2 Itanium and HP 9000 systems, use the following command:
chatr +dbg enable <executable_name>
2.8 Attaching a PA-RISC Debugger to a PA-RISC Process
HP WDB 6.0 can be attached to an already running HP 9000 application process on HP-UX 11i for HP Integrity servers to debug
the application. After a successful attach, all the WDB commands work in exactly the same manner as they do on an HP 9000
HP-UX server. Starting with HP WDB 6.0, for attaching WDB to a PA-RISC process, WDB can be invoked through any attach mode
supported by WDB using the -pid <pa_pid> option or by issuing the attach <pa_pid> command at the gdb prompt. <pa_pid> denotes the process ID of the PA-RISC application.
2.9 Improvement in Performance of Memory Debugging for the string option
HP WDB 6.0 improves performance of memory debugging when the string option is set in the set heap-check command for 32-bit applications on HP-UX 11i v2 and later on Itanium systems.
3 Patches and Defect Fixes in HP WDB 6.0
The following defects are fixed in HP WDB 6.0:
-
GDB shows ptype of the Fortran character-valued function as void.
-
WDB prints incorrect value while performing command-line calls through pointer or reference pointer of the member functions
of the class.
-
The unpackcore command cannot handle the absolute path of the core file and fails with an error message that is not formatted properly.
-
GDB does not allow info leaks when another thread locks the mutex.
-
NaT bits are not displayed with info reg or $r15 from the signal frame in a core file.
-
GDB has issues while debugging MT applications linked with the liblwp library.
-
WDB misuses the DW_CHILDREN field of a DIE with type DW_TAG_structure_type.
-
The ptype -v command produces length of 0 or negative value.
-
In batch mode thread checking, the output directory cannot be specified in the rtcconfig file.
-
Certain command-line call issues exist for explicitly instantiated methods of template classes.
-
A mismatch occurs between the line number displayed for the breakpoint confirmation and the breakpoint arrival. This problem occurs only in case of FORTRAN programs, when the breakpoint is set on an internal procedure. For example, break internal_procedure. This problem is specific to
Integrity systems.
-
A bad demangling in the stack trace occurs if the template is of type cast().
-
Heap profile lists biggest allocation last.
-
IA-64 debugger does not indicate dld.so mismatches between the core file and the system.
-
Issue with printing constant arrays during core file debugging.
-
GDB crashes while printing a C++ expression.
-
Problems in setting hardware watchpoints on local variables.
4 Notes, Cautions, and Warnings
Following are some notes, cautions, and warnings related to HP WDB 6.0:
-
If the hardware watchpoint is used on an address of a local variable, the hardware watchpoint may trigger even if the variable
goes out of scope due to the same memory location being reused by other stack frames. Similarly, a hardware watchpoint on
a heap location may also trigger with other variables if the memory location gets deallocated and reallocated to other variables.
-
The Run Time Checking feature (Interactive and Batch Mode) of WDB cannot be used with applications that redefine or override
the default system-supplied versions of the standard library routines (under libc.[sl|so] and libdld.[sl|so]).
Table 1 lists the dependent library routines for Run Time Checking using HP WDB.
Table 1 Dependent Library Routines for Run Time Checking using WDB
|
abort
|
atoi
|
chdir
|
clock_gettime
|
|
creat
|
ctime
|
uwx_register_callbacks
|
strstr
|
|
dlhook
|
U_STACK_TRACE
|
uwx_get_reg
|
write
|
|
execl
|
exit
|
fclose
|
fopen
|
|
fprintf
|
fscanf
|
getcwd
|
getenv
|
|
getpid
|
lseek
|
memchr
|
open
|
|
printf
|
rand
|
pthread_self
|
putenv
|
|
shl_findsym
|
shl_get_r
|
shl_load
|
shl_unload
|
|
sprintf
|
srand
|
sscanf
|
strcasecmp
|
|
strdup
|
strlen
|
strchr
|
strtok_r
|
|
time
|
unlink
|
uwx_self_copyin
|
strchr
|
|
uwx_step
|
uwx_init
|
perror
|
shmctl
|
|
write
|
strcmp
|
shl_get
|
close
|
|
dlgetname
|
environ
|
fork
|
getpagesize
|
|
uwx_self_init_context
|
pthread_getschedparam
|
uwx_self_init_info
|
uwx_register_alloc_cb
|
|
strstr
|
uwx_register_callbacks
|
uwx_self_lookupip
|
|
The Run Time Checking (dynamic memory, libraries, and pthreads checking) in WDB is dependent on the semantics and the standard
behavior of these library routines. Run Time Checking in WDB results in unexpected and unpredictable behavior when used with
applications that substitute or redefine these library routines.
Before enabling the Run Time Checking feature in WDB, use the nm command to determine if your application or the dependent libraries in your application redefine or substitute these library
routines.
-
Batch Mode RTC displays one of the following errors and causes the program to temporarily hang if the version of WDB and
librtc.[sl|so] do not match, or if WDB is not available on the system:
/opt/langtools/bin/gdb: unrecognized option `-brtc'
Use `/opt/langtools/bin/gdb --help' for a complete list of options. Or execl failed. Cannot print RTC info: No such file or directory This error does not occur under normal usage where WDB or librtc.[sl|so] is used from the default location at /opt/langtools/...
However, this error occurs if GDB_SERVER and/or LIBRTC_SERVER are set to a mismatched version of WDB or librtc.[sl|so] respectively.
-
If the application does not link in the libpthread library (lipbpthread.so|libpthread.s1) or the libpthread tracer library (libpthread_tr_so.l|libpthread_tr.l ), the following error message appears:
Tracing version of libpthread is not loaded: set thread_check before starting the program, link your program with libpthread_tr or set LD_LIBRARY_PATH to contain /opt/langtools/wdb/lib/hpux32 HP-WDB Debugger does not display backtrace under Backtrace at the point of event occurrence for thread conditions detected at thread-exit, if there is an implicit call to pthread_exit().
5 Known Problems and Workarounds
This section describes known problems and the suggested workarounds in this release of HP WDB.
-
The find command does not search the entire memory.
The HP WDB 6.0 find command does not search the pattern in the entire memory address range starting from 0x0 to 0xff..ff. It displays the following warning message:
(gdb) find 010,0xffffffffffffff,"hello"
warning: Unable to access target memory at 0x8, halting search.
Pattern not found.
-
Performance Degradation in Memory Debugging
For 64-bit applications on HP-UX 11i v2 and later on Itanium systems, heap check performance degrades when the string option is set in the set heap-check command:
-
Incorrect usage of . and -> while printing the values for C++ applications
WDB allows users to interchangeably use "." and "->" while printing values for C++ applications. WDB incorrectly allows users to use "." with a pointer variable and "->" with a reference variable while printing the value for C++ applications.
-
Mismatch Between dld.so Libraries Causes Issues
A mismatch in the dld.so libraries available in the core file and in the system might cause issues in unwinding beyond some frames within the libc.so library. The workaround is to use the packcore command to obtain the core file and the involved load modules into the system on which the debugging occurs.
-
WDB does not print downcast classes
WDB does not correctly print the downcast classes, when the set print object command is set.
-
Debugging an attached process that is not compiled for debugging may generate warnings
On attaching the debugger to a program that is not compiled for debugging, the process may stop in a system call and the following
warning message about the various registers is displayed:
No data warning: reading 'r3' register: No data warning: reading 'r4' register: No data
warning: reading 'r5' register: No data warning: reading 'r6' register: No data warning
This warning occurs when executing the step command, the backtrace command, or when attempting to view the register information. To avoid this warning message, use the finish command to execute the process until the system call returns. This warning message is generated when the process stops at
a system call, and the registers cannot be read by the debugger. When the debugger calls the routine ttrace, it returns this warning.
-
Error attaching WDB to a process that is traced by tools using ttrace
HP WDB cannot attach to a process that is traced by tools that use ttrace, such as Caliper, adb, and tusc.
The debugger displays the following error message while attempting to attach to such a process: Attaching to process <pid> failed.
Hint: Check if this process is already being traced by another gdb or other ttrace tools like caliper and tusc.
Hint: Check whether program is on an NFS-mounted file-system. If so,you will need to mount the file system with the "nointr" option with mount(1) or make a local copy of the program to resolve this problem.
This section describes known issues in this release of HP WDB.
6.1 Batch Mode Thread Debugging
-
During the execution of advanced thread checking for applications that fork, in the interactive mode, the following message
appears if the GDB follows the child:
Pthread analysis file missing! This error message appears because the thread-error information for the forked process is not available. However, if the
forked process exec() s another binary, the thread-error information is available for the exec-ed binary.
-
In both interactive and batch modes, if the applications exceed their thread stack utilization, the following error message
appears:
Error accessing memory address! This occurs when GDB attempts a command line call on an already overflowing thread stack.
This section describes known limitations in this release of HP WDB.
-
WDB is unable to hit breakpoints placed on constructors in case of multiple inheritance.
-
WDB has issues in printing class member functions.
-
WDB is unable to print the values of data members from within a class.
-
WDB is unable to print the entire derived class when it is accessed through an object of the base class cast to the derived
class.
-
WDB is unable to make command-line calls to string methods when there are no calls to these methods from the application.
7.2 Batch Mode Thread Debugging
-
The feature does not obtain the thread-error information in batch mode for forked process in a multiprocessing application.
However, if the librtc.sl library is pre-loaded, the debugger obtains the thread-error information in the batch mode for exec-ed application.
-
HP WDB cannot execute both batch mode thread check and batch mode heap check together. If the rtcconfig file has both entries, then batch heap check overrides the batch thread check.
7.3 Debugger Support for Optimized Code
On HP 9000 systems for 32-bit and 64-bit applications, printing of local variable values may be inaccurate for +O1 and higher
optimizations.
|
Note: |
|
HP WDB 6.0 and later versions contains limited debugging support for optimized code of 32-bit applications on HP 9000 and
even more limited support for debugging optimized code (DOC) for 64-bit applications on HP 9000 systems. Additionally, the
debugging support becomes limited as higher levels of compiler optimization are used.
|
8 Installation Requirements and Compatibility Information
This section discusses the installation information for HP WDB.
Table 2 lists the swinstall products for HP WDB.
Table 2 HP WDB Installation
| Product Name |
Description |
| HP WDB |
HP WDB -The HP implementation of the open source debugger GDB |
| HP WDB GUI |
Optional graphical user interface component for HP WDB |
If you install HP WDB GUI on a system where HP WDB has not yet been installed, HP WDB is installed automatically.
HP WDB is not supported on releases of the HP-UX operating system prior to 11i v1.
8.2 Supported Configurations
The following configurations are supported by HP WDB:
-
Installing and running locally on an HP-UX 11i v1, HP-UX 11i v2, or HP-UX 11i v3 operating system.
-
Installing on an HP-UX 11i v1, HP-UX 11i v2, or HP-UX 11i v3 system, with the display redirected to a remote HP-UX 11.x node.
The HP WDB product contains the following components:
-
WDB: Runtime contains one fileset
-
WDB-DOC: Documentation contains one fileset
-
WDB-MAN: Manuals contains one fileset
|
Note: |
|
DEBUG-PRG and SENTINEL are co-requisite filesets for HP WDB and are automatically selected during installation.
|
The WDB GUI product contains the following sub-products:
-
WDB-GUI-RUN: Runtime contains one fileset
-
WDB-GUI-HELP: Help contains one fileset
-
WDB-GUI-MAN: Manuals contain one fileset
HP WDB GUI requires the HP WDB product. If HP WDB is not already installed, it is automatically selected during installation.
8.4 Disk Space Requirements
For information on the disk space requirements to install HP WDB 6.0, see the Downloads website at:
http://www.hp.com/go/wdb/
8.5 Installation Instructions
To install HP WDB, run the SD-UX swinstall command. It invokes a user interface that leads you through the installation. It also gives you information about disk space
requirements, version numbers, product descriptions, and dependencies.
For specific installation instructions, see the HP WDB Technical Resources website at:
http://www.hp.com/go/wdb/
For more information on installation procedures and related issues, see the Managing HP-UX Software with SD-UX and other README, installation, and upgrade documentation provided with the HP-UX 11.x operating system package.
|
Note: |
|
If you install a compiler product that includes a version of HP WDB earlier than this version, swinstall generates the following message:
ERROR: A later revision (one with a higher revision number) of fileset
"WDB-GUI.WDB-GUI-HELP,r=B.11.31" has already been installed. Either
remove this fileset or change the "allow_downdate” To retain the later version of HP WDB, ignore this message. The new products are installed, and the latest version of HP WDB
continues to be available.
|
9 Features Supported in Previous Versions of HP WDB
For information on previous HP WDB releases, see the HP WDB Technical Resources website at:
http://www.hp.com/go/wdb
HP WDB documentation is available at the following location:
/opt/langtools/wdb/doc
Table 3 lists the documents available for HP WDB.
Table 3 HP WDB Documentation
| Document |
Format |
Location |
|
Debugging with GDB
|
PDF
|
/opt/langtools/wdb/doc/gdb.pdf
Emacs:
/opt/langtools/wdb/doc/gdb.info
(Copy the files to your info directory first.)
|
|
GDB Quick Reference Card
|
PDF
|
/opt/langtools/wdb/doc
|
|
Getting Started with HP WDB
|
HTML
|
/opt/langtools/wdb/doc/html/wdb/C/GDBtutorial.html
|
|
XDB to WDB Transition Guide
|
HTML
|
/opt/langtools/wdb/doc/index.html
|
|
Using the HP WDB Terminal User Interface
|
HTML
|
/opt/langtools/wdb/doc/index.html
|
| GDB manpage |
gdb(1) |
|
11 Software Availability in Native Languages
HP WDB 6.0 is available in the English language only.
The following mailing lists are available for announcements and discussions on WDB:
-
For discussion/questions:
hpux-development-public@lists.hp.com
To subscribe, send “sub hpux-development-public” as the subject line to sympa@lists.hp.com
-
For announcements:
hpux-development-public-announce@lists.hp.com
To subscribe, send “sub hpux-development-public-announce” as the subject line to sympa@lists.hp.com
|
|
|
|
 |
|
|