In This Book

Making libdce.sl Writable

If your application uses /usr/lib/libdce.sl (the shared library version of HP DCE threads), you must make the shared library writable before you debug the application.

The following command maps all shared libraries as writable:

property flags tgt_shlib_debug

You can place the command in your .dderc ￿le. You can also invoke it from the debugger command line before you issue the debug command.

When libdce.sl is read-only, you cannot step into routines or set breakpoints in them. Also, some thread-related debugger commands will not work. The a￿ected commands are:

intercept thread_create intercept thread_exit intercept thread_switch thread

If libdce.sl is read-only and you attempt to use one of the commands listed above, the debugger will display a not mapped writable message.

Stripped and Unstripped Versions of libdce.sl

If your application links in an unstripped version of /usr/lib/libdce.sl , all threads-related commands and options will work properly.

If, however, your program links in a stripp ed version of /usr/lib/libdce.sl , the threads-related commands and options will behave as if your program had only one thread.

Use the nm command to determine if your system has a stripped version of

8

libdce.sl . The output of

nm contains a no symbols message when

libdce.sl

 

is stripped. For example:

$nm /usr/lib/libdce.sl

nm: /usr/lib/libdce.sl: no symbols

If libdce.sl is stripped, link y our program with the arc hive library /usr/lib/libdce.a in order to debug it.

Debugging in Special Situations 8-7