Native Inspect Manual (H06.13+, J06.03+)

You must enter separate symbol commands for all files of interest, using 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.
Understanding Global versus Per-Process Symbol Files
When Native Inspect loads a symbol file, by default the symbols are available only to the current
process. Such a symbol file has per-process scope.
Specifying the -g (global) option when loading a symbol file gives the symbol file global scope.
The symbols are then available to all processes being debugged by a single Native Inspect instance.
Symbol files with global scope are useful for NonStop system symbols and for shared DLLs.
For example, if you want a symbol file to be associated with a shared DLL or library, the symbol
file needs to have global scope. Include the -g (global) option in your symbol-file command
or add-symbol-file command.
Any given symbol file can be loaded as both a global scope symbol file and a per-process scope
symbol file.
Specifying a Load Address for Symbol Files
Symbols are read in and assigned addresses based on the actual load address of the corresponding
loadfile, if it can be determined. Otherwise, the symbol addresses are based on the preferred load
address of the loadfile argument.
To override the preferred load address, use the add-symbol-file command and specify the
address at which the loadfile is loaded or where you expect it to be loaded. You should do this
when a DLL is loaded at a different address than the preferred load address. The info command
with the dll option displays the names of the loaded loadfiles along with related information,
including the addresses at which they are loaded.
Considerations for Locating Symbols
Native Inspect does consistency checking of symbol files. That is, if you load symbols from
another file, Native Inspect checks versions or timestamps between the object file you specify
and the object file being executed.
When Native Inspect does not display source file and line number information for a stack
frame, symbols are most likely unavailable for that frame.
Native Inspect looks for symbols from symbol files associated with the current process. These
symbol files can have global scope or per-process scope.
Understanding How Native Inspect Locates Files
When automatically started as the selected debugger, Native Inspect, like Inspect, uses your logon
default subvolume (not your current working subvolume or directory) as its default subvolume. The
current working directory contains the process being debugged.
You can reduce confusion by immediately entering a cd command and setting the default subvolume
for Native Inspect to be your current working subvolume (that is, the subvolume where your source
files are stored). In the following example, it is $data1.mysubvol):
(eInspect 0,380): cd $data1.mysubvol
Native Inspect also maintains a source search path for locating source files. To specify the location
of your source, you can either use fully-qualified file names, or use the dir command to set a
source search path to the correct directory. For more information, see Optionally Configuring a
Search Path for Your Source Files (page 36).
Preparing to Debug Using Native Inspect 35