Native Inspect Manual (H06.07+)

Introducing Native Inspect
Native Inspect Manual528122-006
1-17
Global Debugging
When debugging multiple programs, Native Inspect, like Inspect, sets the
designated current process to be the process for which the most recent debugging
event has been reported. The current process is the process to which all
commands apply and for which Native Inspect waits for events.
Use the vector command to explicitly change the designated current process.
In a rare situation, two instances of Native Inspect can be running on different
CPUs but be prompting the same home terminal. In this situation, you should:
1. Start another Native Inspect instance on one of the CPUs.
2. Attach the process being debugged in that CPU to the new Native Inspect
instance.
3. Detach that process from the original Native Inspect instance.
Use the info command with the sessions option to display information about the
processes Native Inspect is currently debugging.
You cannot use the automatic display list (expressions that are automatically
displayed by the display command when program execution is suspended) when
you are debugging multiple processes.
Global Debugging
A privileged user (the super ID user) can set one or more global breakpoints
(breakpoints set in code that is shared by multiple processes, such as DLLs). Any
process that encounters the global breakpoint enters control of Native Inspect. Such a
debug session is defined as global debugging.
Native Inspect Is the Global Debugger
On the TNS/E system, only Native Inspect can do global debugging, and only one
global debugging session can exist in a CPU at any one time. The Native Inspect
instance that sets a global breakpoint is implicitly registered as the global debugger in
that CPU when the first global breakpoint is set, and the Native Inspect instance is
deregistered when the last global breakpoint is removed.
Global debugging is privileged debugging and is a special case of multiprocess
debugging as well (see Debugging Multiple Processes on page 1-13). The super ID
user must use one instance of Native Inspect (that is, the registered global debugger)
to debug all processes in a CPU that encounter the global breakpoints.
Considerations for Global Debugging
Privileged mode must be enabled before you can set breakpoints in or examine
privileged code. You must logon with the super ID and explicitly enable privileged
mode debugging by entering the priv command.