Debugging with GDB Manual HP WDB v6.3 (5900-2180, August 2012)
To set the breakpoint you must kill the program and then rerun it so that the dynamic linker maps
a copy of the shared library privately. There are two ways to run the program:
• Rerun the program under GDB to have the debugger cause dld to map all shared libraries as
private, enabling breakpoint debugging.
• On PA-RISC systems, use the following command on an executable:
/opt/langtools/bin/pxdb -s on executable-name
The pxdb -s on command marks the executable so that dld maps shared libraries as private
when the program starts up.
You can verify the status of the shared library with this command:
/opt/langtools/bin/pxdb -s status executable-name
• On both PA-RISC and IA64 systems, use the following command on an executable: chatr
+dbg enable executable-name
This is similar to the pxdb command described above wherein it directs the dld to load the shared
libraries as private when the program starts up.
On HP-UX 11i v3 Integrity systems, HP WDB enables automatic debugging of shared libraries
without them being mapped private while attaching to a running program. For enabling automatic
debugging of shared libraries, you must install the kernel patches PHKL_38651 and PHKL_38778.
14.23.5 Selectively Mapping Shared Libraries As Private
The -mapshared option suppresses mapping all shared libraries in a process private. This option
enables new functions in the dynamic loader (patch PHSSS_33110 or later) to designate individual
shared libraries for debugging. By default, HP WDB instructs the shared library dynamic loader,
dld.sl(5), to map shared libraries in a process private, regardless of whether the chatr
command is run for a particular shlib with +dbg or not.
The -mapshared option is used to save virtual memory for debugging applications with large
amounts of code in shared libraries on machines with simultaneous debug sessions. The chatr
+dbg option, and the _HP_DLDOPTS environment variable are used to identify shared libraries
for debugging. The -mapshared option ensures that the text segments of all other shared libraries
is shared across the system. The shared libraries are not mapped private and cannot have
breakpoints set in them.
The set mapshared on command can be used to change modes from the (gdb) prompt.
(gdb) set mapshared on
The set mapshared off command can be used to load shared libraries after the current point
is mapped private.
(gdb) set mapshared off
The -mapshared option is implemented on both PA-RISC and Itanium platforms in HP WDB 5.2.
This option is provided in the HP WDB GUI and HP WDB. The default behavior does not change
if the -mapshared option for all shared libraries in processes started under the debugger, or
dynamically loaded after an attach, are mapped private.
14.23.6 Setting breakpoints in shared library
Breakpoints can be set on functions in a shared library, by specifying the library name with the
function name.
(gdb) b libutil.sl:fun Breakpoint 1 at 0x79a86228: file simple.c,
line 13 from /CLO/Components/WDB/build/hppa1.1-hp-hpux11.00/gdb/
simple_shared/lib.sl
168 HP-UX Configuration-Specific Information