Native Inspect Manual (H06.07+)

Introducing Native Inspect
Native Inspect Manual528122-006
1-16
Using One Instance of Native Inspect to Debug
Multiple Processes
The display on the new terminal session reveals that the attach has completed,
and process 3,32 is the current process for the new instance of Native Inspect:
(eInspect 3,-2): attach 32
Symbols read in for program loadfile
\PIPPIN.$D0117.TESTS.ODISP3.
Process (3,32) received DS_EVENT_ENTER_DEBUG
(eInspect 3,32):
Now you have two instances of Native Inspect—one attached to each of the two
programs being debugged in CPU 3.
Using One Instance of Native Inspect to Debug Multiple
Processes
You need to be mindful of which process is the current process (as indicated by the
CPU pin in the eInspect prompt). With Native Inspect, most debugging options (such
as the directory search path) are defined as attributes of the debugger instance, not as
values associated with the current process.
Suppose that you are debugging two interacting processes. If you are stepping
execution in process A, which causes a breakpoint in process B to be hit, process B
becomes the current process. Advancing execution in process B might then result in
completion of the step of process A, causing it once again to be the current process.
In this situation, you will see the process ID of process A (3,301) displayed in the
Native Inspect prompt, and then the process ID of process B in the next prompt from
Native Inspect (3,38). For example:
(eInspect 3,301): step
(eInspect 3,38):
Considerations for Multi-Process Debugging
Native Inspect can debug only those processes that are executing in the same
CPU in which the instance of Native Inspect is running.
For example, if a TNS/E native process running in CPU 3 calls Debug, and Native
Inspect is invoked as the debugger, the instance of Native Inspect must run in CPU
3.
Native Inspect checks only for events at times when events are expected for the
current process—such as after process execution commands (or the wait
command). Native Inspect cannot receive events while prompting for user input.
Debugging events that occur for other processes are not necessarily reported
when they occur, but are reported when Native Inspect checks for events for the
current process.
Pressing the Break key interrupts waiting for a debugging event and redisplays the
Native Inspect command prompt, but cannot be used to interrupt other commands.