HP-UX Programming Tools Release Notes

6 Chapter1
New and Changed Features
HP Distributed Debugging Environment (HP DDE) 4.23
Summary of Changes in HP DDE 4.10
HP DDE 4.10 contained the following new features:
Kernel thread support
Hardware watchpoints
Changes to the Menu Bar
These features are summarized below. For details, see the debugger
online help.
Kernel Thread Support
HP DDE now supports the debugging of threaded applications that are
implemented using kernel threads, as well as applications implemented
using HP DCE threads.
The kernel threads implementation uses the 1x1 threads model.
In a kernel threads application, multiple threads can execute
concurrently on a multi-processor machine. Similarly, multiple threads
can be stopped at a given time. Therefore, a kernel threads application is
a truly parallel application. Execution is nondeterministic; multiple runs
of the program using the same input and initial state can result in
different execution order and different output.
In an HP DCE threads implementation, only one thread can execute at
any given time, regardless of the number of available processors.
Therefore, an HP DCE threads application is not truly parallel.
The debugger assumes that a multi-threaded target program is a kernel
threads application unless you specify otherwise. To debug an HP DCE
threads application, use the -dce_thread option with either the dde(1)
command or the debug command. If you debug an HP DCE threads
application without specifying thisoption, debugging commands may not
work as expected.
When you debug a program that uses kernel threads, several threads
may be running at the same time. When the debugger stops program
execution because of a debugger event that affects one thread, the
debugger uses a stop-the-world model: all the threads stop running.
Multi-threaded applications may execute quite differently when they are
invoked by the debugger because the debugger takes control of the
thread scheduler. Some debugger commands, like step and thread
-select, override the thread scheduler.