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

Using Native Inspect
Native Inspect Manual—528122-003
2-3
Gaining Control of a Process Using Native Inspect
If you are developing your program on a remote system or on a Windows PC, transfer
your files to the TNS/E system where you will perform debugging. You will need the
program files in addition to the DLLs you are using.
Gaining Control of a Process Using Native Inspect
To start a program under control of the debugger, use the TACL RUND command:
TACL 2> rund nitest
The debugger that is invoked by the RUND command is determined by a set of rules
described in Debugger Selection Criteria on page 1-9.
To debug a process that is running, use the TACL DEBUG command:
TACL 3> debug nitest , term $myterm
For complete information about other ways to gain control of a process using Native
Inspect, and for additional examples, see Starting Native Inspect on page 1-7.
Loading Symbols Information (If Necessary)
To debug a process using a symbolic debugger such as Native Inspect, symbols
information must be loaded for the process you want to debug. When Native Inspect
gains control of a process, it attempts to load symbols for the process.
You will need to explicitly load symbols if you want to debug:
•
A loadfile whose symbols have been stripped (typically done on production
systems to minimize file size). You must know the location of the identical version
that contains symbols.
•
Any DLLs that your program loads.
To load symbols, use the symbol command, symbol-file command or the add-symbol-
file command:
symbol-file filename
For example, if you enter an unqualified file name, the file must exist in the current
working directory:
(eInspect 0,380): symbol-file xvod02a
xvod02a: No such file or directory.
(eInspect 0,380): symbol-file $d0101.qagarth.xvod02a
Reading symbols from $d0101.qagarth.xvod02a...done.
You must enter separate symbol commands for all files of interest — one symbol
command to load the symbols for your program file, and separate symbol commands
for each DLL.
Native Inspect automatically reads in symbol table information for DLL loadfiles that
are loaded in response to the dlopen() system call. Similarly, the symbol table is
automatically discarded if the DLL is unloaded using the dlclose() system call.










