Native Inspect Manual Abstract This manual describes how to use the symbolic command-line debugger Native Inspect for debugging TNS/E native processes and snapshot files on HP NonStop™ TNS/E systems. Product Version Native Inspect 1.0 Supported Release Version Updates (RVUs) This publication supports the H06.03 RVU and all subsequent H-series RVUs until otherwise indicated in its replacement publication.
Document History Part Number Product Version 528122-003 Native Inspect 1.
Native Inspect Manual Glossary Index What’s New in This Manual vii Manual Information vii New and Changed Information Figures Tables vii About This Manual ix Who Should Read This Manual ix Related Products and Manuals ix Organization x Notation Conventions x 1.
1. Introducing Native Inspect (continued) Contents 1.
2. Using Native Inspect (continued) Contents 2. Using Native Inspect (continued) Set a Memory Access Breakpoint (MAB) Trace the Stack (Back Trace) 2-10 List Source 2-11 Continue Listing Source 2-11 Set a Breakpoint on Line 52 2-11 Continue Execution 2-11 Display a Structure 2-11 Enable “pretty” Printing 2-12 Modify a Structure Field 2-12 Terminate Program and Session 2-12 2-10 3.
Contents 3. Syntax of Native Inspect Commands (continued) 3.
3. Syntax of Native Inspect Commands (continued) Contents 3.
4. Using Tcl Scripting (continued) Contents 4. Using Tcl Scripting (continued) Native Inspect Commands Implemented in Tcl 4-2 Loading a Tcl Script 4-2 Using Variables Defined in a Tcl Script 4-3 Programming Native Inspect Tcl Commands 4-3 Namespaces and Package Loading Rules 4-3 Tcl Examples 4-5 Tcl Commands Provided by Native Inspect 4-8 A. Command Mapping With Debug and Inspect Glossary Index Figures Figure 1-1. Figure 1-2. Figure 1-3.
What’s New in This Manual Manual Information Native Inspect Manual Abstract This manual describes how to use the symbolic command-line debugger Native Inspect for debugging TNS/E native processes and snapshot files on HP NonStop™ TNS/E systems. Product Version Native Inspect 1.0 Supported Release Version Updates (RVUs) This publication supports the H06.03 RVU and all subsequent H-series RVUs until otherwise indicated in its replacement publication.
New and Changed Information What’s New in This Manual Native Inspect Manual—528122-003 viii
About This Manual This manual describes the use of the Native Inspect symbolic command-line debugger for TNS/E systems. Who Should Read This Manual Anyone who wants to debug TNS/E native processes or snapshots using a commandline debugger on a TNS/E system.
Organization About This Manual Organization Table i. Contents of the Native Inspect Manual Section Description 1, Introducing Native Inspect Describes the basic principles of using Native Inspect to debug TNS/E native processes and snapshot files. 2, Using Native Inspect Presents a sample session using Native Inspect to debug a TNS/E native process.
General Syntax Notation About This Manual computer type. Computer type letters within text indicate C and Open System Services (OSS) keywords and reserved words. Type these items exactly as shown. Items not enclosed in brackets are required. For example: myfile.c italic computer type. Italic computer type letters within text indicate C and Open System Services (OSS) variable items that you supply. Items not enclosed in brackets are required. For example: pathname [ ] Brackets.
Notation for Messages About This Manual Punctuation. Parentheses, commas, semicolons, and other symbols not previously described must be typed as shown. For example: error := NEXTFILENAME ( file-name ) ; LISTOPENS SU $process-name.#su-name Quotation marks around a symbol such as a bracket or brace indicate the symbol is a required character that you must type as shown. For example: "[" repetition-constant-list "]" Item Spacing.
Notation for Messages About This Manual lowercase italic letters. Lowercase italic letters indicate variable items whose values are displayed or returned. For example: p-register process-name [ ] Brackets. Brackets enclose items that are sometimes, but not always, displayed. For example: Event number = number [ Subject = first-subject-value ] A group of items enclosed in brackets is a list of all possible items that can be displayed, of which one or none might actually be displayed.
Notation for Messages About This Manual Native Inspect Manual—528122-003 xiv
1 Introducing Native Inspect Debuggers on NonStop TNS/E Systems on page 1-2 Origins of Native Inspect on page 1-3 Industry Standard, Open Source on page 1-3 Companion Debugger eGarth on page 1-3 Additional NonStop Extensions on page 1-4 Not Part of the Inspect Subsystem on page 1-4 Documentation for Native Inspect on page 1-4 Comparing Native Inspect to Debug on page 1-4 Comparing Native Inspect to Inspect on page 1-5 Process Debugging With Native Inspect on page 1-6 Languages Supported by Native Inspect
Native Inspect on TNS/E Systems Introducing Native Inspect Native Inspect on TNS/E Systems Native Inspect is a system-level command-line symbolic debugger that you use to debug TNS/E native processes and snapshots. Native Inspect runs only on a NonStop TNS/E host system (not on a TNS/R or TNS system).
Origins of Native Inspect Introducing Native Inspect Table 1-1.
Additional NonStop Extensions Introducing Native Inspect Additional NonStop Extensions Native Inspect includes many functions specific to NonStop systems, such as NonStop OS extensions to the symbol table format, logging, and support for EDIT files and data breakpoints. Not Part of the Inspect Subsystem Because Native Inspect originated in the UNIX world, Native Inspect is not part of the Inspect subsystem. Both Inspect and Visual Inspect, however, are part of the Inspect subsystem.
Comparing Native Inspect to Inspect Introducing Native Inspect Some Commands Are Debug-Compatible Although Native Inspect is completely different in form from Debug, Native Inspect provides many Debug-compatible commands, such as a, base, fn, ih, and mh. For a list of Debug commands that have equivalent Native Inspect commands, see Table A-1, Debug Commands and Equivalent Native Inspect Commands.
Process Debugging With Native Inspect Introducing Native Inspect • For a comparison of Inspect and Native Inspect commands, see: ° Table A-2 on page A-2 for a list of Inspect commands and equivalent Native Inspect commands. ° Table 2-1 on page 2-1 for a list of the most commonly used Native Inspect commands with their Inspect equivalents.
Starting Native Inspect Introducing Native Inspect Figure 1-1. Native Inspect Runs in Same CPU as Current Process NonStop TNS/E Host CPU 1 CPU 2 Native Inspect Current Process User Terminal VST0101.vsd Starting Native Inspect You can start or enter Native Inspect in several ways: • • • • You can start a process under the control of the debugger, subject to the Debugger Selection Criteria (using the TACL RUND command or the run -debug command in OSS).
Starting Native Inspect Introducing Native Inspect Starting a Process Under the Control of the Debugger At the TACL prompt, enter a RUND command, specifying the file name of the TNS/E native object file you want to debug: TACL> rund $DISK2.MYSUBVOL.MYFILE In OSS, enter a run command with the -debug option and specify the file name of the TNS/E native object file you want to debug: OSS> run -debug pathname Native Inspect is automatically run in the same CPU as the process ($DISK2.MYSUBVOL.
Starting Native Inspect Introducing Native Inspect Invoking the Debugger From a Running Process Native Inspect is automatically started by the NonStop operating system when a debugger is required for any of the following reasons: • • • TNS/E native process code calls the PROCESS_DEBUG_ or DEBUG procedure. A TNS/E native process encounters a breakpoint set by a prior debugging session. The user of another debugger switches to Native Inspect.
Starting Native Inspect Introducing Native Inspect To summarize, Native Inspect is selected as the debugger: • • For TNS/E native processes when you have not established a Visual Inspect connection to the NonStop host, and the INSPECT attribute is OFF (Figure 1-2). For TNS processes when the Inspect subsystem is not running (that is, neither Visual Inspect nor Inspect is available) (Figure 1-3). Note, however, that Native Inspect has only limited capabilities for debugging TNS processes.
Starting Native Inspect Introducing Native Inspect Note that in Figure 1-3 there is no checking for the INSPECT setting (ON or OFF) for the process. All TNS processes are given to the Inspect subsystem for debugging, so the INSPECT attribute has no effect. Figure 1-3. Debugger Selection for a TNS Process Running on TNS/E Emulated TNS Process Visual Inspect session? Yes Select Visual Inspect No Inspect available? No Yes Select Inspect Select Native Inspect End VST0103.
Starting Native Inspect Introducing Native Inspect Explicitly Starting Native Inspect At the TACL prompt, enter a RUN command specifying the Native Inspect object file (EINSPECT) and the CPU in which the process is running (the process that you want to debug). For example, to start Native Inspect in CPU 2, enter: \SYSTEM.$D0117.INSPECT 1> einspect / cpu 2 / TNS/E Native Inspect gdb Debugger [T1237 - 13-Jan-2005 12:45] Copyright 1998 Free Software Foundation, Inc.
Debugging Multiple Processes Introducing Native Inspect The current process is the process to which all debugging commands apply and the process for which Native Inspect waits for events. When Native Inspect has no current process, the command prompt includes the CPU number and “-2” as the process number. For example: (eInspect 3,-2): Abbreviating Native Inspect Commands You can truncate Native Inspect command names provided that the abbreviation is not ambiguous.
Native Inspect Informs You of Additional Processes Introducing Native Inspect Native Inspect Informs You of Additional Processes Native Inspect informs you that it has control of another debugging target after you do one of the following: • • • Enter a process-control command (which causes Native Inspect to wait for events), such as the continue command, finish command, next command, nexti command, step command, stepi command, and until command. Enter the wait command. Press the Break key.
Using a Separate Instance of Native Inspect for Each Process Introducing Native Inspect Example of Using Multiple Instances of Native Inspect You are running Native Inspect in CPU 3 and are debugging the process $DISK1.MYSUBVOL.MYPROG (CPU,pin=3,301). A second debugging target named $DISK2.SVOL2.YOURPROG (CPU,pin=3,32) is assigned to your instance of Native Inspect.
Using One Instance of Native Inspect to Debug Multiple Processes Introducing Native Inspect 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.
Global Debugging Introducing Native Inspect • • ° 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.
Debugging TNS Processes Introducing Native Inspect • The super ID has the unique ability to vector to and examine processes running in the current CPU without establishing a debugging session with that process. Caution. Use the super ID’s vector capability with care. The process might be executing, and you cannot use execution control commands or commands that alter the process state. • When privileged debugging mode is enabled, the attach command issues a DEBUGNOW request rather than a DEBUG request.
Opening a Snapshot Introducing Native Inspect • Using the SAVE command (Inspect) Snapshots are also created by the Snapshot server (INSPSNAP) if the SAVEABEND attribute for a process is ON and the process abends. Opening a Snapshot Use the Native Inspect snapshot command to open a snapshot, providing a read-only view of the state of the process that the snapshot represents. To open a snapshot file, start Native Inspect and then enter: (eInspect 3,301): snapshot $disk3.mysubvol.myprog where $disk3.
Addressing Symbols for DLLs Loaded at Another Address Introducing Native Inspect Addressing Symbols for DLLs Loaded at Another Address If a user loads a symbol file for a DLL before a program call to dlopen() to load the DLL, Native Inspect uses the preferred address of the DLL as the basis for symbol address calculations. Then, when the DLL is loaded, Native Inspect again attempts to load the symbols using the actual load address for the DLL.
Assessing Your Location After an Event Introducing Native Inspect Table 1-2. Event Handling by Native Inspect Events Response by Native Inspect Breakpoint events Instruction breakpoint Instruction step TNS instruction breakpoint Memory access breakpoint Displays current code location (PC) and prompts user for input. (For TNS instruction breakpoint, displays the current native code location.
Switching Debuggers (To or From Inspect and Visual Inspect) Introducing Native Inspect Switching Debuggers (To or From Inspect and Visual Inspect) If you need to use features that are unique to another debugger, you can switch to a different debugger as follows: From You Can Switch to Using Native Inspect Inspect or Visual Inspect (according to Debugger Selection Criteria on page 1-9) switch command Visual Inspect Native Inspect Switch to System Debugger command in Visual Inspect (switches to Nati
Stopping Native Inspect Introducing Native Inspect Stopping Native Inspect Native Inspect runs as a separate process from the current process being debugged and stops: • • When the current process stops, if Native Inspect was started automatically to debug a process. If you enter the exit command or the quit command to explicitly stop. Native Inspect detaches from the current process and stops, leaving breakpoints in place.
Introducing Native Inspect Differences Between Native Inspect and WDB and GDB Native Inspect Manual—528122-003 1- 24
2 Using Native Inspect Preparing to Debug Using Native Inspect on page 2-2 Compiling and Transferring Program Files on page 2-2 Gaining Control of a Process Using Native Inspect on page 2-3 Loading Symbols Information (If Necessary) on page 2-3 Scope of Symbol Files: Global versus Per-Process on page 2-4 Load Address of Symbol Files on page 2-4 Considerations for Locating Symbols on page 2-4 How Native Inspect Locates Files on page 2-4 Determining the Compilation-Time Source Name (If Necessary) on page 2-
Preparing to Debug Using Native Inspect Using Native Inspect Table 2-1.
Gaining Control of a Process Using Native Inspect 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.
Loading Symbols Information (If Necessary) Using Native Inspect Scope of Symbol Files: Global versus Per-Process 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.
Using Native Inspect Determining the Compilation-Time Source Name (If Necessary) 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 this example $data1.mysubvol): (eInspect 0,380): cd $data1.mysubvol Native Inspect also maintains a source search path for locating source files.
For C/C++, Advancing Execution to Main() Using Native Inspect Path Change If the unqualified file names of your source files have not changed between compilation and debugging, use the dir command to add entries to the directory search list that Native Inspect uses to locate source files. For example: (eInspect 0,330): dir \sierra.
Sample Native Inspect Session Using Native Inspect Sample Native Inspect Session This sample session demonstrates these tasks: Task Native Inspect Command Access symbols information from a specified object file symbol command, symbol-file command Set search path for source files dir command Set source file-name mapping map-source-name command List source list command Set a code breakpoint break command, tbreak command Resume execution continue command Trace stack frames bt command Advance
Start Your Program Under Native Inspect Using Native Inspect Start Your Program Under Native Inspect SYS43.$D0117.MYSVOL 2> rund nitest TNS/E Native Inspect gdb Debugger [T1237 - 13-Jan-2005 12:45] Copyright 1998 Free Software Foundation, Inc. Copyright 2003-2005 Hewlett-Packard Development Company, L.P. Native Inspect (based on GDB) is covered by the GNU General Public License. Type "show copying" for conditions for changing and/or distributing copies.
List Source Using Native Inspect List Source (eInspect 0,301): list 31 void call9(char *string,long long q); 32 33 void print_and_break (void) { 34 35 char *new_ptr = "In print_and_break\n"; 36 int z = 7; 37 printf ("About to call DEBUG'\n"); 38 DEBUG(); 39 } 40 void main (void) { Set a Breakpoint on main() (eInspect 0,301): b main Breakpoint 1 at 0x70001020:0: file C:\mywin\home\myfiles\test\nitest.c, line 40. Continue Execution (eInspect 0,301): c Continuing.
Print a Variable Using Native Inspect Print a Variable (eInspect 0,301): print *local_ptr $1 = 70 'F' (eInspect 0,301): print local_ptr $1 = 0x70000000 Step Execution (Over Any Function Calls) (eInspect 0,301): next 43 call1(local_ptr,local_q); Step In to a Called Function (eInspect 0,301): step 43 call1(local_ptr,local_q); (eInspect 0,301): step #0 call1 (string=0x8000200 "From main", q=0) at C:\mywin\home\myfiles\test\nitest.c:49 49 structure.
List Source Using Native Inspect List Source (eInspect 0,301): list 42 int local_q = 0; 43 call1(local_ptr,local_q); 44 } 45 46 void call1(char *string,long long q) 47 { 48 eight_byte_struct structure; 49 structure.a = "from call1"; 50 structure.
Enable “pretty” Printing Using Native Inspect Enable “pretty” Printing (eInspect 0,301): set print pretty (eInspect 0,301): print structure $3 = { a = 0x8000210 "from call1", b = 1 } Modify a Structure Field (eInspect 0,301): set structure.b = 4 (eInspect 0,301): print structure $4 = { a = 0x8000210 "from call1", b = 4 } Terminate Program and Session (eInspect 0,301): kill Kill the program being debugged? (y or n) y Program exited with code 06.
3 Syntax of Native Inspect Commands • • • • Categories of Native Inspect Commands on page 3-1 Table 3-1, Commands of Native Inspect, on page 3-1 (commands listed in related groups) Syntax of Common Command Elements on page 3-6 Detailed syntax and examples for all the Native Inspect commands in alphabetic order (from # command to x command) Categories of Native Inspect Commands In Table 3-1, Native Inspect commands are grouped as follows: Command-line options Utility commands Session control commands Snaps
Categories of Native Inspect Commands Syntax of Native Inspect Commands Table 3-1.
Categories of Native Inspect Commands Syntax of Native Inspect Commands Table 3-1.
Categories of Native Inspect Commands Syntax of Native Inspect Commands Table 3-1. Commands of Native Inspect (page 4 of 5) Group Name and Command Name Function can command Decodes a specified address.
Categories of Native Inspect Commands Syntax of Native Inspect Commands Table 3-1.
Syntax of Common Command Elements Syntax of Native Inspect Commands Syntax of Common Command Elements This subsection describes the syntax of: • • • • • linespec native-address llce (low-level conditional expression) expression /format Syntax of linespec linespec specifies a single source line; used in the list command for printing source lines and in the breakpoint command for specifying where to plant an instruction breakpoint.
Syntax of native-address Syntax of Native Inspect Commands *address specifies the line containing the specified program address. address can be any decimal or hexadecimal expression; the format is assumed to be decimal by default. Syntax of native-address native-address is a 32-bit or 64-bit address on the TNS/E system.
Syntax of expression Syntax of Native Inspect Commands operator is one of !=, ==, < or >. value is an integer. Syntax of expression expression is a list of operands and operators which, when evaluated, result in a number or a string. Valid operators are those accepted by the source language in which the target being debugged is compiled. Native Inspect does not support expressions in pTAL.
Syntax of /format Syntax of Native Inspect Commands (the output associated with $1), and print $5 redisplays the output associated with $5. register-name displays the contents of the specified register. For example, print $pc displays the contents of the $pc register. Syntax of /format /format is a repeat count, followed by a format letter and a size letter in any order: /[ count ][ format ][ size ] count is an integer specifying the number of units of size to display or print.
# command Syntax of Native Inspect Commands The /format options are used in the examine (x command), print command, and output command. The print and output commands do not accept the format specifications i and s, any size letter, or a repeat count of more than 1. # command An alias for the comment command, used to embed a comment in a Native Inspect command line. a command A Debug-compatible Tcl command that displays memory in ASCII format.
amap command Syntax of Native Inspect Commands If there is no current process, the added symbol file has global scope, and the -g option is optional. -readnow expands the symbol table immediately rather than incrementally as needed. filename is the Guardian name of the TNS/E native code file (with file code 800) that Native Inspect is to open and from which Native Inspect will load symbols. address (optional for DLLs only) is the load address relative to which symbols should be rebased.
base command Syntax of Native Inspect Commands pin is the process ID (process number) of the process you want to attach. This process must be running in the same CPU as Native Inspect. To attach to a running OSS process, you must use its Guardian process ID. The attach command issues a PROCESS_DEBUG_ request for the specified process, and Native Inspect then waits for the next debugging event. (When privileged debugging is enabled, the attach command specifies the DEBUGNOW option.
break command, tbreak command Syntax of Native Inspect Commands break command, tbreak command Break sets an instruction breakpoint for the current process, at a specified line, function, or address. The tbreak command is similar, but sets a temporary breakpoint that is deleted after it is hit. Related Commands: Use the enable command and disable command to enable and disable breakpoints, respectively.
break command, tbreak command Syntax of Native Inspect Commands Setting Global Breakpoints Global breakpoints are breakpoints that are set using the -g command option. To set global breakpoints, you must be logged on as the super ID, you must turn on priv mode by using the priv command, and no one else can be performing global debugging at the same time. A global breakpoint is triggered by any process that executes the code on which the global breakpoint is set. Note.
bt command Syntax of Native Inspect Commands To set a breakpoint at a code address: (eInspect 3,663):b *0x70002c40:2 Breakpoint 3 at 0x70002c40:2: file \SIERRA.$YOSE1.SYMBAT1.SCXXTST, line 372. (eInspect 3,663):c Continuing. Breakpoint 3, 0x70002c40:2 in pcbDataStructs_initialize () at \SIERRA.$YOSE1.SYMBAT1.SCXXTST:372 372 PCB_addAttribute( pcb, PCBAttribute_createNonstop( PCBList.entry[11] ) ); bt command Prints a backtrace of all stack frames (frame numbers are preceded by a number sign, #).
can command Syntax of Native Inspect Commands can command Decodes the specified address and displays the address aspects, such as segment number, logical page, and byte offset within page. The can command tracks and displays the physical page mapped to the address and shows the owner PIN/usesegment and its sharers. can native-address native-address is the address that you want to decode.
commands command Syntax of Native Inspect Commands commands command Sets the commands to be executed when a breakpoint is hit. Enter the commands starting on the next line. To indicate the end of the commands, enter a line containing only the word end. The commands command is useful when you are starting Native Inspect to examine a snapshot or debug a running process. If you omit breakpoint-number, Native Inspect assumes the last breakpoint that you set.
condition command Syntax of Native Inspect Commands condition command Specifies a conditional expression to be evaluated when a breakpoint is hit. The breakpoint is reported only if the condition evaluates to TRUE. condition breakpoint-number [ conditional-expression ] breakpoint-number is the number of the breakpoint for which you want the specified expression to be evaluated.
d command Syntax of Native Inspect Commands Example To continue execution: (eInspect 1,329):c Continuing. Breakpoint 2, pcbDataStructs_initialize () at \SIERRA.$YOSE1.SYMBAT1.SCXXTST:386 386 pcb = PCBList.entry[2]->ref.pcb; d command A Debug-compatible Tcl command that displays memory in the format you specify. Alias: dn d native-address [ count ] [ :format ] native-address is the address at which you want to display memory. The d command accepts only 32-bit and 64-bit addresses.
delete command Syntax of Native Inspect Commands Example To display memory using the Debug-compatible a and d commands: (eInspect 3,663):d 0x8005884 10 0x8005884: 0x6d6f6e69 0x746f7200 0x8005894: 0x00000000 0x00000000 0x80058a4: 0x00000000 0x00000000 (eInspect 3,663):a 0x8005884 10 0x8005884: .moni. .tor.. ...... ...... 0x8005894: ...... ...... ...... ...... 0x80058a4: ...... ...... 0x00000000 0x00000000 0x00000000 0x00000000 delete command Deletes instruction breakpoints.
detach command Syntax of Native Inspect Commands • To display the expressions on the automatic display list, use the info command with the display option or enter the display command with no arguments. detach command Disassociates Native Inspect from the current process or from a specified process. Removes the current process from the set of processes being debugged and allows the process to continue executing.
dir command Syntax of Native Inspect Commands dir command Appends a specified directory to the search path that Native Inspect uses to locate source files. The directory search path is shared by all programs that are currently being debugged by Native Inspect. You typically use the dir command to help Native Inspect find source files when their current location differs from the location at which they were compiled, but their base file name remains the same.
disable command Syntax of Native Inspect Commands disable command Disables specified breakpoints, which remain defined but are not hit until reenabled. Use the enable command to enable a disabled breakpoint. If you do not enter any breakpoint numbers, the command disables all the breakpoints associated with the current process. Alias: dis, disa disable [ breakpoints ] [ breakpoint-number ... ] breakpoint-number is the number of a breakpoint you want disabled.
disassemble command, da command Syntax of Native Inspect Commands disassemble command, da command Displays a range of memory as instructions. The da command is an alias for the disassemble command. To display the instructions that compose the current line, first use the info line command to display the line’s address range and then use the disassemble command. If you specify only one of start-address and end-address, Native Inspect displays the entire function surrounding the given address.
display command Syntax of Native Inspect Commands Example To display instructions for a function: (eInspect 3,663):da PCB_addAttribute Dump of assembler code for function PCB_addAttribute: ;;; File: \SIERRA.$YOSE1.SYMBAT1.SCXXTST 239 { 0x70001820:0 : [MII] alloc r34=ar.pfs,30,30,0 0x70001820:1 : adds r12=-96,r12 0x70001820:2 : nop.i 0x0;; 0x70001830:0 : [MMI] adds r27=32,r12 0x70001830:1 : nop.
dmab command Syntax of Native Inspect Commands Example To use the automatic display list: (eInspect 4,798):display pcb->attributeCount 1: pcb->attributeCount = 1 (eInspect 4,798):display pcb->pin 2: pcb->pin = 0 (eInspect 4,798):next 364 PCB_addAttribute( pcb, PCBAttribute_createNonstop( PCBLis t.
down command, down-silently command Syntax of Native Inspect Commands down command, down-silently command Selects the stack frame that is called by the current stack frame. The down command also prints out information about the selected stack frame. Related Commands: up command, up-silently command Alias: do, dow { down | down-silently } count count is the number of frames to go before selecting a frame. Example See the Example for the up command, up-silently command.
enable display command Syntax of Native Inspect Commands Example To disable and then enable a breakpoint: (eInspect 1,329):disable 1 (eInspect 1,329):info break Num Type Disp Enb Address What 1 breakpoint keep n 0x70002540 in pcbDataStructs_initialize at \SIERRA.$YOSE1.SYMBAT1.SCXXTST:352 stop only if pcb->pin == 2 print PCB (eInspect 1,329):enable 1 (eInspect 1,329):info break Num Type Disp Enb Address What 1 breakpoint keep y 0x70002540 in pcbDataStructs_initialize at \SIERRA.$YOSE1.SYMBAT1.
env command Syntax of Native Inspect Commands env command Displays information about the environment of the current process, including emulation mode, register values, segment numbers for data space, code space and user stack, and user segment information. env Native Inspect also displays the current input and output base, whether logging is currently on or off, and the number of lines in a page (show height). For process debugging, the terminal name and the priv mode (show priv) are also displayed.
fc command Syntax of Native Inspect Commands fc command Redisplays a previous command and allows you to edit and reexecute the command. This command behaves like the fc command in TACL on a NonStop system. fc [ command-number | command-string ] command-number is the number of the command you want to redisplay, edit, and reexecute. Use the show command with the commands option to display the commands entered in the current session.
finish command Syntax of Native Inspect Commands finish command Executes the current process until execution either returns from the currently selected frame (by default, the current frame) or encounters a debugging event. The finish command prints the return value, if there is one. Use the frame command, select-frame command to select the current frame. The finish command operates relative to the currently selected frame, which might differ from the current execution frame.
frame command, select-frame command Syntax of Native Inspect Commands frame command, select-frame command Selects a stack frame and prints information about the selected stack frame. The select-frame command, the “silent” version of the frame command, does not print out information about the selected frame. Alias: f [ frame | select-frame ] [ number ] number is the number of the frame you want to select. To display frame numbers, use the bt command.
help command, help option Syntax of Native Inspect Commands help command, help option Displays information about commands of Native Inspect. The online help for Native Inspect has been inherited from its WDG/GDB parents and thus provides somewhat different information than that provided in this manual. Command or Option Function help command Takes several arguments and displays syntax, explanation, and examples according to the options you specify.
Help for Tcl Commands Syntax of Native Inspect Commands To display help for the symbol command, symbol-file command: (eInspect 3,-2): help symbol Load symbol table from executable file FILE. The `file' command can also load symbol tables, as well as setting the file to execute.
i command Syntax of Native Inspect Commands i command Displays instructions at the specified location. The i command is Debug-compatible. Alias: in i { { native-address [ count ] } | function-name } native-address is the address at which you want to display instructions. count is the number of instructions to display. The default value is 1. function-name is the name of the function in the source whose instructions you want to display.
ih command Syntax of Native Inspect Commands ignore-count is the number of breakpoint hits that Native Inspect is to ignore before reporting the breakpoint. ih command Displays information (info handler) about all signal handlers or about the handler for a specified signal. This command applies only to TNS/E native processes, not snapshots. Related Command: mh command ih [ signal_name ] signal-name is the name of the signal about which you want information.
info command Syntax of Native Inspect Commands Example To display information about all the signal handlers: (eInspect 3,1179):ih Signal SIGHUP SIGINT SIGQUIT SIGILL SIGURG SIGABRT SIGIO SIGFPE SIGKILL SIGSEGV SIGWINCH SIGPIPE SIGALRM SIGTERM SIGUSR1 SIGUSR2 SIGCHLD SIGRECV SIGSTOP SIGTSTP SIGMEMERR SIGNOMEM SIGMEMMGR SIGSTK SIGTIMEOUT SIGLIMIT SIGCONT SIGTTIN SIGTTOU SIGABND Priv/Non N N N N N N N N N N N N N N N N N N N N N N N N N N N N N N Handler Mask 0xfffc0000 0xfffc0000 0xfffc0000 0xfffc0000 0xf
info command Syntax of Native Inspect Commands architecture lists supported target architecture. args lists argument variables of the currently selected stack frame. breakpoints lists information about all user-defined breakpoints, including per-process breakpoints in addition to global breakpoints. copying lists the conditions for redistributing copies of Native Inspect. display lists the expressions on the automatic display list, which are displayed when the program being debugged stops.
info command Syntax of Native Inspect Commands locals prints the values of local variables of the currently selected stack frame. process prints information about the process being debugged, which includes displaying the object file and any DLLs in use, along with their timestamps. program prints execution status of the program being debugged. registers lists all integer registers and their contents.
info command Syntax of Native Inspect Commands target prints information about the target being debugged. types [ regular-expression ] prints all type names, or those matching the specified expression. variables [ regular-expression ] prints all global and static variable names, or those matching the specified expression. warranty prints the various types of warranty that Native Inspect users do not have.
info command Syntax of Native Inspect Commands To display registers for a frame: (eInspect 3,663): info frame 1 Stack frame at 0x6ffffe80: ip = 0x70003870:0 in test_complexTypes (\SIERRA.$YOSE1.SYMBAT1.SCXXTST:425); saved ip 0x700016b0:0 called by frame at 0x6ffffef0, caller of frame at 0x6ffffe50 source language c.
jb command Syntax of Native Inspect Commands To display the contents of the registers (output is several screens long): (eInspect 2,647):info reg pr0: 0x1 pr1: 0x0 pr2: 0x0 pr3: 0x0 pr4: 0x0 pr5: 0x0 pr6: 0x0 pr7: 0x0 pr8: 0x1 pr9: 0x0 pr10: 0x0 pr11: 0x0 pr12: 0x1 pr13: 0x0 pr14: 0x1 ...
kill command Syntax of Native Inspect Commands jump linespec linespec is the line number or statement number where you want execution to stop. To suspend execution at the destination location, first enter the break command, tbreak command to plant a temporary breakpoint. Example To jump to a specified location (line 51): (eInspect 3,638): list 44 } 45 46 void call1(char *string,long long q) 47 { 48 eight_byte_struct structure; 49 structure.a = "from call1"; 50 structure.
list command Syntax of Native Inspect Commands list command Lists source code starting at the current execution location or the most recently listed location. Native Inspect reads source from EDIT file (file code 101) and unstructured files (file code 180). By default, Native Inspect displays 10 lines before and after the current location. However, the number of displayed lines might differ for EDIT files that contain fractional line numbers.
Locating Source Files Syntax of Native Inspect Commands Examples To list source: (eInspect 1,463):list 377 378 getStepPrefix( 2 ) ); 379 380 381 382 383 384 385 386 (eInspect 1,463):list 387 388 389 390 391 392 393 394 395 396 */ printf( "%s building PCBReadyList: 0, 2, 4\n", PCBList_add( &PCBReadyList, PCBList.entry[0] ); pcb = PCBList.entry[0]->ref.pcb; pcb->state = PCBState_ready; pcb->flags.item.isReady = 1; pcb->flags.item.isHappy = 1; PCBList_add( &PCBReadyList, PCBList.entry[2] ); pcb = PCBList.
log command Syntax of Native Inspect Commands To list source at an address: (eInspect 3,663): list *0x700001aa0 0x70001aa0:0 is in PCBAttribute_create (\SIERRA.$YOSE1.SYMBAT1.SCXXTST:252).
mab command Syntax of Native Inspect Commands mab command Sets a memory access breakpoint (MAB) for the current process. For each process being debugged you can set one MAB. You can define a low-level conditional expression, but not a high-level condition or commands to execute, with a MAB. A MAB suspends the process each time the memory location is accessed in the specified manner (read, write, change).
mab command Syntax of Native Inspect Commands -r specifies read access -w specifies write access -rw specifies read/write access (this is the default value) llce is a low-level conditional expression that can be specified in any order with flags.
map-source-name command Syntax of Native Inspect Commands map-source-name command Defines file-name mapping rules between source file names at compilation time and at debug time. map[-source-name] [ qualified-source-filename = base-name | qualified-name ] qualified-source-filename is the fully qualified name of the source file at compilation time. base-name is either a fully qualified file name or an unqualified file name to which you are mapping the qualified-source-filename.
mh command Syntax of Native Inspect Commands SIG_IGN | SIG_ABORT | SIG_DFL | SIG_DBG are the signal handlers (in this case, actions): SIG_IGN SIG_ABORT SIG_DFL SIG_DBG Ignore signal Abort program Invoke default Invoke debugger native-address is the procedure entry address at which the signal handler is set up. Table 3-2 lists the signal names on a TNS/E system. Signal names are used in both the mh command and the ih command. Table 3-2.
modify command Syntax of Native Inspect Commands Example In this example of the mh command and the ih command, the first mh command causes the signal to be reported to the debugger; the second mh command restores the default signal handler; and the ih command displays information about the signal handlers: (eInspect 4,658):mh SIGNOMEM DIG_DBG (eInspect 4,658):mh SIGCHLD SIG_DFL (eInspect 4,658):ih Signal Priv/Non SIGHUP N SIGINT N SIGQUIT N SIGILL N SIGURG N SIGABRT N SIGIO N SIGFPE N SIGKILL N SIGSEGV N
next command, nexti command Syntax of Native Inspect Commands value is the value you want to assign to native-address. The options 8, 16, 32, and 64 specify the bit size of value. After completion of the command, Native Inspect prints out the address that was modified, the number of bytes that were modified, and the old and the new values. If the specified value does not fit in the size specified, an error is returned.
nocstm option Syntax of Native Inspect Commands nocstm option A command-line option that specifies that Native Inspect is to ignore the commands in the custom file, the EINSCSTM file. You can enter the nocstm option only when you explicitly start Native Inspect with a RUN command specifying EINSPECT. You cannot specify the nocstm option in a RUND command. Typically, when Native Inspect starts up, it checks for existence of the custom file in the user’s logon subvolume.
print command Syntax of Native Inspect Commands Alias: p print [ /format ] expression /format is an optional count, format, and size specification. expression evaluates the expression and assigns its value to a variable. You can include the standard C assignment operators, such as +=, x=, and \=.
print command Syntax of Native Inspect Commands number command to control the maximum number of elements printed for strings or arrays. For pTAL, only one character of a pointer to a string is printed. An array of strings is printed as an array with each different element printed separately. If the elements are all characters, however, they are printed as one string.
print command Syntax of Native Inspect Commands To display pointers: (eInspect 3,657): print pcb $1 = (PCB_t *) 0x80048a0 (eInspect 3,657):print *pcb $2 = { state = 0, flags = { word = 0, item = { isBad = 0, isReady = 0, isHappy = 0, isStarved = 0, waitState = 0 } }, dispatchCount = 0, pin = 0, attributeCount = 2, attribute = {0x8004ee0, 0x8004f40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0} } (eInspect 3,657) print pcb->flags.item.
print command Syntax of Native Inspect Commands To display a buffer formatted as a struct (use the set print pretty command to control display format of structures): (eInspect 3,663): print gBuffer $7 = '\000' , "\003\b\000N\340\b\000O@\b\000O\240", '\000' (eInspect 3,663): print {PCB_t} gBuffer $8 = { state = 0, flags = { word = 0, item = { isBad = 0, isReady = 0, isHappy = 0, isStarved = 0, waitState = 0 } }, dispatchCount = 0, pin = 0, attributeCount = 3, attribute
print command Syntax of Native Inspect Commands To display an item from the value history list: (eInspect 1,463): print *PCBList.
priv command Syntax of Native Inspect Commands priv command Sets, unsets, or shows the privilege level of the debugging session. The privilege level in turn controls whether a user can perform privileged debugging operations such as setting breakpoints on or stepping in to privileged functions. To use the priv command to turn privileged debugging on or off, you must be logged on as the super ID. Entered with no options, displays the current priv mode status.
pwd command Syntax of Native Inspect Commands pwd command Prints the current working directory. pwd Example To display the current working directory: (eInspect 2,1142):pwd Working directory \PIPPIN.$D0101.INSPECT. quit command Ends a Native Inspect session. Aliases: exit command, q { quit | exit } When you enter a quit or exit command, Native Inspect detaches itself from the current process and stops. If you exit while a process is suspended, it is automatically resumed.
save command Syntax of Native Inspect Commands Table 3-3.
set command (environment) Syntax of Native Inspect Commands set command (environment) Sets environment settings for Native Inspect. Compare with the set command (variable), which modifies the value of a variable in the program being debugged. All the environment attributes available to the set command are also supported by the show command. Some attributes, however, are supported only by the show command.
set command (environment) Syntax of Native Inspect Commands filename { on | off } sets the name of the file in which to record the command history. save { on | off } sets saving of the history record on exit from Native Inspect. size number sets the size of the command history. The default value is 256. input-radix { 8 | 10 | 16 } sets the default input radix for entering numbers. language { ptal | c | c++ } sets the current source language.
set command (environment) Syntax of Native Inspect Commands print sub-attribute value where sub-attribute is one of: address { on | off } sets printing of addresses. array { on | off } sets pretty printing of arrays (prints one field per line rather than compressing multiple fields on one line). See the examples that follow the print command syntax. asm-demangle { on | off } sets demangling of C++ names in disassembly listings.
set command (environment) Syntax of Native Inspect Commands symbol-filename { on | off } sets printing of source file name and line numbers with symbol. symbolic-addr { on | off } sets printing of the symbolic address (proc-name + offset) adjacent to the numeric address. union { on | off } sets printing of unions interior to structures. vtable { on | off } sets printing of C++ virtual function tables. radix { 8 | 10 | 16 } sets the input and output number radices.
set command (environment) Syntax of Native Inspect Commands Examples To set pretty printing on and off: (eInspect 4,770): set print pretty off (eInspect 4,770): print pcb $2 = (PCB_t *) 0x0 (eInspect 4,770): c Continuing. Breakpoint 3, pcbDataStructs_initialize () at \SIERRA.$YOSE1.SYMBAT1.
set command (variable) Syntax of Native Inspect Commands To set the number of elements to print: (eInspect 4,774): set print elements 5 (eInspect 4,774): print pcb->attribute $5 = {0x0, 0x0, 0x0, 0x0, 0x0...} set command (variable) Evaluates an expression and assigns the resulting value to a variable. set [ variable ] var-name { expression | value } var-name is the name of a variable in the current process. expression is an expression whose value you want to be assigned to var-name.
show command Syntax of Native Inspect Commands show command Displays either the environment settings for Native Inspect or the value of a variable in the program being debugged. show [ attribute | { history | print | check } [ sub-attr ] ] attribute is typically one of the same attributes as for the set command (environment). The history, print, and check attributes are as described for the set command (environment).
snapshot command Syntax of Native Inspect Commands snapshot command Opens a TNS/E native process snapshot (with file code 130) for analysis. snapshot filename filename is the name of a TNS/E native snapshot file (with file code 130) that you want to open. If you enter the snapshot command when Native Inspect already has a debugging target open (a native process or snapshot), the existing target is closed before the specified snapshot file is opened.
step command, stepi command Syntax of Native Inspect Commands step command, stepi command Advances program execution by one source statement or by a specified number of statements. Execution steps “in” any function calls that are executed within the step range. If a function call is made within the stepping range, the call is followed and execution suspended after the function’s prolog code is executed.
symbol command, symbol-file command Syntax of Native Inspect Commands After you enter a switch command, Native Inspect suspends command prompting until one of the following happens: • • • The process is transferred back to Native Inspect. You press the Break key. The process terminates. Native Inspect continues to maintain the associated state for the process until the process terminates or is transferred back to Native Inspect. Breakpoint attributes are not passed between debuggers.
tbreak command Syntax of Native Inspect Commands -readnow expands the symbol table immediately rather than incrementally as needed. filename is the Guardian name of the TNS/E native code file (with file code 800) that Native Inspect is to open. The symbol command reads in the symbols for the specified loadfile at the corresponding loadfile’s actual load address, if it can be determined.
tj command, tu command Syntax of Native Inspect Commands tu stack traces from a ucontext buffer contained at the specified address. native-address is the address that contains the jump buffer. Note. Unexpected results can occur if the native address specified does not correspond to a valid native jump buffer or a valid ucontext.
tn command Syntax of Native Inspect Commands To obtain the address of the ucontext buffer and then trace the stack relative to the ucontext buffer: (eInspect 1,1028):info locals ucp = (ucontext_t *) 0x6fffede0 (eInspect 1,1028):tu 0x6fffede0 #0 0x70000cd0:0 in func3 (p=1879043416, q=0, r=134222120) at \SIERRA.$OS.VIVTEST.STEST12:21.030 #1 0x70000e50:0 in func2 (p=5, q=10) at \SIERRA.$OS.VIVTEST.STEST12:21.060 #2 0x70000fa0:0 in func1 (p=5) at \SIERRA.$OS.VIVTEST.STEST12:21.
until command Syntax of Native Inspect Commands until command Continues executing the current process until a specified location is reached, a debugging event occurs, or the current stack frame returns. Alias: u until [ linespec ] linespec is the line number where you want execution to stop. If you enter the until command with no arguments, the results are similar to those of the next command, except that at the bottom of a loop the until command steps through all remaining iterations.
vector command Syntax of Native Inspect Commands Example To use the up and down commands: (eInspect 4,770): bt #0 pcbDataStructs_initialize () at \SIERRA.$YOSE1.SYMBAT1.SCXXTST:362 #1 0x700016a0:0 in main (argc=1, argv=0x8003010) at \SIERRA.$YOSE1.SYMBAT1.SCXXTST:217 #2 0x700011f0:0 in _MAIN () at \SPEEDY.$RLSE.T8432H01.CPLMAINC:68 (eInspect 4,770): up #1 0x700016a0:0 in main (argc=1, argv=0x8003010) at \SIERRA.$YOSE1.SYMBAT1.
version option Syntax of Native Inspect Commands version option A command-line option that displays the versions of Native Inspect, GDB, and the Tool Command Language (Tcl). This option is an alias for the show command with the version option. --version vq command Displays information about process segments or, if you specify a segid, changes the selectable segment viewed by Native Inspect. vq [ segid ] segid is the segment ID for the segment about which to display information.
x command Syntax of Native Inspect Commands expression is an expression used in the current debugging target process. The whatis command is similar to the ptype command, except that ptype prints detailed information about the data type, and whatis prints just the name of the data type. x command Examines memory in any of several formats, independently of your program’s data types.
Default Values Syntax of Native Inspect Commands Default Values The defaulting rules for arguments to the x command enable you to easily display successive memory ranges using the same formatting: • • Default address—if you do not specify an address, the x command displays memory following the last address examined, or 0 if no address was previously examined.
Convenience Variables Syntax of Native Inspect Commands To display memory referenced by a pointer: (eInspect 0,794):x /5xw pcbAttribute 0x8004ee0: 0x00030000 0x00000005 0x8004ef0: 0x00000000 (eInspect 0,794):x /5b pcbAttribute 0x8004ee0: 0x00 0x03 0x00 0x00 0x00000000 0x00000000 0x00 To display instructions relative to the current location: (eInspect 3,663):x /5i $ip 0x70002bf0:0 : 0x70002bf0:1 : 0x70002bf0:2
Convenience Variables Syntax of Native Inspect Commands To use the convenience variables $_ and $__: eInspect 2,348):x $pc 0x703a4310:2 : -535231967 (eInspect 2,348):print $_ $4 = (examine_w_type *) 0x703a4310:2 (eInspect 2,348):print $__ $5 = -535231967 Native Inspect Manual—528122-003 3- 81
Convenience Variables Syntax of Native Inspect Commands Native Inspect Manual—528122-003 3- 82
4 Using Tcl Scripting Introduction to Tcl on page 4-1 Learning Tcl on page 4-1 Using Native Inspect Tcl Commands on page 4-1 Loading a Tcl Script on page 4-2 Using Variables Defined in a Tcl Script on page 4-3 Programming Native Inspect Tcl Commands on page 4-3 Namespaces and Package Loading Rules on page 4-3 Tcl Examples on page 4-5 Tcl Commands Provided by Native Inspect on page 4-8 Introduction to Tcl Native Inspect includes Version 8.
Pass-Through of Tcl Commands Using Tcl Scripting Pass-Through of Tcl Commands Some commands, such as set and help, exist in both Native Inspect and Tcl. To use the Tcl version of such a command, you must “pass through” commands to Tcl by specifying Tcl on the Native Inspect command line, as follows: (eInspect 3,301): tcl tcl-command Getting Help for Tcl Commands Both Tcl and Native Inspect have a help command.
Using Variables Defined in a Tcl Script Using Tcl Scripting Using Variables Defined in a Tcl Script You can use variables defined in a Tcl script, such as $amount, after you run the Tcl script that contains the definition. The Tcl interpreter treats all command arguments as Tcl scripts. The Tcl environment is persistent for each interactive session, so variables you create and values you set are retained.
Namespaces and Package Loading Rules Using Tcl Scripting For example, to put package code in a namespace, use the namespace eval command. This example puts a package in a namespace of the same name: # mySub.tcl package provide mySub 1.0 namespace eval ::mySub:: { # my package code } # More code In this example, the namespace ::mySub:: contains the package mySub. When your package is installed on a system, Tcl scripts can use your package by referring to its namespace, not its actual location.
Tcl Examples Using Tcl Scripting Other Scripts Must Import Packages and Commands If you have explicitly exported your public commands, another user can use a wild card to import your public commands, as follows: # In an app or another package namespace eval ::mySub:: { namespace import ::mySub::* } A user can invoke your help by entering the Tcl help (or tclhelp) command, as follows: tcl help commandname Tcl Examples The code for the Native Inspect eq command is implemented in Tcl: # Syntax: eq #
Tcl Examples Using Tcl Scripting To create and use a simple Tcl command (allbases): file: mytcl #-----------------------------------------------------------------# Syntax: allbases # Effect: Evaluate the expression and display the result in different # formats.
Tcl Examples Using Tcl Scripting To use the Tcl script ListPCBs to walk data structure: (eInspect 0,519):tcl source mypcb (eInspect 0,519):ListPCBs 20 Active PCBs pin flags attributes 0 0x6000 7 1 0x0500 0 2 0x6000 0 3 0x0500 0 4 0x6000 0 5 0x0500 0 6 0x0000 0 7 0x0000 0 8 0x0000 0 9 0x0000 0 10 0x0000 0 11 0x0000 0 12 0x0000 0 13 0x0000 0 14 0x0000 0 15 0x0000 0 16 0x0000 0 17 0x0000 0 18 0x0000 0 19 0x0000 0 Native Inspect Manual—528122-003 4 -7
Tcl Commands Provided by Native Inspect Using Tcl Scripting Tcl Commands Provided by Native Inspect Native Inspect includes the built-in commands that are provided by open-source Tcl (such as package provide and namespace eval). In addition to these, the commands listed in Table 4-1 are provided specifically for the NonStop platform. Table 4-1. Tcl Commands for NonStop TNS/E Systems Tcl Command Description expr expression Evaluates a 32-bit expression.
A Command Mapping With Debug and Inspect • • Table A-1 lists Debug commands and equivalent Native Inspect commands. Table A-2 lists Inspect commands and equivalent Native Inspect commands. Table A-1.
Command Mapping With Debug and Inspect Table A-2.
Command Mapping With Debug and Inspect Table A-2.
Command Mapping With Debug and Inspect Table A-2.
Glossary address space. The memory locations to which a process has access. break condition. An event indicator or sequence of data from a terminal or terminal emulator that requests interruption of an application program. breakpoint. A location that you specify in a program at which execution stops and the debugger allows you to examine the state of the program and its variables. command. A demand for action by or information from a subsystem or the operation demanded by an operator or application.
export Glossary export. To offer a symbol definition for use by other loadfiles. A loadfile exports a symbol definition for use by other loadfiles that need a data item or function having that symbolic name. extended link format (ELF). A standard binary file format common on UNIX systems. The ELF format is used for position-independent code (PIC) files on both TNS/R and TNS/E systems. file name. A string of characters that uniquely identifies a file.
native Glossary native. An adjective that can modify object code, object file, loadfile, process, procedure, and mode of process execution. Native object files contain native object code, which directly uses the processor's instruction set and the corresponding conventions for register handling and procedure calls. Native processes are those created by executing native object files. Native procedures are units of native object code.
signal Glossary A save file can be created through an Inspect or Native Inspect SAVE command at any time. A save file called a saveabend file can be created by the DMON debug monitor when a process’s SAVEABEND attribute is set and the process terminates abnormally. signal. The method by which an environment notifies a process of an event. Signals are used to notify a process when an error that is not related to input or output has occurred. signal handler.
TNS/E library Glossary acceleration. TNS/E systems include all HP NonStop systems that use NSE-x processors. Contrast with TNS mode and user code. TNS/E library. A TNS/E native-mode library. TNS/E libraries are always dynamic-link libraries (DLLs); there is no native shared run-time library (SRL) format. TNS/E native C compiler. The C compiler that generates TNS/E object files. TNS/E native compiler.
TNS/R native mode Glossary stack, 32-bit registers, and call linkage. The TNS/R native C compiler is an example of such a compiler. Contrast with TNS/E native compiler. TNS/R native mode. The primary execution environment on a TNS/R system, in which native-compiled MIPS object code executes, following TNS/R native-mode compiler conventions for data locations, addressing, stack frames, registers, and call linkage. See also TNS/E native mode. TNS/R native object code.
Visual Inspect Glossary G-Series Common Glossary Glossary -7
Visual Inspect Glossary G-Series Common Glossary Glossary -8
Index A Buffers, displaying 3-57 a command 3-3, 3-10, 3-20 Abbreviation of commands 1-13 add source assign (Inspect) A-2 Address of symbol file 2-4 address option 3-64 Address, attributes 3-11 add-symbol-file command 1-19, 3-5, 3-10 Advancing execution to main() 2-6 Alias, for commands 1-13 all-registers option 3-37 amap command 3-1, 3-11 an command 3-10 Application registers 3-61 architecture option 3-38 args option 3-38 Array elements, displaying 3-57 array option 3-64 ASCII 3-10, 3-19 asm-demangle opti
D Index D down-silently command 3-4, 3-27 d command 3-3, 3-19, 3-20 da command 3-4, 3-24 Data structures, displaying 3-57 debug command 1-8, 2-3 DEBUG procedure 1-9 Debugger selection 1-9 switching 1-22 DEBUGNOW command 1-8 Default subvolume 2-4, 3-16 Deferred breakpoints 1-23 delete command 2-2, 3-3, 3-20 delete display command 3-4, 3-20 demangle option 3-64 detach command 1-14, 1-17, 3-2, 3-21 dir command 1-19, 2-6, 2-8, 3-2, 3-22, 3-49 directories option 3-22, 3-68 Directory search path 3-22 Director
G Index G K GDB 1-3 General registers Global breakpoint Global debugging Global MAB 3-26 Global symbol file kill command 2-12, 3-3, 3-43 3-61 1-17, 3-13, 3-14, 3-47 1-17 2-4, 3-10, 3-71 H h command 3-33 handle option 3-38 height option 3-62 help command 3-1, 3-2, 3-33 help command (Tcl) 3-34, 4-2 History buffer 3-53 History of commands 3-68 history option 3-62 hlce (high-level conditional expression) 3-18 hold command 3-3, 3-34 HP NonStop Open System Services (OSS) 1-7, 1-8, 3-12 I i command 3-4, 3-3
M (continued) Index M (continued) n command 3-52 namespace eval command (Tcl) 4-4 native-address specification 3-7 next command 1-16, 1-18, 2-9, 3-3, 3-52 nexti command 3-3, 3-52 ni command 3-52 nocstm option 3-1, 3-53 null-stop option 3-64 print command 2-1, 2-10, 2-11, 3-4, 3-10, 3-53, 3-67, 4-8 print option 3-64 priv command 3-2, 3-14, 3-59 Priv mode (privileged) 3-63 Privileged debugging 1-8, 1-17 PROC name, in stack trace 3-63 process option 3-39 PROCESS_DEBUG() 1-9 program option 3-39 Prompt 1-13
S Index S s command 3-70 Sample session 2-7 save command 1-18, 3-2, 3-61 scope option 3-39 Search path 3-22, 3-68 select-frame command 3-4, 3-32, 3-61 sessions option 3-39 set command (environment) 2-12, 3-2, 3-62 set command (variable) 2-1, 2-12, 3-4, 3-54, 3-67 set language ptal command 3-8 sevenbit-strings option 3-64 show command 3-2, 3-30, 3-68 show directories command 3-22 si command 3-70 Signal handlers 3-49 Signal names 3-50 signals option 3-39 snapshot command 1-19, 3-2, 3-69 Snapshot file 1-19 s
U (continued) Index U (continued) Special Characters up-silently command 3-5, 3-75 user option 3-68 != (operator) 3-8 # command 3-2, 3-10 #, in frame number 3-15 $ 3-8, 3-53 $cdir 3-22, 3-68 $cwd 3-22, 3-68 $SYSTEM.SYSnn.