Native Inspect Manual (H06.03+)
Table Of Contents
- What’s New in This Manual
- About This Manual
- 1 Introducing Native Inspect
- Native Inspect on TNS/E Systems
- Debuggers on NonStop TNS/E Systems
- Origins of Native Inspect
- Process Debugging With Native Inspect
- Debugging Multiple Processes
- Global Debugging
- Debugging TNS Processes
- Snapshot File Analysis
- Debugging DLLs
- Handling Events
- Switching Debuggers (To or From Inspect and Visual Inspect)
- Stopping Native Inspect
- Differences Between Native Inspect and WDB and GDB
- 2 Using Native Inspect
- Quick Start for Inspect Users
- Preparing to Debug Using Native Inspect
- Sample Native Inspect Session
- Start Your Program Under Native Inspect
- Load Symbols
- Determine Compilation-Time Source Name
- Set Source Name Mapping
- Add Current Directory to Source Search Path
- List Source
- Set a Breakpoint on main()
- Continue Execution
- Trace the Stack (Back Trace)
- List Source
- Step Execution (Over Any Function Calls)
- Print a Variable
- Step Execution (Over Any Function Calls)
- Step In to a Called Function
- Set a Memory Access Breakpoint (MAB)
- Trace the Stack (Back Trace)
- List Source
- Continue Listing Source
- Set a Breakpoint on Line 52
- Continue Execution
- Display a Structure
- Enable “pretty” Printing
- Modify a Structure Field
- Terminate Program and Session
- 3 Syntax of Native Inspect Commands
- Categories of Native Inspect Commands
- Syntax of Common Command Elements
- # command
- a command
- add-symbol-file command
- amap command
- attach command
- base command
- break command, tbreak command
- bt command
- can command
- cd command
- commands command
- comment command
- condition command
- continue command
- d command
- delete command
- delete display command
- detach command
- dir command
- disable command
- disable display command
- disassemble command, da command
- display command
- dmab command
- down command, down-silently command
- enable command
- enable display command
- env command
- eq command
- exit command
- fc command
- files command
- finish command
- fn command
- frame command, select-frame command
- help command, help option
- hold command
- i command
- ignore command
- ih command
- info command
- jb command
- jump command
- kill command
- list command
- log command
- ls command
- mab command
- map-source-name command
- mh command
- modify command
- next command, nexti command
- nocstm option
- output command
- print command
- priv command
- ptype command
- pwd command
- quit command
- reg command
- save command
- select-frame command
- set command (environment)
- set command (variable)
- show command
- snapshot command
- source command
- step command, stepi command
- switch command
- symbol command, symbol-file command
- tbreak command
- tj command, tu command
- tn command
- unload-symbol-file command
- until command
- up command, up-silently command
- vector command
- version option
- vq command
- wait command
- whatis command
- x command
- 4 Using Tcl Scripting
- A Command Mapping With Debug and Inspect
- Glossary
- Index

Introducing Native Inspect
Native Inspect Manual—528122-003
1-17
Global Debugging
°
Detach from the process from the original Native Inspect.
•
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 the 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 that encounter the global breakpoints.
Considerations for Global Debugging
•
Privileged mode must be enabled before you can set breakpoints in or examine
privileged code. The super ID must explicitly enable privileged mode debugging by
entering the priv command.
•
To set a global breakpoint, you must enable privileged debugging and then specify
the -g flag when setting a breakpoint. Global breakpoints are triggered by any
process that executes the code on which the breakpoint is set.
•
Global debugging mode begins when the first global breakpoint is set, and ends
when the last global breakpoint is deleted. While global debugging is in effect, all
other debugging in the CPU is suspended.
•
Native Inspect detects debugging events only when it is waiting. The debugger
can not detect debugging events when prompting the user for input. For this
reason, you should periodically issue the wait command so that Native Inspect can
detect any debugging events that might have occurred. When waiting, you can
press the Break key to redisplay the command prompt.










