900 Series HP 3000 Computer Systems System Debug Reference Manual ABCDE HP Part No. 32650-90013 Printed in U.S.A. 1992 Third Edition E0692 FINAL TRIM SIZE : 7.5 in x 9.
The information contained in this document is subject to change without notice. Hewlett-Packard makes no warranty of any kind with regard to this material, including, but not limited to, the implied warranties of merchantability or tness for a particular purpose. Hewlett-Packard shall not be liable for errors contained herein or for direct, indirect, special, incidental or consequential damages in connection with the furnishing or use of this material.
Print History The following table lists the printings of this document, together with the respective release dates for each edition. The software version indicates the version of the software product at the time this document was issued. Many product releases do not require changes to the document. Therefore, do not expect a one-to-one correspondence between product releases and document editions.
iv FINAL TRIM SIZE : 7.5 in x 9.
Preface The System Debug Reference Manual (32650-90013) is written for the experienced programmer. It is a reference manual that provides information about System Debug. System Debug provides a family of low-level assembly language debugging tools for MPE XL (for both Native and Compatibility Mode code): Debug Dump Analysis Tool (DAT) Standalone Analysis Tool (SAT) A certain level of knowledge is required to utilize System Debug.
Chapter 7 Chapter 8 Chapter 9 Chapter 10 described, along with an explanation of each eld within the window. System Debug Window Commands lists the System Debug window commands, broken into logical groups. The window commands are then listed in alphabetical order, along with full syntax, parameter descriptions, and examples of use. System Debug Standard Functions lists the prede ned System Debug functions in alphabetical order, complete with full syntax, parameter descriptions, and examples of use.
Appendix A Appendix B Appendix C Appendix D Appendix E Patterns and Regular Expressions presents pattern matching and regular expressions. Expression Diagrams contains System Debug expression diagrams. Emulated/Translated CM Code describes CM Object Code Translation Reserved Variables/Functions contains a full summary of all reserved variables and functions. System Debug Command Summary contains a full System Debug command summary. vii FINAL TRIM SIZE : 7.5 in x 9.
Conventions viii FINAL TRIM SIZE : 7.5 in x 9.
UPPERCASE In a syntax statement, commands and keywords are shown in uppercase characters. The characters must be entered in the order shown; however, you can enter the characters in either uppercase or lowercase. For example: COMMAND can be entered as any of the following: command Command COMMAND It cannot, however, be entered as: comm italics com_mand comamnd In a syntax statement or an example, a word in italics represents a parameter or argument that you must replace with the actual value.
Conventions (continued) [ ... ] In a syntax statement, horizontal ellipses enclosed in brackets indicate that you can repeatedly select the element(s) that appear within the immediately preceding pair of brackets or braces. In the example below, you can select parameter zero or more times. Each instance of parameter must be preceded by a comma: [,parameter][...
Conventions (continued) base pre xes The pre xes %, #, and $ specify the numerical base of the value that follows: %num speci es an octal number. #num speci es a decimal number. $num speci es a hexadecimal number. bits (bit :length ) If no base is speci ed, decimal is assumed.
FINAL TRIM SIZE : 7.5 in x 9.
Contents 1. Introduction What Is Debug? . . . . . . . . . . . . . What Is the Dump Analysis Tool (DAT)? . . What Is the Standalone Analysis Tool (SAT)? How to Debug . . . . . . . . . . . . . . How to Debug a CM Program . . . . . . How to Debug an NM Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-1 1-2 1-3 1-3 1-3 1-4 2. User Interface Command Line Overview . . . . . Data Types . . . . . . . . . . . Integer Types . . . . . . .
BAND, BOR, and BNOT . . . . . << and >> . . . . . . . . . . . Relational Operators . . . . . . . . Indirection Operator . . . . . . . . Concatenation Operator . . . . . . . Expressions . . . . . . . . . . . . . Operator Precedence . . . . . . . . . Variables . . . . . . . . . . . . . . Environment Variables . . . . . . . . . Prede ned Functions . . . . . . . . . Macros . . . . . . . . . . . . . . . Procedure Name: Symbols . . . . . . . Operand Lookup Precedence . . . . . . Command Line Substitutions . . . .
4. System Debug Command Speci : . . . . . . . . . . . . . = . . . . . . . . . . . . . ABORT . . . . . . . . . . ALIAS . . . . . . . . . . ALIASD[EL] . . . . . . . . ALIASINIT . . . . . . . . ALIASL[IST] . . . . . . . . B (break) . . . . . . . . . BD . . . . . . . . . . . . BL . . . . . . . . . . . . CLOSEDUMP . . . . . . . CM . . . . . . . . . . . . CMDL[IST] . . . . . . . . CMG . . . . . . . . . . . C[ONTINUE] . . . . . . . D (display) . . . . . . . . . DATAB . . . . . . . . . . DATABD . . . . . . . . .
FOREACH . FPMAP . . . FUNCL[IST] . GETDUMP . H[ELP] . . . HIST[ORY] . IF . . . . . IGNORE . . INITxx . . . KILL . . . . LEV . . . . LIST . . . . LISTREDO . LOADINFO . LOADPROC . LOC . . . . LOCL[IST] . . LOG . . . . M (modify) . MAC[RO] . . MACD[EL] . . MACECHO . MACL[IST] . MACREF . . MACTRACE . MAP . . . . MAPL[IST] . MODD . . . MODL . . . MPEXL . . . MPSW . . . MR . . . . . NM . . . . . OPENDUMP . PAUSE . . . PIN . . . . . PROCLIST . PSEUDOMAP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
PURGEDUMP REDO . . . . REGLIST . . RESTORE . . RET[URN] . . SET . . . . . SETxxx . . . SHOWxxx . . S, SS . . . . STORE . . . SYMCLOSE . SYMF[ILES] . SYMINFO . . SYML[IST] . SYMOPEN . SYMPREP . . T (translate) . TERM . . . TR[ACE] . . TRAP . . . . UF . . . . . UNMAP . . . UPD . . . . USE . . . . . VAR . . . . VARD[EL] . . VARL[IST] . . W (write) . . WHELP . . . WHILE . . . XL . . . . . XLD . . . . XLL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5. Symbolic Formatting Symbolic Access Creating and Accessing Symbol De nitions . . . . . . Generate Symbolic Type Information . . . . . . . Convert The Relocatable Library into a Program File Preprocess the Program File with PXDB . . . . . Prepare the Program File with SYMPREP . . . . . Open the Symbolic Data Type File with SYMOPEN The Path Speci cation . . . . . . . . . . . . Using the Symbolic Formatter . . . . . . . . . . . Formatting Types . . . . . . . . . . . . . . . . Formatting Data . . . . . . . .
7. System Debug Window Commands RED . . . . . . . . . . . . . WDEF . . . . . . . . . . . . WGRP . . . . . . . . . . . . WOFF . . . . . . . . . . . . WON . . . . . . . . . . . . . wB . . . . . . . . . . . . . . wC . . . . . . . . . . . . . . wD . . . . . . . . . . . . . . wE . . . . . . . . . . . . . . wF . . . . . . . . . . . . . . wH . . . . . . . . . . . . . . wI . . . . . . . . . . . . . . wJ . . . . . . . . . . . . . . wK . . . . . . . . . . . . . . wL . . . . . . . . . . . . . . wM . . . . . . . . . .
func cmbpinstr . func cmentry . . func cmg . . . . func cmnode . . func cmproc . . func cmproclen . func cmseg . . . func cmstackbase func cmstackdst func cmstacklimit func cmstart . . func cmtonmnode func cmva . . . func cst . . . . func cstx . . . . func dstva . . . func eaddr . . . func errmsg . . func grp . . . . func hash . . . func lgrp . . . . func logtoabs . . func lptr . . . . func lpub . . . func ltolog . . . func ltos . . . . func macbody . func mapindex . func mapsize . . func mapva . .
func nmnode . . func nmpath . . func nmproc . . func nmstackbase func nmstacklimit func nmtocmnode func o . . . . func pcb . . . . func pcbx . . . func phystolog . func pib . . . . func pibx . . . func prog . . . func pstate . . . func pub . . . . func rtov . . . . func s16 . . . . func s32 . . . . func s64 . . . . func saddr . . . func sid . . . . func sptr . . . . func stol . . . . func stolog . . . func str . . . . func strapp . . . func strdel . . . func strdown . . func strextract . func strinput . .
func strwrite . func symaddr . func symconst func syminset func symlen . func symtype . func symval . func sys . . . func tcb . . . func trans . . func typeof . . func u16 . . . func u32 . . . func user . . . func vainfo . . func vtor . . func vtos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
A. Patterns and Regular Expressions Literal Expressions (Match Exactly These Characters) . . . . . Metacharacters . . . . . . . . . . . . . . . . . . . . . . Character Classes (Match Any One of the Following Characters) Expression Closure (Match Zero or More of the Previous Expressions) . . . . . . . . . . . . . . . . . . . . . Technical Summary . . . . . . . . . . . . . . . . . . . . A-1 A-2 A-2 A-3 A-4 B. Expression Diagrams C. Emulated/Translated CM Code Debugging Emulated CM Code . . . . . . . . .
Tables D-1. Prede ned Environment Variables and Functions . . . . . . Contents-12 FINAL TRIM SIZE : 7.5 in x 9.
1 Introduction System Debug provides a family of low-level assembly language debugging tools for MPE XL: Debug Dump Analysis Tool (DAT) Standalone Analysis Tool (SAT) A certain level of knowledge is required to utilize System Debug. Speci cally, familiarity with assembly code, procedure calling conventions, parameter passing conventions, and HP 3000 and HP Precision Architecture is assumed.
Precision Architecture virtual addresses, and HP Precision Architecture real memory addresses. Display a symbolic procedure stack trace, optionally displaying interleaved NM and CM calls. You can also set the current debug environment back temporarily to the environment which existed at any marker on the stack. Calculate the value of expressions in order to determine the correct values of variables at a given point in a program. Values can be custom formatted in several bases.
What Is the Standalone Analysis Tool (SAT)? The Standalone Analysis Tool (SAT) aids support and lab personnel in analyzing MPE XL system events such as process hangs, operating system failures, and hardware failures. Refer to chapter 10 for detailed information regarding SAT. How to Debug This chapter gives a very brief introduction to debugging. For additional information, refer to the Programmer's Guide corresponding to the language compiler you are using.
Debug announces your arrival into the debugger. You are now ready to debug your program (set breakpoints, de ne macros, turn on the windows, and so on). For example, :RUN CMPROG.GRP.ACCT;LIB=G;DEBUG CM DEBUG Intrinsic: PROG %0.22 %cmdebug > won How to Debug an NM Program Compile and link your program le and any necessary libraries.
2 User Interface The System Debug user interface is command oriented. That is, all requests for System Debug to perform some operation must be expressed as commands. Normally, commands are read either from the standard input device ($STDIN) in the case of DAT, or from the session LDEV using low-level I/O routines in the case of Debug. But commands may also be read from command les, sometimes known as use les , stored on disk. System Debug output is displayed in one of two ways.
Command Line Overview System Debug displays a prompt when it is ready to accept a command interactively. The standard prompt looks like this: $10 ($42) nmdebug > The rst number is the current command number. This is the number that is assigned to the command entered at the prompt. Blank lines do not cause the command number to increase. The number in parentheses is the process identi cation number (PIN) of the current process. If Debug is entered from the CI, then this is the CI's PIN.
The dollar signs in front of the numbers indicate that the current output radix is hexadecimal. Except for a few obvious exceptions, most numbers are displayed in the current output base. The abbreviations for numeric radices are % - octal, # - decimal, $ - hexadecimal. The nmdebug > part of the prompt is composed of two parts. The rst, nm, indicates that the current mode of System Debug is native mode. The other possibility is cm for compatibility mode.
b myproc, 1,, {CMD1; CMD2; CMD3} Unterminated command lists, which are introduced with a left curly brace, can be continued on successive input lines without the use of the command continuation character. The command prompt changes to indicate that a multiline command list is being read, and it displays the current nesting level of the braces.
Boolean Type Data of type BOOL may assume the values TRUE and FALSE. Integer values also are generally accepted where BOOLs are called for, and when this occurs, zero (0) is taken to be FALSE; all other values are TRUE. String Types The type STR is used to represent variable-length character (text) data. Strings quoted with single and double quotes (' and ") represent literal text.
Compatibility Mode Pointers An LPTR in CM is usually a segment.o set . If a CM LPTR refers to data, then the segment number is the DST number of the addressed data segment, and the o set is the CM word o set from the beginning of the segment. If a CM LPTR refers to code, there are many possible interpretations of the segment number, and without additional information the LPTR is ambiguous. It is for this reason that the additional long pointer types exist. Their purpose is to di erentiate LPTRs.
Logical System Library Segments +-------+ | SYS 0 | | | +-------+ | SYS 1 | | | +-------+ | SYS 2 | | | +-------+ | | | | +-------+ | SYS n | | | +-------+ -----> --+ | | | | | +--> Logical Group Library Segments +--> | +-------+ | | GRP 0 | --+ | | +-------+ | GRP 1 | -----> | | +-------+ | GRP 2 | | | +-------+ Absolute CST Segments Absolute CSTX Segments +--------+ +--------+ | CST 1 | | CSTX 1 | | sys 0 | | prog 0 | +--------+ +--------+ | CST 2 | | CSTX 2 | | sys 5 | | prog 1 | +--------+ +-------
| GRP 3 | -----------------------+ | | +-------+ Note that the following pairs specify the same segment: (logical) PROG 1 (logical) SYS 1 (logical) GRP 3 <--> <--> <--> CSTX 2 (absolute) CST 4 (absolute) CST 75 (absolute) Native Mode Pointers An LPTR in NM is usually a sid.o set virtual address. As such, NM LPTRs are unambiguous, even without some context of use. However, it is still useful to tag NM long pointers to code by using a type that expresses the code's logical origin.
NMTOCMNODE, can be used to convert NM TRANS addresses to CM logical code pointers, which reveal the originating CM code locations. Refer to appendix C for a discussion of CM object code translation node points and breakpoints in translated CM code. Finally, the types CST and CSTX do not apply to NM code. The analogous NM type is simply an NM LPTR. Extended Address Types The extended addres (EADDR) type is available for cases where the 32-bit o set part of a long pointer isn't large enough.
Type Table Class Type INT S16 Signed 16-bit integer. INT U16 Unsigned 16-bit integer. INT S32 Signed 32-bit integer. INT U32 Unsigned 32-bit integer. INT S64 Signed 64-bit integer. BOOL BOOL Boolean. STR STR Variable-length character string. PTR SPTR Short pointer (o set). PTR Long pointer subclass. See table below. LONG EADDR EADDR Extended address. EADDR SADDR Secondary address. 2-10 User Interface FINAL TRIM SIZE : 7.5 in x 9.
Long Pointers Class Type LONG LPTR Long pointer Code pointers LONG CPTR LONG CPTR LCPTR LONG CPTR LCPTR PROG Program le LONG CPTR LCPTR GRP Program group library LONG CPTR LCPTR PUB Program account library LONG CPTR LCPTR LGRP Logon group library LONG CPTR LCPTR LPUB Logon account library LONG CPTR LCPTR SYS System library: SL (CM), NL (NM) LONG CPTR LCPTR USER User library (NM) LONG CPTR LCPTR TRANS Translated object code (NM) LONG CPTR ACPTR LONG CPTR
Literals Literals represent speci c values of one of the data types supported by System Debug. This section explains how to construct and interpret literals. Numeric Literals Numeric literals are a sequence of digits that are valid in the indicated radix. If the digits are not preceded by one of the base pre x characters, %, #, or $, the current input base is assumed.
#4294967295 #cmdebug > Pointer Literals Short pointer literals are represented by numeric literals. Essentially, this means that wherever a short pointer is required, a numeric literal that ts in 32 bits is accepted and is silently converted to the type SPTR. Long pointer literals of type LPTR are entered as a pair of (32-bit) numbers separated by a dot, forming the so-called dotted pair. Long pointer literals are entered in the form sid.o set .
Examples are: $c0002040 short pointer literal 3f.204c long pointer literal (SID=3f, o set=204c) String Literals String literals are formed by enclosing an arbitrary sequence of ASCII characters within either single quotes (') or double quotes ("). The same type of quote used to start the string (single or double) must be used to terminate it. For example, 'abc' and "abc" are valid string literals, but 'abc" is not.
Operators An operator denotes an operation to be performed on existing values to create a new value of a particular type. Operators are classi ed as arithmetic, Boolean, relational, address, and concatenation. A particular operator symbol may occur in more than one class of operators. For example, the symbol '+' is an arithmetic operator representing numeric addition, as well as string concatenation.
Operators Class Operator Arithmetic + * / MOD Boolean (addition) (subtraction) (multiplication) (division, quotient) (division, modulus) Operand Types Result Types INT, PTR INT, PTR AND (logical and) OR (logical or) NOT (logical not) BOOL, INT BOOL Bit BAND (bitwise and) BOR (bitwise or) BNOT (bitwise not) << (left shift bits) >> (right shift bits) INT, PTR INT, PTR Relational < <= = <> >= > Address [ ] (indirection) String + BOOL, INT, PTR, (less than) (less than or equal to) STR (e
0 <= i MOD j < j. The operation i MOD j, where j <= 0, is illegal. Unary minus is also allowed, but note that the - operator must precede any base pre x character for numeric literals. This means that -#32767 is allowed, but #-32767 is not. User Interface FINAL TRIM SIZE : 7.5 in x 9.
Arithmetic operands are restricted to the classes INT and PTR. In general, the types of the operands determine the result type of an arithmetic operation. In certain cases, one of the operands may be converted to another type before the operation is performed (see the following discussion). Arithmetic on the INT Class When both operands are of the INT class, the result of the arithmetic operation is also an INT.
the operation. The result is placed back in the same bits of the larger of the two operands, when they di er in size, which determines the result type. Note that if the two pointers are logical, their types must be identical due to the space ID check mentioned above. Boolean Operators The Boolean operators are AND, OR, and NOT. They perform logical functions on Boolean and integer operands and produce Boolean results. Integer operands are considered to be FALSE if they are 0, otherwise they represent TRUE.
The operation of the Boolean operators is de ned below. AND Logical and. The evaluation of the two Boolean operands produces a Boolean result according to the following table: a b a AND b T T F F T F T F T F F F Logical or. The evaluation of the two Boolean operands produces a Boolean result according to the following table: OR NOT a b a OR b T T F F T F T F T T T F Logical negation.
Bit Operators The bit operators are BNOT, BAND, BOR, << (shift left), and >> (shift right). They perform bitwise logical operations on their operands and return the result as the type of the largest operand type. BAND, BOR, and BNOT These operators perform the indicated logical operation bit-by-bit on their operand(s), which are treated as unsigned integers of the appropriate size.
The de nitions of the logical operations BAND, BOR, and BNOT, are the same as those for the Boolean operators AND, OR, and NOT, respectively, where the Boolean operands TRUE and FALSE are represented by the integer values 1 and 0, respectively. << and >> These operators shift the rst operand (the shift operand ) left or right by the number of bits speci ed by the second operand (the shift count ). The type of the result is the same as that of the rst operand.
1.200 < 2.30 0.0 = sptr(0) a.0 = sptr(0) invalid TRUE FALSE String comparisons are performed character by character, using the order de ned by the ASCII collating sequence. If the two strings are not the same length, but are equal up to the length of the shorter one, the shorter string is considered to be less than the other. Examples of string comparisons are listed below: "abc" < "abcde" "Big" <= "Small" "Hi Mom" = "Hi " + "Mom" TRUE TRUE TRUE User Interface FINAL TRIM SIZE : 7.5 in x 9.
Indirection Operator Square brackets ([ ]) are used as the indirection operator to return the value at the address they enclose. The syntax of the indirection operator is shown below. Please note that the non-bold square brackets in the following table are used to denote optional syntax, and are not meant to represent the literal square brackets (presented here in bold) of the indirection operator. Note [ [pre [ [pre [ [pre Indirection x ] [VIRT] virtaddr ] x ] REAL realaddr ] x ] SEC ldev.
[ ABS [o set ] ] [ DL [o set ] ] [ DB [o set ] ] [ Q [o set ] ] [ S [o set ] ] [ P [o set ] ] [ DST dst.o set ] [ CST cst.o set ] [ CSTX cstx.o set ] [ CMLOG lcptr ] (S16) 2 bytes (S16) 2 bytes (S16) 2 bytes (S16) 2 bytes (S16) 2 bytes (S16) 2 bytes (S16) 2 bytes (S16) 2 bytes (S16) 2 bytes (S16) 2 bytes User Interface FINAL TRIM SIZE : 7.5 in x 9.
Address speci cations for the indirection operator contain an address mode keyword . All address modes can be used in both NM and CM. The default address mode is VIRT (NM virtual address). Virtual addresses can be speci ed as short pointers, long pointers, or full NM logical code addresses. REAL mode addresses physical memory in the HP Precision Architecture machine. SEC mode addresses secondary storage.
Note Nesting of indirection operators uses a signi cant amount of stack space. A stack over ow could occur if the user's stack is small and a large number of nested indirection operators are used. User Interface FINAL TRIM SIZE : 7.5 in x 9.
Indirection Operator Examples: $nmdebug > w1 [r25] $400c6bd0 Contents of virtual address, contained in register R25. $nmdebug > w1 [400c6bd0] $3f Contents of virtual address, speci ed as a short pointer. $nmdebug > w1 [r25] $3f Indirect operator can be nested. $nmdebug > w1 [3dc.204c] $f4000 Contents of virtual address, speci ed as a long pointer. $nmdebug > w1 [HPFOPEN+2c] $6bcd3671 Contents of virtual address, speci ed as a NM logical address.
Indirection Operator Examples: $cmdebug > w1 [S-2] %0 Contents of S-2. $cmdebug > w1 [cmlog fopen+3] %213442 $nmdebug > w1 [cst 12.432] $6 Contents of the instruction found at CM logical code address FOPEN+3. Contents of code segment 12 o set 432. $nmdebug > w1 [cst %12.%432] $6 Same as above but from NM instead of CM. $nmdebug > w1 [virt CSTVA(%12.%432)] $6 Same as above. The CSTVA function is used to translate CST %12.%432 to its virtual address. Contents of Q-3.
Expressions Expressions are formulas for computing new values from a collection of operators and their operands. Operator precedence, in combination with the use of parentheses, determines the order of expression evaluation. When two or more operators of the same precedence occur at the same level of evaluation, they are evaluated from left to right. Expression operands may be literals, variables, functions, macros, and symbolic procedure names, each of which denotes a value of some type.
Operators of highest precedence are evaluated rst. For example, since * ranks above +, the following expressions are evaluated identically: (x + y * z) and (x + (y * z)) When operators in a sequence have equal precedence, evaluation proceeds from left to right. For example, each of the following expressions are evaluated identically: (x + y + z) and ((x + y) + z) Variables System Debug provides variables in which values may be stored for use as operands in expressions.
by the one in which they are created). To make local variable visible to called macros, the environment variable NONLOCALVARS must be TRUE. loc v1 200 loc s2 = "new string" Note that, although a macro cannot reference the value of a global variable once a local variable of the same name has been de ned, it may change the global value by using the VAR command instead of LOC.
of the machine registers de ned in the HP 3000 and HP Precision Architectures are available as environment variables. Subject to the context of use, some of these variables may be set by the user with the ENV command. The environment variables that correspond to the CM and NM machine registers are also accessible through the MR (modify register) and DR (display register) commands. All environment variables may be read (accessed) as expression operands.
Macros System Debug supports an extensive macro facility that allows users to de ne a sequence of commands that may be invoked either as a command or as a function in an expression. The MAC command is used to de ne a macro, as the following examples illustrate: $nmdebug > mac double (n=2) { return n * 2 } $nmdebug > mac formattable (entry=1) { . . .
parameters, and not as belonging to the expression for the rst parameter. Thus, parameters surrounding the entire command list are required when the rst parameter starts with a parenthesis: $nmdebug > formattable (current_entry + 1) * 2 $nmdebug > formattable ((current_entry + 1) * 2) /* wrong /* right Procedure Name: Symbols Symbolic procedure names, which represent logical code addresses of the type class LCPTR, may be used as operands in expressions.
CM search order: rst . . . PROG, GRP, PUB, LGRP, LPUB, SYS . . . last Each of the above search orders, which visit all currently loaded les, is known as a full search path. Note that this order is the same as that used by the CM and NM loaders in satisfying external references in program les and libraries, as speci ed in the LIB= and LIBLIST= parameters of the RUN command.
UNIVERSAL LOCAL NESTED PROCEDURES ALLPROC EXPORTSTUB DATAANY DATAUNIV DATALOCAL LSTPROC LSTEXPORTSTUB ANY Note Search Search Search Search Search Search Search Search Search Search Search Search exported procedures in the SOM symbols. nonexported procedures in the SOM symbols. nested procedures in the SOM symbols. local or exported procedures in the SOM symbols. local/exported/nested procedures in the SOM symbols. export stubs in the SOM symbols. exported or local data SOM symbols.
Manual (09740-90015) for a detailed discussion of export stubs and native mode procedure organization. Operand Lookup Precedence When expressions are scanned and parsed, they are ultimately broken down into a series of tokens, which represent either operators or operands.
Command Line Substitutions Command line scanning proceeds from left to right and is done in two phases. The rst preprocessing phase scans a command line for the vertical bar character (|), which introduces the following syntax: |expression[:fmtspec][~] When the command preprocessor recognizes the above syntax, it removes all the characters associated with it from the command line and replaces them with text representing the value of the expression.
substitution to be performed when the macro is executed, it should be escaped to prevent it from being performed when the macro is de ned. Command line substitution is subject to the current state of the CMDLINESUBS environment variable. If set to FALSE, command line substitutions are not performed. 2-40 User Interface FINAL TRIM SIZE : 7.5 in x 9.
Examples of command line substitutions are listed below: Assuming the following declarations have been entered, var var var var var grp acnt cmd const n = = = = = 'PUB' 'SYS' 'SYMOPEN' $20 $1 the following examples demonstrate command line substitutions: symopen myfile.|grp~.|acnt becomes symopen myfile.PUB.SYS while while n < |const:"#" do {cmd1;cmd2;cmd3} becomes while n < #32 do {cmd1;cmd2;cmd3} which saves many searches for the constant.
Aliases Aliases may be established for command names, macros, and even other aliases. By de ning an alias for one of these objects, one is merely specifying an alternative name by which the aliased object may be referred. Note that this de nes an alternative , rather than a change, and a ects no other aspect of the thing being aliased. For instance, the alias has no e ect on the parameters of an aliased command. Once established, the alias name may be used wherever the original name is valid.
Error Handling System Debug employs an error stack for error messages and maintains the environment variable ERROR for detection of errors by control commands. When an internal error is detected, appropriate error messages are pushed onto the error stack and the variable ERROR is set to the error number of the last error generated. While the highest-level error messages are typically displayed on the user's terminal, lower-level (intermediate) errors are usually pushed silently onto the error stack.
Although the IGNORE command prevents abnormal command termination, it does not automatically prevent generated errors from being displayed. The QUIET option of the IGNORE command suppresses the error messages as well. While the IGNORE command a ects just the following command or command list, the environment variable AUTOIGNORE may be set to TRUE to cause errors for all commands to be ignored and is equivalent to entering an IGNORE LOUD command before each one.
Note There is only one Control-Y handler per session. When Debug is entered, it takes ownership of the Control-Y handler. When Debug is exited, it returns the Control-Y handler to the process that owned it when Debug was entered. If other processes are active in a session while Debug is being used, it is possible for one of the other process to steal Control-Y ownership from Debug.
Debug Input/Output: The System Console Under normal circumstances, Debug Input/Output is typically directed to the user's terminal. However, during the following occasions, Debug I/O is redirected to the MPE XL system console: During the bootstrap process (until the system is up), all Debug I/O is directed to the system console. All system process debugging uses the system console. All job debugging uses the system console. The environment variable JOB_DEBUG allows jobs to enter Debug.
Automatic DBUGINIT Files Debug supports the automatic execution of commands within special initialization les named DBUGINIT. These les must be in the form of a USE le as described by the USE command. Debug rst tests for an initialization le (DBUGINIT) in the same group Uand account as the program that is being debugged. Next, Debug looks for an initialization le in the user's logon group and account (if di erent).
FINAL TRIM SIZE : 7.5 in x 9.
3 System Debug Interface Commands and Intrinsics Debug may be invoked directly through an integrated set of commands and intrinsics. All MPE V intrinsics are supported. In addition, several new intrinsics have been added to enhance the functionality of MPE XL and take advantage of the new debugger. The commands and intrinsics allow you to enter the debugger from three di erent paths: Directly from a command interpreter (CI) command in a session. From a program through an intrinsic call.
Debug Interfaces Debug may be invoked directly or indirectly: directly from the CI of a session, or from an intrinsic call within a program; indirectly through arming a call to Debug in the case of a process abort. The MPE XL CI commands are identical to the MPE V commands, with the exception that the user may specify an optional command string to be passed to Debug when it is invoked.
Note that no HPSTACKDUMP intrinsic is present. It is intended that the user call HPDEBUG to produce a custom stackdump when desired. System Debug Interface Commands and Intrinsics FINAL TRIM SIZE : 7.5 in x 9.
Direct Calls If you want to invoke Debug from the CI of the current session, use the DEBUG command. This command is implemented through intrinsics. The CI simply calls the DEBUG or HPDEBUG intrinsic. Note that this command requires privileged mode (PM) capability. DEBUG DEBUG/XL A.00.00 DEBUG Intrinsic at: $1 ($25) nmdebug > a.00702d74 hxdebug+$24 The following example shows a call to Debug with a command to display the registers and then return to the CI. :DEBUG DR;C DEBUG/XL A.00.
that the user will be viewing the compatibility mode environment; this is called CM Debug. System Debug Interface Commands and Intrinsics FINAL TRIM SIZE : 7.5 in x 9.
Process Abort Calls You may arm a call to Debug which occurs in the event of a process abort. The call may be armed by: The SETDUMP command. The SETDUMP intrinsic. The HPSETDUMP intrinsic. Once a SETDUMP command or intrinsic has been issued, all new processes created are a ected. Both the setdump attribute and the DEBUG command string are inherited by new child processes. This feature may be disarmed by the following: The RESETDUMP command. The RESETDUMP intrinsic. The HPRESETDUMP intrinsic.
The following example is the same as above except that the code was compiled with a native mode compiler. :run nmbomb **** Integer divide by zero (TRAPS 30) ABORT: NMBOMB.DEMO.TELESUP **** PROCESS ABORT TRACE **** NM PROG 191.00006b20 test_arith_trap+$28 PROGRAM TERMINATED IN AN ERROR STATE. (CIERR 976) : If the SETDUMP command (or intrinsic) is invoked before running this program, a full dual stack trace and a register dump is produced when the process aborts.
PID1=018a=00c5(W) PID2=0000=0000(W) PID3=0000=0000(W) PID4=0000=0000(W) RCTR=00000000 ISR=00000191 IOR=00000000 IIR=b3202000 IVA=000aa800 ITMR=ad40a0fd EIEM=ffffffff EIRR=00000000 CCR=0080 **** PROCESS ABORT INTERACTIVE DEBUG FACILITY **** $2 ($22) nmdebug > Note that in the above example, the user is left in Debug. At this point, the user is able to enter any Debug command. The process may even be resumed (see the CONTINUE command in chapter 4).
It is possible to specify what action should be taken when a process aborts by providing a list of commands for Debug to execute. In the following example, a simple message is printed if the process aborts. :setdump ;debug="wl 'Oh my, our process is aborting !!!'" :run cmbomb **** PROGRAM ERROR #4 :INTEGER DIVIDE BY ZERO ABORT: CMBOMB.DEMO.TELESUP **** PROCESS ABORT STACKDUMP FACILITY **** Oh my, our process is aborting !!! PROGRAM TERMINATED IN AN ERROR STATE.
:DEBUG Command PRIVILEGED MODE Enters Debug from the CI. Syntax :DEBUG [commands] Parameters commands A series of Debug commands to be executed before the Debug prompt is displayed. The string may be up to 255 characters long. All text on the command line following :DEBUG is passed unaltered to Debug. Note that the commands should not be quoted. Discussion The :DEBUG command enters Debug directly from the session CI.
:DEBUG Command Example The example below calls Debug to produce a stack trace and return to the CI. :debug trace;c DEBUG XL A.00.00 HPDEBUG Intrinsic at: a.006b4104 hxdebug+$130 PC=a.006b4104 hxdebug+$130 * 0) SP=40221c58 RP=a.006b8e7c exec_cmd+$73c 1) SP=40221ac8 RP=a.006ba41c try_exec_cmd+$ac 2) SP=40221a78 RP=a.006b8638 command_interpret+$274 3) SP=40221620 RP=a.006bae5c xeqcommand+$1d0 4) SP=40221210 RP=a.006b7604 ?xeqcommand+$8 export stub: 7d.000068dc main_ci+$94 5) SP=40221178 RP=7d.
:RESETDUMP Command Disarms the Debug call that is made during abnormal process termination. Syntax :RESETDUMP Discussion The :RESETDUMP command disarms the Debug call which is made during abnormal process termination. If the setdump feature was not previously armed by one of the Setdump intrinsics or commands, this command has no e ect. The command a ects all processes subsequently created under the current session or job. If performed in BREAK mode, existing processes are not a ected by the command.
:SETDUMP Command :SETDUMP Command Arms the Debug call that is made during abnormal process termination. Syntax :SETDUMP [DB [,ST [,QS] ] [;ASCII] [;DEBUG="commands"] ] Parameters commands DB, ST, QS, ASCII A quoted string of system Debug commands, up to 255 characters long. If not speci ed, this parameter defaults to a command string that produces a dual mode stack trace and a register dump. These parameters are provided for compatibility with MPE V. If speci ed, they are ignored.
:SETDUMP Command The process entered the abort code through a native mode interrupt. Such aborts are typically caused by arithmetic and code-related traps (see the XARITRAP and XCODETRAP intrinsics). CM programs usually fail these tests. Note Once Debug accepts interactive input, you can enter any Debug command. You may choose to resume the process or have it terminate (refer to the CONTINUE command in chapter 4).
DEBUG Intrinsic DEBUG Intrinsic Enters Debug. Callable from: NM, CM Syntax DEBUG; Discussion The DEBUG intrinsic calls Debug from an interactive program. The intrinsic call acts as a hard-coded breakpoint. Execution of the calling program is halted, and the Debug prompt is displayed. If the call is made from a batch program, it is ignored. Refer to the MPE XL Intrinsics Reference Manual (32650-90028) for additional discussion of this intrinsic.
HPDEBUG Intrinsic Enters Debug and optionally executes a speci ed set of system Debug commands. Callable from: NM Syntax HPDEBUG (status, cmdstr [,itemnum, item] [...]); Parameters status 32-bit signed integer by reference (optional) cmdstr The status returned by the HPDEBUG intrinsic call. The variable is a record containing two 16-bit elds, with the error number in the high-order 16 bits and the intrinsic subsystem number in the low-order 16 bits.
HPDEBUG Intrinsic over any previously speci ed duplicate itemnum . The following discussion lists the optional itemnum/item parameter pairs available to you. itemnum =1 Output le number (I32) Passes an item value specifying an opened le number to which DEBUG output is sent. The le must be a writeable ASCII le. The item value 1 is valid and speci es that $STDLIST will be used. Default: Use terminal LDEV for sessions and $STDLIST for jobs.
HPDEBUG Intrinsic Condition Codes This intrinsic does not return meaningful condition code values. Status information is returned in the optional status parameter described above. Example The following example is an excerpt from a Pascal program which illustrates a call to the HPDEBUG intrinsic. The commands passed to Debug produce output similar to that of the STACKDUMP intrinsic.
HPRESETDUMP Intrinsic HPRESETDUMP Intrinsic Disarms Debug call which is made during abnormal process terminations. Callable from: NM Syntax HPRESETDUMP (status); Parameters status 32-bit signed integer (optional) The status returned by the HPRESETDUMP intrinsic call. The variable is a record containing two 16-bit elds, with the error number in the high-order 16 bits and the intrinsic subsystem number in the low-order 16 bits.
HPRESETDUMP Intrinsic Example The following example is a code fragment from a Pascal program. It declares HPRESETDUMP as an intrinsic and then calls it. PROCEDURE call_hpresetdump; VAR status : integer; procedure HPRESETDUMP; intrinsic; BEGIN HPRESETDUMP(status); IF (status <> 0) THEN error_routine(status, 'HPRESETDUMP'); END; 3-20 System Debug Interface Commands and Intrinsics FINAL TRIM SIZE : 7.5 in x 9.
HPSETDUMP Intrinsic HPSETDUMP Intrinsic Arms a call to Debug which takes place during abnormal process termination. Callable from: NM Syntax HPSETDUMP (status, cmdstr); Parameters status 32-bit signed integer (optional) cmdstr The status returned by the HPSETDUMP intrinsic call. The variable is a record containing two 16-bit elds, with the error number in the high-order 16 bits and the intrinsic subsystem number in the low-order 16-bits.
HPSETDUMP Intrinsic Debug executes the commands in cmdstr and sends the output to the standard list le ($STDLIST). Any commands which require input generate an error message. If the process that aborts is being run from a job, the process terminates after executing the command string.
HPSETDUMP Intrinsic Example Assume that a le called ABORTCMD contains a set of Debug commands to be used when a process abort occurs.
RESETDUMP Intrinsic Disarms the Debug call that is made during abnormal process termination Callable from: NM, CM Syntax RESETDUMP; Discussion The RESETDUMP intrinsic disarms the Debug call that is made during abnormal process termination. If the Setdump feature was not previously armed by one of the Setdump intrinsics or commands, this intrinsic has no e ect. Only the current process is a ected. This intrinsic performs a function identical to the HPRESETDUMP intrinsic.
RESETDUMP Intrinsic Example The following example is a code fragment from a Pascal program. It declares RESETDUMP as an intrinsic and then calls it. PROCEDURE call_resetdump; procedure RESETDUMP; intrinsic; BEGIN RESETDUMP; END; System Debug Interface Commands and Intrinsics FINAL TRIM SIZE : 7.5 in x 9.
SETDUMP Intrinsic Arms the Debug call that is made during abnormal process termination. Callable from: NM, CM Syntax SETDUMP ( ags ); Parameters ags 16-bit unsigned integer (required) This parameter is provided for compatibility with MPE V. It is required, but is ignored. Discussion The SETDUMP intrinsic arms a call to Debug which is made during abnormal process terminations (aborts).
SETDUMP Intrinsic The process entered the abort code through a native mode interrupt. Such aborts are typically caused by arithmetic and code-related traps (see the XARITRAP and XCODETRAP intrinsics). CM programs usually fail these tests. Note Once Debug accepts interactive input, the user is free to enter any Debug command. The user may choose to resume the process or have it terminate (refer to the CONTINUE command in chapter 4).
SETDUMP Intrinsic procedure SETDUMP; intrinsic; BEGIN SETDUMP( flags ); . . . END. 3-28 System Debug Interface Commands and Intrinsics FINAL TRIM SIZE : 7.5 in x 9.
STACKDUMP Intrinsic STACKDUMP Intrinsic Produces a full stack trace. Callable from: NM, CM Syntax STACKDUMP ( lename, idnumber, ags, selec); Parameters lename idnumber Byte array (optional) An array of characters giving the le name of a new output le to be opened. The name should be terminated by any nonalphanumeric character except a slash (/) or a period (.). The same restrictions for the formaldesignator parameter in the FOPEN intrinsic apply to this parameter.
STACKDUMP Intrinsic Discussion The STACKDUMP intrinsic calls Debug to send a stack trace to the standard list le ($STDLIST) or to a new le named in the lename parameter. Control then returns to the calling procedure. Refer to the MPE XL Intrinsics Reference Manual (32650-90028) for additional discussion of this intrinsic. 3-30 System Debug Interface Commands and Intrinsics FINAL TRIM SIZE : 7.5 in x 9.
STACKDUMP Intrinsic Condition Codes CCE CCG Request granted. Request denied. An invalid address for the location of the lename parameter was detected. Request denied. File system error occurred during opening or closing of the le. The speci c le system error number is returned in the idnumber described above. CCL Examples The following example is a code fragment from a Pascal program. First, it prints out the error status and intrinsic name that were passed as parameters.
STACKDUMP Intrinsic BEGIN prompt('Print stack trace to which file: '); readln(fname); fname := fname + ' '; { Add terminator character } stackdump(fname); END; 3-32 System Debug Interface Commands and Intrinsics FINAL TRIM SIZE : 7.5 in x 9.
STACKDUMP' Intrinsic STACKDUMP' Intrinsic Writes a full stack trace to a previously opened le. Callable from: CM Syntax STACKDUMP' ( lename, idnumber, ags, selec); Parameters lename idnumber Byte array (required) The rst byte of this array contains the le number of a previously opened le. The le is used as the output le. The le must have a record length between 32 and 256 CM words, and write access must be allowed for the le.
STACKDUMP' Intrinsic Discussion The STACKDUMP' intrinsic writes a full dual stack trace to a previously opened le. The le number of this le is passed to the intrinsic in the rst byte of the lename parameter. This intrinsic exists only in the compatibility mode library SL.PUB.SYS. No native mode to compatibility mode switch stub is provided. Condition Codes CCE CCG Request granted. Request denied. One of two possible problems causes this condition code.
STACKDUMP' Intrinsic VAR kludge_var : kludge_record; procedure STACKDUMP_PRIME $alias 'stackdump'''$; intrinsic; BEGIN kludge_var.byte_1 := fnum; stackdump_prime(kludge_var.pac); END; { This assumes that the value of FNUM } { is no bigger than 8 bits. This is } { a valid assumption. } { Call STACKDUMP' to produce the { stack trace. System Debug Interface Commands and Intrinsics FINAL TRIM SIZE : 7.5 in x 9.
FINAL TRIM SIZE : 7.5 in x 9.
4 System Debug Command Specifications Speci cations for the System Debug commands are presented in this chapter in alphabetical order. Window command speci cations are presented in chapter 7, \System Debug Window Commands." System Debug tools share the same command set. A few commands, however, are inappropriate in either DAT or Debug. These commands are clearly identi ed as \DAT only" or \Debug only" on the top of the page that de nes the command.
DAT only The following DAT commands cannot be used in Debug: CLOSEDUMP Closes a dump le DEBUG Enters Debug; used to debug DAT DPIB Displays a portion of the Process Information Block DPTREE Displays the process tree DUMPINFO Displays dump le information GETDUMP Reads in a dump tape to create a dump le OPENDUMP Opens a dump le PURGEDUMP Purges a dump le 4-2 System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
: : The CI command - Access to the MPE XL command interpreter (CI). Syntax : [ command ] The HPCICOMMAND intrinsic is used to access the MPE XL command interpreter (CI). Parameters command The command to execute via the CI. If no command is given, a new version (new process) of the CI is created. Examples $nmdebug > :showtime WED, JAN 8, 1986, 1:32 PM The above is typical use of the CI command. $nmdebug > :file t;dev=tape See the note below.
: Caution 4-4 The output format of all System Debug commands is subject to change without notice. Programs that are developed to postprocess System Debug output should not depend on the exact format (spacing, alignment, number of lines, uppercase or lowercase, or spelling) of any System Debug command output. System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
= = The calculator command. Calculates the value of an expression and displays the result in the speci ed base. Syntax = expression [base] Parameters expression base The expression to evaluate. The desired representation mode for output values: % or octal Octal representation # or decimal Decimal representation $ or hexadecimal Hexadecimal representation ASCII ASCII representation This parameter can be abbreviated to a single character. If omitted, the current output base is used.
= %3 Negative values that follow immediately after an operator (+, -, *, /) must be placed within parentheses. %cmdebug > = 'ABCD' 'ABCD' %cmdebug > = 'ABCD',h $41424344 In the second example, the string is coerced into a hexadecimal value. 4-6 System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
= %cmdebug > = [dst 12.100] + [db+4], $ $4820 The sum of the contents of data segment 12.100 plus the contents of DB+4, displayed in hexadecimal. %cmdebug > = fopen SYS %22.4774 What is the start address of the CM procedure FOPEN? The address is returned as logical code address. %cmdebug > = ?fopen SYS %22.5000 What is the entry point address of the CM procedure FOPEN? The question mark is used (CM) to indicate entry point, rather than start address.
= SYS $a.$217884 What is the address of the export stub for NM procedure sendio? Note the di erent use of "?" in CM and NM. In CM "?" is used for entry address, while in NM "?" is used for export stub. $nmdebug > = strup("super") + 'duper' "SUPERduper" The calculator accepts string expressions as well as numeric expressions. Limitations, Restrictions none Caution 4-8 The output format of all System Debug commands is subject to change without notice.
ABORT ABORT Aborts/terminates the current System Debug process. Syntax ABORT Parameters none Examples %cmdebug > ABORT END OF PROGRAM : Limitations, Restrictions If Debug is entered using the DEBUG command at the CI, the ABORT command causes the current session to be logged o . Use CONTINUE to exit from Debug in this case. If the process holds a SIR (system internal resource) or is \critical," you are not allowed to execute this command.
ALIAS De nes an alias (alternative) name for a command or macro. Syntax ALIAS name command Aliases are useful for de ning a new (shorter or longer) name for a command name or macro name. Aliases have higher precedence than command or macro names, and they can therefore be used to rede ne (or conceal) commands or macros. When a new alias rede nes a command, a warning is generated, indicating that a command has been hidden. User de ned aliases, created with the ALIAS command, are classi ed as user aliases.
ALIAS The above example assumes that a macro called printtableentrylength has been de ned, and a typical macro invocation is displayed. Since the macro name is long, and di cult to enter, an alias named TBL is de ned. The shorter alias name can now be used in place of the longer macro name. $nmdebug > alias loop foreach $nmdebug > loop j '1 2 3' {wl j} $1 $2 $3 Create an alias named LOOP that is the same as the FOREACH command. System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
ALIAS $nmdat > macro concealexit { wl "type EXIT to exit."} $nmdat > alias e concealexit A command is hidden by this new alias. (warning #71) $nmdat > e type EXIT to exit. In this example, the single character command e (for EXIT) is protected by an alias, that conceals (hides) the original command. Note that a warning message is generated whenever a command name is concealed by an alias de nition.
ALIAS Limitations, Restrictions A maximum of 60 alias de nitions are currently supported. The alias command (the replacement name) is limited to command and macro names; no parameters or complex command lists are allowed. Refer to the showtime example above. The ALIASD command cannot be aliased. No testing is performed for invalid characters within the name or command parameters. Caution The output format of all System Debug commands is subject to change without notice.
ALIASD[EL] Deletes the speci ed alias(es). Syntax ALIASD[EL] pattern [group] Parameters pattern The alias name(s) to be deleted. This parameter can be speci ed with wildcards or with a full regular expression. Refer to appendix A for additional information about pattern matching and regular expressions. The following wildcards are supported: @ Matches any character(s). ? Matches any alphabetic character. # Matches any numeric character.
ALIASD[EL] U[SER] User-de ned aliases P[REDEFINED] Prede ned aliases A[LL] Both user-de ned and prede ned aliases By default, only USER aliases are deleted. In order to delete a prede ned alias, the group PREDEFINED or ALL must be speci ed. Examples $nmdebug > aliasd loop $nmdebug > Remove the user alias loop from the alias table. $nmdebug > aliasd s@ pre $nmdebug > Delete all prede ned aliases that begin with the letter \s". Related commands: ALIAS, ALIASINIT, ALIASLIST.
ALIASINIT Restores the prede ned aliases, in case they have been deleted. Syntax ALIASINIT For a full listing of all prede ned aliases, see the example below.
ALIASINIT alias maclist alias maplist alias proclist alias setalias alias setenv alias seterr alias setloc alias setmac alias setvar alias showalias alias showb alias showcmd alias showdatab alias showenv alias showerr alias showfunc alias showloc alias showmac alias showmap alias showset alias showsym alias showvar alias symfiles alias symlist alias trace alias vardel alias varlist $nmdebug > macl mapl procl alias env err loc mac var aliasl bl cmdl databl envl errl funcl locl macl mapl set syml varl symf
ALIASINIT Limitations, Restrictions A maximum of 60 alias de nitions are currently supported. Therefore, the ALIASINIT command may not be able to re-establish all of the prede ned aliases if the number of current user aliases is already close to the limit. Caution 4-18 The output format of all System Debug commands is subject to change without notice.
ALIASL[IST] ALIASL[IST] Lists the currently de ned aliases. Syntax ALIAS[LIST] [pattern] [group] Parameters pattern The alias name(s) to be displayed. This parameter can be speci ed with wildcards or with a full regular expression. Refer to appendix A for additional information about pattern matching and regular expressions. The following wildcards are supported: @ Matches any character(s). ? Matches any alphabetic character. # Matches any numeric character.
ALIASL[IST] group The type of aliases that are to be listed. Aliases are classi ed as USER or PREDEFINED aliases. ALL refers to both types of alias. U[SER] User-de ned aliases P[REDEFINED] Prede ned aliases A[LL] Both user-de ned and prede ned aliases By default, ALL aliases are deleted. In order to restrict the listing to a single group of aliases, the group USER or PREDEFINED must be speci ed.
ALIASL[IST] Limitations, Restrictions none Caution The output format of all System Debug commands is subject to change without notice. Programs that are developed to postprocess System Debug output should not depend on the exact format (spacing, alignment, number of lines, uppercase or lowercase, or spelling) of any System Debug command output. System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
B (break) Debug only Privileged Mode: BA, BAX, BS Break. Sets a breakpoint.
B (break) If a breakpoint is set in CM code that has been translated by the Object Code Translator (OCT), Debug automatically sets a NM breakpoint in the closest previous corresponding translated code node point. If more than one CM breakpoint is set within a given node, only one NM breakpoint is set; however, a counter is incremented so the number of corresponding CM breakpoints can be tracked. If a NM breakpoint is set in translated code, no corresponding CM emulated breakpoint is set.
B (break) Parameters logaddr A full logical code address (LCPTR) speci es three necessary items: The logical code le (PROG, GRP, SYS,, and so on) NM: the virtual space ID number (SID) CM: the logical segment number NM: the virtual byte o set within the space CM: the word o set within the code segment Logical code addresses can be speci ed in various levels of detail: As a full logical code pointer (LCPTR): B procname+20 procedure name lookups return LCPTRs B pw+4 prede ned ENV variables of type LCPTR ex
B (break) For CM, the current executing logical segment number and the current executing logical le are used to build a LCPTR. The search path used for procedure name lookups is based on the command su x letter: B Full search path: NM: PROG, GRP, PUB, USER(s), SYS CM: PROG, GRP, PUB, LGRP, LPUB, SYS BG Search GRP, the group library. BP Search PUB, the account library. BLG Search LGRP, the logon group library. BLP Search LPUB, the logon account library. BS Search SYS, the system library.
B (break) fname The le name of the NM user library. Since multiple NM libraries can be bound with the XL= option on a RUN command, :run nmprog; xl=lib1,lib2.testgrp,lib3 it is necessary to specify the desired NM USER library. For example, BU lib1 204c BU lib2.testgrp test20+1c0 virtaddr If the le name is not fully quali ed, the following defaults are used: Default account: the account of the program le. Default group: the group of the program le. The virtual address of NM code.
B (break) The search path used for procedure name lookups is based on the command su x letter: BA GRP, PUB, LGRP, LPUB, SYS pin j@ count loud cmdlist BAX PROG The process identi cation number (PIN) of the process for which the breakpoint is to be set. If omitted, the breakpoint is set for the current process. The character \@" can be used to set a global breakpoint at which all processes stop.
B (break) NM Code Examples $nmdebug nm PROG parm nm GRP nm USER nm SYS cm SYS > loadinfo GRADES.DEMO.TELESUP = #0 info = "" XL.DEMO.TELESUP XL.PUB.SYS NL.PUB.SYS SL.PUB.SYS SID = $115 SID = $118 SID = $f4 SID = $a Show the list of loaded les and the space into which they are loaded. $nmdebug > b PROGRAM+270 added: NM [1] PROG 115.00006a8c PROGRAM+$270 Set a breakpoint at the procedure PROGRAM plus an o set of $270. This corresponds to a statement in the outer block of the program being debugged.
B (break) Set a breakpoint at the nested procedure highscore that is contained in the level 1 procedure processstudent. The NMADDR function is used to specify the breakpoint address since the expression parent proc .nested proc would not have been recognized by the expression evaluator (a .b implies space .o set , for example, a long pointer). This breakpoint is a temporary breakpoint, which is automatically deleted after it is encountered. T[4] indicates a temporary breakpoint with index number 4.
B (break) $nmdebug > b average added: NM [5] GRP 118.00015c88 average $nmdebug > bg average+4 added: NM [6] GRP 118.00015c8c average+$4 $nmdebug > b grp(average)+8 added: NM [7] GRP 118.00015c90 average+$8 $nmdebug > bs average Missing or invalid logical code address. (error #1741) Set a breakpoint at the procedure average. Notice that the routine was found in the group (GRP) library.
B (break) $28: VADDR= 115.15c74 $28: A pointer was referenced that contained a virtual address outside of the bounds of an object. The above example starts by showing that Debug has stopped in the group library in the average procedure. The B command was used to set a breakpoint at the address speci ed in r2, and this caused the command to fail. Recall that the B command assumes that the breakpoint is to be set in the program le when only an o set is provided.
B (break) $nmdebug > bg r2 added: NM [3] GRP 118.00015c74 ?average+$8 $nmdebug > bd 3 deleted: NM [3] GRP 118.00015c74 ?average+$8 The BG command is used to set a breakpoint at the o set indicated by the contents of general register 2. This command assumes the breakpoint is to be set in the group library. The SID for the group library ($118) is retrieved, and a long pointer is generated by performing a STOLOG conversion. The resulting address ($118.
B (break) $nmdebug > bs ?FREAD,#100,q,{wl "Read another 100 records";c} added: NM |10| SYS a.0074aa34 FREAD Set a breakpoint at the FREAD intrinsic. Every #100 times the routine is called, stop and print out a message. The QUIET option is speci ed so this operation produces no extra terminal output. The vertical bars in the breakpoint notation indicates that the process does not stop the next time the breakpoint is encountered, since the count is not yet exhausted.
B (break) $nmdebug > bs trap_handler:@,,,{trace ,ism} added: NM @[1] SYS a.00668684 trap_handler Set a system-wide breakpoint in the trap handler. This routine is in the system NL. When the breakpoint is hit, perform a stack trace. The \@" indicates that the breakpoint is a global breakpoint. $nmdebug > b pw+4 added: NM [11] PROG $115.00006984 initstudentrecord+14 Break at the address speci ed by adding 4 to the address of the rst line in the program window.
B (break) CM Code Examples %cmdebug cm PROG parm cm GRP cm SYS nm SYS > loadinfo GRADES.DEMOCM.TELESUP = #0 info = "" SL.DEMOCM.TELESUP SL.PUB.SYS NL.PUB.SYS SID = $a Show the list of all currently loaded les. %cmdebug > b ?processstudent added: CM [1] PROG % 0.1665 ?PROCESSSTUDENT Set a breakpoint at the entry point (indicated by the ? character) of the procedure PROCESSSTUDENT .
B (break) by looking at the statement map produced by the Pascal compiler. (All language compilers produce similar maps.) Unfortunately, information about nested procedure names and size is not available for CM programs. %cmdebug > b ob'+40,-3 added: CM T|5| PROG % 0.40 OB'+%40 Set a breakpoint %40 words into the procedure ob' (the outer block of the Pascal program being run). The third time the breakpoint is encountered, stop in Debug and delete the breakpoint.
B (break) %cmdebug > b ?average added: CM [6] GRP % 0.13 ?AVERAGE %cmdebug > bg ?average+4 added: CM [7] GRP % 0.17 AVERAGE+%17 %cmdebug > b grp(0.20) added: CM [10] GRP % 0.20 AVERAGE+%20 Set a breakpoint at the entry point to the procedure average. Notice that the procedure was found in the group (GRP) library. The B command starts searching for symbol names in the program le and continues through all of the loaded library les until a match is found.
B (break) CM CM [10] GRP % 0.20 AVERAGE+%20 SEG' (CST 112) |11| SYS % 27.4727 ?FWRITE SUSER1 (CST 30) [QUIET] count: 0/144 cmdlist: {wl "Another #100 records written";c} Corresponding NM bp = 1 Now list the breakpoints that were set in the above examples. 4-38 System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
B (break) Translated Code Examples %cmdebug > bg ?average added: CM [1] GRP % 0.13 ?AVERAGE NM [1] TRANS 3d.0016962c SEG':?AVERAGE Set a breakpoint in the group library at the entry point to the AVERAGE procedure. The group library and program le have been translated by the Object Code Translator (OCT). Debug determined that the code is translated and thus set a CM breakpoint in the emulated code and a NM breakpoint in the translated code.
B (break) typed in is converted to a logical address. In this example, the long to logical (LTOLOG) routine is used by the debugger. Space 20 does not correspond to any of the native mode libraries or the program le. It is, however, found to correspond to a translated body of CM code (in this instance, the FREAD intrinsic). Note that the corresponding CM emulator breakpoint is not set by Debug. 4-40 System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
B (break) %cmdebug > bl CM [1] GRP % 0.13 Corresponding NM bp CM [2] PROG % 0.1665 Corresponding NM bp CM [3] PROG % 0.1672 Corresponding NM bp CM [4] PROG % 0.1673 Corresponding NM bp ?AVERAGE = 1 ?PROCESSSTUDENT = 2 PROCESSSTUDENT+%265 = 3 PROCESSSTUDENT+%266 = 3 SEG' (CST 112) SEG' (CSTX 1) SEG' (CSTX 1) SEG' (CSTX 1) %cmdebug > nm $nmdebug > bl NM [1] TRANS 3d.0016962c SEG':?AVERAGE CM Ref count = 1 NM [2] TRANS 48.0000a610 SEG':?PROCESSSTUDENT CM Ref count = 1 NM [3] TRANS 48.
B (break) Limitations, Restrictions You cannot set a breakpoint on a gateway page. If breakpoints are set for a process other than the current PIN, Debug has no knowledge of the procedure names for the speci ed process unless the speci ed process is running the exact same program le. Having breakpoints set causes slight process overhead. Arming a global breakpoint causes all processes to su er this overhead. Breakpoints are ignored in the following circumstances: While on the ICS. While disabled.
BD BD Debug only Breakpoint delete. Deletes a breakpoint entry speci ed by index number. Syntax BD [number | @ [: pin | @] ] The BD command is used to delete process-local breakpoints and global (system-wide) breakpoints. Only users with privileged mode (PM) capability are allowed to view and delete global breakpoints. Users without PM capability may only specify PINs that are descendant processes (any generation) of the current PIN.
BD NO any text pin j@ No, do not remove the breakpoint. If any other response is given, the default value NO is assumed. The PIN for the process whose breakpoint entry is to be deleted. Typically this is omitted, and pin defaults to the current process. The character \@" can be used to specify that a global breakpoint is to be deleted. 4-44 System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
BD Examples $nmdebug > bl NM [1] PROG 115.00006a8c PROGRAM+$270 NM [2] PROG 115.00006a90 PROGRAM+$274 NM [3] PROG 115.00005d24 processstudent cmdlist: {wl "Processing #" r26:"d";c} NM T[4] PROG 115.00005b50 processstudent.highscore NM [5] GRP 118.00015c88 average NM [6] GRP 118.00015c8c average+$4 NM [7] GRP 118.00015c90 average+$8 NM [8] USER f4.0012f2b8 p_heap:P_INIT_HEAP NM [9] USER f4.001f9188 U_INIT_TRAPS NM |10| SYS a.
BD Display each breakpoint (local rst, then global), then ask the user if the breakpoint should be deleted. In this example, process-local breakpoints numbers 3, 6, 7, 8, and 9 are removed. $nmdebug > bl NM [1] PROG 115.00006a8c PROGRAM+$270 NM T[4] PROG 115.00005b50 processstudent.highscore NM [5] GRP 118.00015c88 average NM |10| SYS a.0074aa34 FREAD [QUIET] count: 0/64 cmdlist: {wl "Read another 100 records";c} NM @[1] SYS a.
BD Translated Code Examples %cmdebug > bl CM [1] GRP % 0.13 Corresponding NM bp CM [2] PROG % 0.1665 Corresponding NM bp CM [3] PROG % 0.1672 Corresponding NM bp CM [4] PROG % 0.1673 Corresponding NM bp ?AVERAGE = 1 ?PROCESSSTUDENT = 2 PROCESSSTUDENT+%265 = 3 PROCESSSTUDENT+%266 = 3 SEG' (CST 112) SEG' (CSTX 1) SEG' (CSTX 1) SEG' (CSTX 1) %cmdebug > nm $nmdebug > bl NM [1] TRANS 3d.0016962c SEG':?AVERAGE CM Ref count = 1 NM [2] TRANS 48.
BD deleted: NM [2] TRANS 48.0000a610 SEG':?PROCESSSTUDENT CM Ref count = 0 deleted: CM [2] PROG % 0.1665 ?PROCESSSTUDENT Delete CM breakpoint number 2. The corresponding NM breakpoint is also deleted. %cmdebug > bd deleted: NM CM Ref deleted: CM 3 [3] TRANS 48.0000a66c SEG':PROCESSSTUDENT+%265 count = 1 [3] PROG % 0.1672 PROCESSSTUDENT+%265 Delete CM breakpoint number 3. In this example, two CM breakpoints are mapped to one NM breakpoint (indicated by the reference counter).
BD exact format (spacing, alignment, number of lines, uppercase or lowercase, or spelling) of any System Debug command output. System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
BL Debug only Breakpoint list. Lists breakpoint entries, speci ed by index number. Syntax BL [number | @ [: pin | @] ] The BL command is used to list process-local and global (system-wide) breakpoints. Global breakpoints are always displayed after the process-local breakpoints. Users without privileged mode (PM) capability are shown only the list of process-local breakpoints. Users without PM capability may only specify PINs that are descendant processes (any generation) of the current PIN.
BL Examples $nmdebug > bl NM [1] PROG 115.00006a8c PROGRAM+$270 NM [2] PROG 115.00006a90 PROGRAM+$274 NM [3] PROG 115.00005d24 processstudent cmdlist: {wl "Processing #" r26:"d";c} NM T[4] PROG 115.00005b50 processstudent.highscore NM [5] GRP 118.00015c88 average NM [6] GRP 118.00015c8c average+$4 NM [7] GRP 118.00015c90 average+$8 NM [8] USER f4.0012f2b8 p_heap:P_INIT_HEAP NM [9] USER f4.001f9188 U_INIT_TRAPS NM |10| SYS a.
BL Translated Code Examples %cmdebug > bl CM [1] GRP % 0.13 Corresponding NM bp CM [2] PROG % 0.1665 Corresponding NM bp CM [3] PROG % 0.1672 Corresponding NM bp CM [4] PROG % 0.1673 Corresponding NM bp ?AVERAGE = 1 ?PROCESSSTUDENT = 2 PROCESSSTUDENT+%265 = 3 PROCESSSTUDENT+%266 = 3 SEG' (CST 112) SEG' (CSTX 1) SEG' (CSTX 1) SEG' (CSTX 1) %cmdebug > nm $nmdebug > bl NM [1] TRANS 3d.0016962c SEG':?AVERAGE CM Ref count = 1 NM [2] TRANS 48.
BL Caution The output format of all System Debug commands is subject to change without notice. Programs that are developed to postprocess System Debug output should not depend on the exact format (spacing, alignment, number of lines, uppercase or lowercase, or spelling) of any System Debug command output. System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
CLOSEDUMP DAT only Closes a dump le. (See OPENDUMP to open a dump.) Syntax CLOSEDUMP Parameters none Examples $nmdat > closedump $nmdat > Closes the dump le currently opened. Limitations, Restrictions none Caution 4-54 The output format of all System Debug commands is subject to change without notice.
CM CM Enters compatibility mode (cmdat/cmdebug). See the NM command. Syntax CM The command switches from NM (nmdat/nmdebug) to CM (cmdat/cmdebug). If the windows are on, the screen is cleared and the set of windows enabled for cmdebug is redrawn. The command also sets several environment variables. The variables a ected and their new values are shown below: ENV MODE ENV INBASE ENV OUTBASE "CM" CM_INBASE CM_OUTBASE Parameters none Examples $nmdebug > cm %cmdebug > Switch from nmdebug to cmdebug.
CM exact format (spacing, alignment, number of lines, uppercase or lowercase, or spelling) of any System Debug command output. 4-56 System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
CMDL[IST] CMDL[IST] Command list. Displays a list of the valid commands for System Debug. Syntax CMDL[IST] [pattern] [group] [options] This command displays a list of valid commands for System Debug. Several System Debug commands are actually implemented as aliases. Aliases are not displayed with the CMDL command; rather, the ALIASL command must be used to view them. Parameters pattern The command name(s) to be displayed. This parameter can be speci ed with wildcards or with a full regular expression.
CMDL[IST] `log2[0-9][0-9]4` By default, all command names are listed. 4-58 System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
CMDL[IST] group options Commands are logically organized in groups. When listed, the commands can be ltered by group, that is, only those commands in the speci ed group are displayed.
CMDL[IST] PAGE NOPAGE NAME USE PARMS DESC EXAMPLE Page eject after each command de nition. Useful for paged (list le) output. No special page ejects. (default) If none of the options above are speci ed, NAME is displayed by default. If any options are speci ed, then they are accumulated to describe which elds are printed. 4-60 System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
CMDL[IST] Examples $nmdat > cmdl ,err cmd ERR error cmd ERRD error cmd ERRL error cmd IGNORE error nm nm nm nm cm cm cm cm Type "WHELP" for a list of the window commands Type "ALIASL" for a list of the command aliases List all of the commands that deal with error management. $nmdat > cmdl w@ cmd W io cmd WCOL io cmd WHELP window cmd WHILE ci cmd WL io cmd WP io cmd WPAGE io nm nm nm nm nm nm nm cm cm cm cm cm cm cm List all of the commands that start with the letter \W".
CMDL[IST] $nmdat > cmdl while,,all cmd WHILE ci nm cm USE: WHILE condition DO command | {cmdlist} PARMS: condition command cmdlist A logical expression to be repeatedly evaluated. A single command to be executed while CONDITION is true. A list of commands to be executed while CONDITION is true. DESC: The WHILE command evaluates a logical expression and, if TRUE, executes a command/command list. The expression is then reevaluated, and the process continues until the expression is FALSE.
CMDL[IST] Provide all information available for the WHILE command except examples and description. Limitations, Restrictions none Caution The output format of all System Debug commands is subject to change without notice. Programs that are developed to postprocess System Debug output should not depend on the exact format (spacing, alignment, number of lines, uppercase or lowercase, or spelling) of any System Debug command output. System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
CMG Privileged Mode Displays values in the CMGLOBALS record for a process. Syntax CMG [pin] The CMGLOBALS record is an operating system data structure that maintains compatibility mode information. Parameters pin The PIN for the process whose CMGLOBALS are to be displayed. Examples $nmdat > cmg dp0 dp_scratch cm_info cm_ctrl stack_dst db_dst db_3k_offset db_sid db_offset dl s z stack_base stack_limit 4-64 : : : : : : : : : : : : : : 0 c0105b60 c 0 84 84 200 2c4 400120b0 2c4.40012000 2c4.
CMG cst cstx lstt nrprgmsegs dst bank0 bank0_size debug mcode_adr $nmdat > : : : : : : : : : 80000700 c6bc8000 0.0 0 81800000 80000000 10000 0 3ee090 Display the CMGLOBALS record for the current PIN. Limitations, Restrictions none Caution The output format of all System Debug commands is subject to change without notice.
C[ONTINUE] Continues/resumes execution of user program. Syntax C[ONTINUE] C[ONTINUE] [IGNORE] C[ONTINUE] [NOIGNORE] The program executes until a breakpoint is encountered or the program completes. Used to exit Debug when it was entered via the DEBUG command at the CI. Parameters [NO]IGNORE This parameter is meaningful only in two states. The rst is when Debug has stopped due to one of the MPE XL traps de ned in the TRAP command (XLIB, XCODE, XARI, XSYS). The default value is NOIGNORE.
C[ONTINUE] Examples %cmdebug > c Limitations, Restrictions The CONTINUE command cannot be used from within macro bodies that are invoked as a function. This command resumes execution of your program or the CI if you entered the debugger with a DEBUG command. If you wish to abort your program or session, use the ABORT command. Caution The output format of all System Debug commands is subject to change without notice.
D (display) Privileged Mode: DA, DCS, DCA, DZ, DSEC Displays the contents of the speci ed address. Syntax DA DD DDB DS DQ o set dst.
D (display) Parameters o set DA, DDB, DQ, DS only. dst.o The CM word o set that speci es the relative starting location of the area to be displayed. DD only. The data segment number and CM word o set that speci es the starting location of the area to be displayed. System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
D (display) logaddr DC, DCG, DCP, DCLG, DCLP, DCS, DCU only. A full logical code address (LCPTR) speci es three necessary items: the logical code le (PROG, GRP, SYS, and so on) NM: the virtual space ID number (SID) CM: the logical segment number NM: the virtual byte o set within the space. CM: the word o set within the code segment.
D (display) For CM, the current executing logical segment number and the current executing logical le are used to build an LCPTR. The search path used for procedure name lookups is based on the command su x letter: DC Full search path: NM: PROG, GRP, PUB, USER(s), SYS CM: PROG, GRP, PUB, LGRP, LPUB, SYS DCG Search GRP, the group library. DCP Search PUB, the account library. DCLG Search LGRP, the logon group library. DCLP Search LPUB, the logon account library. DCS Search SYS, the system library.
D (display) fname DCU only. The le name of the NM USER library. Since multiple NM libraries can be bound with the XL= option on a RUN command, :run nmprog; xl=lib1,lib2.testgrp,lib3 it is necessary to specify the desired NM user library. For example, DCU lib1 204c DCU lib2.testgrp test20+1c0 cmabsadr If the le name is not fully quali ed, then the following defaults are used: Default account: the account of the program le. Default group: the group of the program le. DCA, DCAX only.
D (display) DCA DCAX virtaddr realaddr ldev.o GRP, PUB, LGRP, LPUB, SYS PROG DV only. The virtual address to be displayed. Virtaddr can be a short pointer, a long pointer, or a full logical code pointer. DZ only. The real mode HP Precision Architecture memory address to be displayed. DSEC only. The logical device number (LDEV) and o set (in bytes) of the data on disk to be displayed. System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
D (display) count base DA, DC@ (CM), DD, DDB, DS, DQ: The number of CM 16-bit words to be displayed. DC@ (NM), DV, DZ, DSEC: The number of NM 32-bit words to be displayed. If omitted, then a single value is displayed.
D (display) 4 bytes NM (32-bit words) / CM double-words If omitted, values are displayed as CM words (2) or NM words (4), based on the current mode (CM/NM) and the speci ed command. This parameter is ignored for display code commands (DC@). System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
D (display) Examples %cmdebug > dd 77.0 DST %77.0 % 000655 Display DST 77.0. By default, one word is displayed in the current output base, octal. %cmdebug > dd 77.0,20 DST %77.0 %0 % 000655 000012 000000 000000 000000 000000 000000 000000 %10 % 000000 000000 041515 023511 047111 052111 040514 020040 Display DST 77.0 for %20 words. By default, the data is displayed in the current output base, octal, at eight words per line. %cmdebug > dd 77.0,20,a DST %77.0 %0 ASCII .. .. .. .. .. .. .. .. %10 ASCII .. .
D (display) %50 %62 %74 ASCII GE TS IR ASCII RE LS IR ASCII FR EE 'P RI . .. .. . .. .. Display DST 77.0, for %100 words, in ASCII, in a width of %12 words per line. System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
D (display) %cmdebug > dd 77.0,100,s,12 DST %77.0 "...................." DST %77.12 "CM'INITIAL ....." DST %77.24 "MIX'PARM ....." DST %77.36 "LOAD ....." DST %77.50 "GETSIR ....." DST %77.62 "RELSIR ....." DST %77.74 "FREE'PRI" Display DST 77.0 for %100 words, as a string, in a width of %12 CM words = #10 CM words = 20 characters per line. %cmdebug > dd 77.0,20,h,6,1 DST %77.0 %0 $ 01 ad 00 0a 00 00 00 00 00 00 00 00 %6 $ 00 00 00 00 00 00 00 00 43 4d 27 49 %14 $ 4e 49 54 49 41 4c 20 20 %cmdebug > dd 77.
D (display) Display secondary storage at the disk address 1.0 (LDEV=1, byteo set=0). Display four words in ASCII. This example displays a portion of the volume label. System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
D (display) %cmdebug > da %1114,3,a ABS+%1114 ASCII 82 04 9 %cmdebug > da %1474,3,a ABS+%1474 ASCII 9 82 04 Two examples that display CM ABS relative. Both examples display three words in ASCII. ABS is CM Bank 0 low core memory. CM SYSGLOB starts at ABS+%1000. The rst example displays the SEL release ID in the form: uu vv . The second example displays the MPE XL system version ID in the form: vv uu . $nmdat > wl pc SYS $a.
D (display) Examples of Code Displays $nmdebug > dcs sendio+18,7 SYS $a.219f08 00219f08 sendio+$18 6bd83d69 00219f0c sendio+$1c 4bda3d51 00219f10 sendio+$20 081a0241 00219f14 sendio+$24 081e025f 00219f18 sendio+$28 34180050 00219f1c sendio+$2c ebfe174d 00219f20 sendio+$30 37d93dc1 STW LDW OR OR LDO BL LDO 24,-332(0,30) -344(0,30),26 26,0,1 30,0,31 40(0),24 ?ldm_completion+$1e4,31 -288(30),25 Display code in the NM system library, starting at sendio+18, for seven words.
D (display) Listing Disassembled Code to a File The following example demonstrates how to dump disassembled code into a le. The example is explained command by command, based on the command numbers that appear within the prompt lines. Command %10 opens an o ine list le with the name codedump. All Debug input and output is recorded into this le, including the code we intend to display. Command %11 sets the environment variable term_loud to FALSE.
D (display) %005001: %005002: %005003: %005004: %005005: %005006: %005007: %005010: %005011: %005012: %005013: %005014: %005015: %005016: %005017: %13 (%53) FOPEN+%5 FOPEN+%6 FOPEN+%7 FOPEN+%10 FOPEN+%11 ?FSOPEN FOPEN+%13 FOPEN+%14 FOPEN+%15 FOPEN+%16 FOPEN+%17 ?FJOPEN FOPEN+%21 FOPEN+%22 FOPEN+%23 cmdebug > list close 030400 000600 051451 140060 140003 170412 030400 021001 051451 140052 140003 170420 030400 021002 051451 1. .. S) .0 .. .. 1. ". S) .* .. .. 1. ".
DATAB Debug only Privileged Mode Sets a data breakpoint. Syntax DATAB virtaddr [:pin|@] [byte count] [count] [loudness] [cmdlist] Data breakpoints \break" when the indicated address is written to. The debugger stops at the instruction that is about to perform the write operation. The DATAB command is used to set process-local and global (system-wide) data breakpoints. Setting a breakpoint for another process is implemented so that it appears the target process set the breakpoint itself.
DATAB count Count has a twofold meaning: it speci es to break every n th time the breakpoint is encountered, and it is used to set permanent/temporary breakpoints. If count is positive, the breakpoint is permanent. If count is negative, the breakpoint is temporary and is deleted as soon as the process attempts to modify the protected address.
DATAB loudness cmdlist Either LOUD or QUIET. If QUIET is selected the debugger does not print out a message that the breakpoint has been hit. This is useful for performing a command list a great number of times before stopping without being inundated with screen after screen of breakpoint messages. These keywords may be abbreviated as desired. The default value is LOUD. A single Debug command or a list of Debug commands that are executed immediately when the breakpoint is encountered.
DATAB Limitations, Restrictions Keep in mind that the architecture supports data breakpoints on a page basis only. Anything more granular requires substantial software intervention. Caution Data breakpoints on process stacks are not supported, and setting breakpoints there may crash the system.
DATABD Debug only Privileged Mode Deletes a data breakpoint entry speci ed by index number. Syntax DATABD [number | @ [: pin | @] ] The DATABD command is used to delete process-local data breakpoints and global (system-wide) data breakpoints. Parameters number j@ The index number of the data breakpoint entry that is to be deleted. The character \@" can be used to delete all breakpoint entries.
DATABD The character \@" can be used to specify that a global breakpoint is to be deleted. System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
DATABD Examples $ nmdebug > databl [1] 49.40150c68 for 8 bytes T[2] 49.401515d4 for c4 bytes count 0/1 @[1] c.c1040480 for 4 bytes cmdlist: {WL "pib data breakpoint was hit"} List the data breakpoints that exist. $ nmdebug > databd [1] 49.40150c68 for 8 bytes T[2] 49.401515d4 for c4 bytes @[1] c.c1040480 for 4 bytes (Y/N) ? (Y/N) ? (Y/N) ? y Display each breakpoint and ask the user if the breakpoint should be deleted. In this example, the global breakpoint is deleted.
DATABL DATABL Debug only Privileged Mode Lists data breakpoint entries, speci ed by index number. Syntax DATABL [number | @ [: pin | @] ] The DATABL command is used to list process-local and global (system-wide) data breakpoints. Global data breakpoints are always displayed after the process-local data breakpoints. Parameters number pin The index number of the data breakpoint entry to display. The symbol \@" can be used to display all entries. If omitted, all entries are displayed.
DATABL cmdlist: {WL "pib data breakpoint was hit"} Display all data breakpoints. Process-local breakpoints are always displayed rst, then global breakpoints are displayed. $ nmdebug > databl 1 [1] 49.40150c68 for 8 bytes Display data breakpoint number 1. 4-92 System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
DATABL $ nmdebug > databl @:@ @[1] c.c1040480 for 4 bytes cmdlist: {WL "pib data breakpoint was hit"} Display all of the global data breakpoints. Limitations, Restrictions none Caution The output format of all System Debug commands is subject to change without notice. Programs that are developed to postprocess System Debug output should not depend on the exact format (spacing, alignment, number of lines, uppercase or lowercase, or spelling) of any System Debug command output.
DEBUG DAT only Privileged Mode DEBUG command|access to DEBUG XL. Syntax DEBUG Parameters none Examples $nmdat > debug DEBUG XL A.00.00 DEBUG Intrinsic at: 401.000b431c do_the_command+2c4 $1 ($38) nmdebug > Limitations, Restrictions The DEBUG command is generally useful only to the developer of DAT. Caution 4-94 The output format of all System Debug commands is subject to change without notice.
xxx DELETE xxx DELETE Delete various items. These are prede ned aliases for other commands. Syntax DELETEB DELETEALIAS DELETEERR DELETEMAC DELETEVAR alias alias alias alias alias for for for for for BD ALIASD ERRD MACD VARD See the ALIASINIT command. Caution The output format of all System Debug commands is subject to change without notice.
DEMO Privileged Mode Adds/deletes/lists terminals used for demonstrating System Debug. Syntax DEMO DEMO LIST DEMO ADD ldevs DEMO DELETE ldevs The DEMO command is used for giving demonstrations of System Debug. With this command, the user is able to enslave up to 50 terminals. Each of the enslaved terminals receives all input and output generated by System Debug. Output generated by the CI through the use of the ":" command or CIGETVAR and CIPUTVAR functions is not sent to the enslaved terminals.
DEMO that the LDEV numbers are interpreted using the current input base for System Debug. Examples $nmdat > demo No demonstration terminals are defined $nmdat > demo add #200 #201 #205 #206 $nmdat > demo list DEMO LDEVS (#): 200 201 205 206 First, check to see if any demonstration LDEVs have been speci ed. Next, add four LDEVs to the list of terminals to receive a copy of DAT's input and output stream. As soon as the DEMO ADD command is processed, the indicated terminals begin receiving I/O.
DEMO The Control-S/Control-Q/stop keys suspend output only for the master terminal (that is, the one where the demonstration is being run). All of the enslaved terminals continue to receive output as an uninterrupted ow. Caution 4-98 The output format of all System Debug commands is subject to change without notice.
DIS DIS Disassembles a single NM or CM assembly instruction, based on the current mode. Syntax DIS nmword [virtaddr] DIS cmword1 [cmword2] [cmlogaddr] The DCx (display code) commands can be used to display a block of code at a speci ed address. The program windows also display disassembled code. Parameters nmword cmword1 cmword2 virtaddr cmlogaddr The Precision Architecture instruction to disassemble. All disassembled values are in decimal unless otherwise indicated.
DIS CMPW+4 PROG(2.102) fopen+102 cmaddr('fopen')+%102 4-100 Top of CM program window + 4 Program le logical seg 2 o set 102 CM procedure fopen + %102 (assumes CM mode) CM procedure fopen + %102 (NM or CM mode) System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
DIS Examples $nmdebug > dis 6bc23fd9 STW 2,-20(0,30) This NM example disassembles the NM word $6bc23fd9 into the STW instruction. $nmdebug BL $nmdebug BL > dis e84001d8 $000000f4,2 > dis e84001d8, a.4adeb4 test_proc+$68,2 This NM example disassembles the word $e84001d8 into a BL instruction. In the second command, the virtual address of the instruction is speci ed, and the disassembler is able to compute and to display the e ective procedure name target of the branch.
DIS example indicates that within CM logical segment SYS 1, the resulting target of a PCAL %163 is ?ATTACHIO. 4-102 System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
DIS %cmdat > var n 1 %cmdat > while 1 do {w "stt: " n:"w3" " stt: %1 PCAL ?TERMINATE stt: %2 PCAL ?TERMINATE stt: %3 PCAL ?ABORTJOB stt: %4 PCAL ?ACTIVATE stt: %5 PCAL ?ADOPT stt: %6 PCAL ?ONENET'ADOPT stt: %7 PCAL ?CREATEPROCESS stt: %10 PCAL ?EXEC'TERMINATE stt: %11 PCAL ?GET'PLFD'TBLPTR stt: %12 PCAL ?GETORIGIN stt: %13 PCAL ?GETPRIORITY stt: %14 PCAL ?GETPROCID stt: %15 PCAL ?GETPROCINFO stt: %16 PCAL ?JSM'TO'CI'PIN stt: %17 PCAL ?KILL stt: %20 PCAL ?PROCINFO stt: %21 PCAL ?PROCTIME stt: %22 PCAL ?SET'
DIS that %31000 is the PCAL instruction, we simply add the desired STT number and use the DIS command to display the target entry point name. Control-Y is used to terminate the loop. Limitations, Restrictions none Caution 4-104 The output format of all System Debug commands is subject to change without notice.
DO DO Reexecutes a command from the command stack. Syntax DO [cmd string ] DO [history index] DO, entered alone, reexecutes the most recent command. Parameters cmd string history index Execute the most recent command in the history stack that commences with cmd string . For example, do wh could be used to match the most recent WHILE statement. The history stack index of the command that is to be executed. A negative index can be used to specify a command relative to the current command.
DO Limitations, Restrictions Upon initial entry into System Debug, the command stack is empty, since no prior command has been executed. If the DO command is entered as the rst command, an empty command is reexecuted. This is e ectively the same as entering a blank line. The MPE XL command interpreter allows an edit string to be speci ed on the DO command line. This feature is not supported in System Debug. Caution 4-106 The output format of all System Debug commands is subject to change without notice.
DPIB DPIB DAT only Display data from the process identi cation block (PIB) for a process. You can use DPIB in both native mode and compatibility mode. Syntax DPIB [pin] Parameters pin The process identi cation number for the process whose PIB values are to be displayed. If no pin is speci ed, the current pin is used.
DPIB exact format (spacing, alignment, number of lines, uppercase or lowercase, or spelling) of any System Debug command output. 4-108 System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
DPTREE DPTREE DAT only Prints out the process tree starting at the given PIN. Syntax DPTREE [pin] Parameters pin The process identi cation number (PIN) where the process tree display starts. If omitted, PIN 1 (the rst PIN in all process trees) is assumed, and the entire process tree is printed. Examples $nmdat > dptree 1 ( PROGEN.PUB.SYS ) 2 ( LOAD.PUB.SYS ) 3 ( .. ) 4 ( .. ) 5 ( .. ) 6 ( LOG.PUB.SYS ) 7 ( SYSMAIN.PUB.SYS ) 9 ( SESSION.PUB.SYS ) a ( JSMAIN.PUB.SYS ) 15 ( CI.PUB.SYS ) 16 ( JSMAIN.
DPTREE c ( DIAGMON.DIAG.SYS ) d ( RUNPROG.DIAG.SYS ) e ( MEMLOGP.DIAG.SYS ) f ( RUNPROG.DIAG.SYS ) 10 ( LOGGER.DIAG.SYS ) $nmdat > Prints out the entire process tree. Limitations, Restrictions none Caution 4-110 The output format of all System Debug commands is subject to change without notice. Programs that are developed to postprocess System Debug output should not depend on the exact format (spacing, alignment, number of lines, uppercase or lowercase, or spelling) of any System Debug command output.
DR DR Displays contents of the CM or NM registers. Syntax DR [cm register] [base] DR [nm register] [base] Parameters cm register nm register The CM register to be displayed. This can be the: DB The stack base relative word o set of DB. DBDST The DB data segment number. DL The DL register word o set, DB relative. CIR The current instruction register. CMPC The full logical CM program counter address. MAPDST The CST expansion mapping data segment number. MAPFLAG The CST expansion mapping bit.
DR Reference Manual (09740-90014) and Procedure Calling Conventions Reference Manual (09740-90015). (These may be ordered as a set with the part number 09740-64003.) The Procedure Calling Conventions Reference Manual is of particular importance for understanding how the language compilers utilize the registers to pass parameters, return values, and hold temporary values. The following tables list the native mode registers available within System Debug.
DR Access rights abbreviations are listed below. PM indicates that privileged mode (PM) capability is required. d Display access D PM display access m Modify access M PM modify access The following registers are known as the General Registers . Name Alias Access Description R0 R1 R2 R3. none none none none R22 R23 R24 R25 R26 R27 R28 R29 none dm ARG3 dm ARG2 dm ARG1 dm ARG0 dm DP dM RET1 dm RET0 dm SL dm SP dM MRP dm ..
DR The following registers are known as the Space Registers .
DR Name Alias Access Description CR23 CR24 .
DR Name Alias FP5 FP6 FP7 FP8 .
DR Examples %cmdebug > dr DBDST=%132 DB=%1000 SDST=%132 DL=%650 SEG =%12 P=%2046 X=%102 STATUS=%140075=(MItroc CCG 075) Q=%1006 S=%1007 CMPC=PROG %12.2046 CIR=%000700 MDST=%0 Display the contents of all CM registers. %cmdebug > dr status STATUS=%022002=(miTRoC CCE 002) Display the contents of the CM status register.
DR Limitations, Restrictions Floating-point registers are displayed as 64-bit long pointers. No interpretation of the data is attempted. Caution 4-118 The output format of all System Debug commands is subject to change without notice. Programs that are developed to postprocess System Debug output should not depend on the exact format (spacing, alignment, number of lines, uppercase or lowercase, or spelling) of any System Debug command output. System Debug Command Specifications FINAL TRIM SIZE : 7.
DUMPINFO DUMPINFO DAT only Displays dump le information. Syntax DUMPINFO [options] Parameters options This parameter speci es what information is to be displayed. If no option is given, STATE is assumed. The following list shows the valid options: STATE Display the last active PIN and the state of the system at the time the dump was taken. DIRECTORY Display the dump le directory. MAP Display a map of all secondary store addresses dumped.
DUMPINFO Examples $nmdat > DUMPINFO Dump Title: SA 2559 on KC (8/29/88 9:40) Last PIN : 34 - On ICS -- Dispatcher running $nmdat > Display the dump title (entered by the dump operator) and the machine state at the time the dump was taken. 4-120 System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
DUMPINFO $nmdat> DUMPINFO DIR Dump file set . . . . Dumped OS . . . . . . Dump tape creator . . Dump disc file creator Tape format ID . . . . Tape creation date . . Tape compression . . . Dump disc format ID . . . . . . . . . . . . . . . . . D7054.DUMP.CMDEBUG MPE-XL (99999X B.09.22) SOFTDUMP (99999X A.00.02) DAT/XL ( X.09.00) 9.00.00 THU, MAY 16, 1991, 3:23 PM 36% (RLE) B.01.
DUMPINFO $nmdat > Display the basic machine characteristics. 4-122 System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
DUMPINFO Limitations, Restrictions none Caution The output format of all System Debug commands is subject to change without notice. Programs that are developed to postprocess System Debug output should not depend on the exact format (spacing, alignment, number of lines, uppercase or lowercase, or spelling) of any System Debug command output. System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
ENV Assigns a new value to one of the prede ned environment variables. Syntax ENV var name [=] var value The environment variables allow control and inspection of the operation of System Debug. Parameters var name var value The name of the environment variable to set. The new value for the variable, which can be an expression.
ENV D m M r R w W PM display access (DR command) Modify access (MR command) PM modify access (MR command) Read access PM read access Write access PM write access Two names separated by a hyphen indicate a range of names. For example, ARG0 - ARG3 implies the full range: ARG0, ARG1, ARG2, and ARG3. The Environment Variables - Sorted by Group The following table lists all environment variables, arranged by their logical groups.
ENV io io io io io io io io io io io io io io io io io io io io io io io 4-126 r rW rw rw rw rw rw rw rw r rw rw rw rw rw rw rw rw rW rw rw rw rw COLUMN CONSOLE_IO FILL FILTER HEXUPSHIFT INBASE JUSTIFY LIST_INPUT LIST_PAGELEN LIST_PAGENUM LIST_PAGING LIST_TITLE LIST_WIDTH NM_INBASE NM_OUTBASE OUTBASE PROMPT TERM_KEEPLOCK TERM_LDEV TERM_LOCKING TERM_LOUD TERM_PAGING TERM_WIDTH : : : : : : : : : : : : : : : : : : : : : : : U16 BOOL STR STR BOOL STR STR BOOL U16 U16 BOOL STR U16 STR STR STR STR BOOL U16
ENV limits - limits for macros and variables limits limits limits limits limits limits rw r rw r rw r MACROS MACROS_LIMIT VARS VARS_LIMIT VARS_LOC VARS_TABLE : : : : : : U16 U16 U16 U16 U16 U16 CCODE CHECKPSTATE CPU CSTBASE DATE DISP DSTBASE DUMPALLOC_LZ DUMPALLOC_RLE DUMP_COMP_ALGO ENTRY_MODE ESCAPECODE EXEC_MODE GETDUMP_COMP_ALGO ICSNEST ICSVA LASTPIN LOOKUP_ID MODE MONARCHCPU MPEXL_TABLE_VA PIN PRIV_USER PROGNAME PSEUDOVIRTREAD PSTMT QUIET_MODIFY SYMPATH_UPSHIFT SYSVERSION : : : : : : : : : : : :
ENV misc misc 4-128 r r TIME VERSION : STR : STR System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
ENV win - window win win win win win win win win win win win win win win win rw rw r rw r r r r r r r r rw rw r CHANGES CMPW LW MARKERS NMPW PW PWO PWS SHOW_CCTL VW VWO VWS WIN_LENGTH WIN_WIDTH ZW : : : : : : : : : : : : : : : STR LCPTR SADDR STR LCPTR LCPTR SPTR U32 BOOL LPTR SPTR U32 U32 U32 U32 : : : : : : : : : : : : S16 LCPTR S16 S16 S16 S16 S16 S16 S16 S16 S16 S16 cmreg - compatibility mode regs cmreg cmreg cmreg cmreg cmreg cmreg cmreg cmreg cmreg cmreg cmreg cmreg r r r r r r r r r r r r d
ENV nmreg - native mode regs nmreg nmreg nmreg nmreg nmreg nmreg nmreg nmreg nmreg nmreg nmreg nmreg nmreg nmreg nmreg nmreg nmreg nmreg nmreg nmreg nmreg nmreg nmreg nmreg nmreg nmreg nmreg nmreg nmreg nmreg nmreg nmreg nmreg nmreg nmreg r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r dm dM dm dm dm dM dM dM dM dM dM dM dM dm dm dm dm dm dm dm dM dM d dM d dm dM dm dm d dm dm dm dm dM ARG0 - ARG3 CCR CR0 CR8 - CR31 DP EIEM EIRR IIR IOR IPSW ISR ITMR IVA PC PCOB PCOF PCQB PCQF PCSB
ENV fpreg fpreg fpreg r dM FP0 - FP15 r dM FPE0 - FPE7 r dM FPSTATUS : LPTR : U32 : U32 (until S64 is supported) system - system wide debug system system system rW rW rW CONSOLE_DEBUG DYING_DEBUG JOB_DEBUG : BOOL : BOOL : BOOL (Debug only) (Debug only) (Debug only) state - process state The state variables consist of all NMREG, CMREG, and FPREG variables. System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
ENV The Environment Variables - Sorted Alphabetically The following table lists all prede ned environment variables. Each variable description displays on the rst line the variable name and type, group name in parentheses, and access rights, for example: name TYPE (group) access [*] Environment variable description Those variables agged with a "*" have their value reset to their default value if the SET DEFAULT command is issued. ARG0 - ARG3 U32 (nmreg) r dm NM argument registers.
ENV CCR Debug itself causes the condition code for the process to change, it is necessary to cache the original value. The following string literals are valid: \CCE", \CCG", \CCL". U16 (nmreg) r dM CHANGES NM coprocessor con guration register. (Alias for CR10) STR (win) rw Selects the type of video enhancement used to ag window values modi ed since the last command. The following string literals are valid: \INVERSE", \HALFINV", \BLINK", \ULINE", and \FEABLE".
ENV CHECKPSTATE BOOL (misc) rw CIR If FALSE, inhibits validation of the process state when performing the following functions: PIB, PIBX, PCB, PCBX, CMG, CMSTACKBASE , CMSTACKDST, CMSTACKLIMIT, NMSTACKBASE and NMSTACKLIMIT. U16 (cmreg) r dm CMDLINESUBS CM current instruction register. BOOL (cmd) rw CMDNUM Setting CMDLINESUBS enables command line substitutions (for example, expanding the \j" character in-line).
ENV $ or HEXADECIMAL CM_OUTBASE The names may be abbreviated to a single character. The default value is % (octal). Refer to the SET command for an alternate method of setting this variable. STR (io) rw * The current CM output display base. The following values are allowed: % or OCTAL # or DECIMAL $ or HEXADECIMAL The names may be abbreviated to a single character. The default value is % (octal). Refer to the SET command for an alternate method of setting this variable.
ENV COLUMN U16 (io) rw CONSOLE_DEBUG The current character position in the user's output bu er. The position is advanced by the W and WCOL commands (or by the C directive in a format speci cation). Refer to the W command for details. BOOL (system) rW If this system-wide ag is set, all processes entering the debugger for the rst time automatically have their debug I/O performed at the system console with the system console I/O routines.
ENV NM control register 0 (alias for RCTR). Debug uses this value while single stepping. System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
ENV CR8 - CR31 U32 (nmreg) r dm NM control registers. These registers have the following aliases and names (for descriptions of their usage, refer to the Precision Architecture and Instruction Reference Manual (09740-90014)): Register Alias CR0 CR8 CR9 CR10 CR11 CR12 CR13 CR14 CR15 CR16 CR17 CR18 CR19 CR20 CR21 CR22 CR23 CR24 . RCTR PID1 PID2 CCR SAR PID3 PID4 IVA EIEM ITMR PCSF PCOF IIR ISR IOR IPSW EIRR TR0 CR31 TR7 ..
ENV DB U16 (cmreg) r dm DBDST The CM DB register. U16 (cmreg) r dm The CM DB DST number. System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
ENV DISP BOOL (misc) r DL A Boolean value that indicates whether or not the dispatcher is currently running. This value is always FALSE in Debug. U16 (cmreg) r dm DP The CM DL register. U32 (nmreg) r dm DSTBASE NM global data pointer register. (Alias for R27) LPTR (misc) rW DUMPALLOC_LZ The virtual address of the CM DST table. U16 (misc) rw DUMPALLOC_RLE Determines the percentage of disk space DAT will preallocate before restoring a dump encoded with LZ data compression.
ENV ignore all breakpoints, traps, and so on. If this system-wide variable is set to TRUE, Debug stops for all events even if the process is dying. This is useful to operating system developers only. It is possible to cause system failures if this variable is turned on and breakpoints are set at inappropriate locations. The default value for this variable is FALSE. ECHO_CMDS This variable is not available in DAT.
ENV ECHO_SUBS BOOL (cmd) rw * When ECHO_SUBS is set, and CMDLINESUBS is enabled, command line substitutions are displayed as they are performed. In the following example, the rst line displays the location of the substitution and the second line displays the result after the substitution has taken place. The default value for this variable is FALSE. subs > fv a.c0341450 "|symfile :student_record" /\ done > fv a.
ENV ESCAPECODE U32 (misc) rW This is the last ESCAPECODE value that was stored for the process at the moment Debug was entered. This variable is restored when the debugger resumes execution of the process. Since Debug itself causes the escape code for the process to change, it is necessary to cache the original value. EXEC_MODE This variable is not available in DAT. STR (misc) r FALSE This variable contains either \NM" or \CM". It indicates the execution mode of the current process.
ENV FILL STR (io) rw * FILTER This variable determines how leading zeros in right-justi ed data (refer to JUSTIFY variable) are output from the Display commands and in the windows. This variable may take on one of two quoted literal values: \BLANK" (show leading zeros as blanks) or \ZERO" (show leading zeros as zeros). The default value is \ZERO". STR (io) rw * All output, with the exception of error messages and the prompts, passes through a nal ltering process.
ENV by any number of any characters (.*), that are followed by a dollar sign and a space ($ ), and followed by any number of any character (.*), and nally followed by characters 123 (123)." $a ($10) nmdat > env FILTER `^$.*$ .*123` $b ($10) nmdat ^$.*$ .*123> dv a.c0000000, 4000 $ VIRT a.c0001020 $ 40020330 4002033c 40012348 c0002342 $ VIRT a.c0003240 $ 00000001 0000cf42 40012362 000000bc $c ($10) nmdat ^$.*$ .
ENV FP0-FP15 LPTR (fpreg) r dm FPE1-FPE7 NM oating-point registers 0-15. The 64 bits of these registers are presented as long pointers until System Debug supports 64-bit integers. S32 (fpreg) r dm FPSTATUS NM oating-point exception registers 1-7. These registers are extracted from FP0-FP3. That is, FPE1 is an alias for the right 32 bits of FP0, FPE2 is an alias for the left 32 bits of FP1, and so on. (Refer to the Precision Architecture and Instruction Reference Manual (09740-90014).
ENV ICSNEST U16 (misc) r ICSVA The current ICS nest count as found in the base of the ICS. This value is always 0 for Debug. LPTR (misc) r IIR The virtual address for the base of the ICS. U32 (nmreg) r dM NM interrupt instruction register. (Alias for CR19) System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
ENV INBASE STR (io) rw * The current input conversion radix, which is based on the current mode. Values entered are assumed to be in this radix unless otherwise speci ed. This variable tracks NM_INBASE and CM_INBASE dependent upon the MODE variable. The following values are allowed: % or OCTAL # or DECIMAL $ or HEXADECIMAL The names may be abbreviated to 1 character. IOR The default is based on the current mode (NM or CM). Refer to the SET command for an alternate method of setting this variable.
ENV IPSW U32 (nmreg) r dM NM interrupt processor status word (alias for CR22 and PSW). Debug may set or alter the \R" bit while single stepping, as well as the \T" bit if the TRAP BRANCH ARM command has been issued.
ENV The rst value is a full 32-bit integer representation of the register. The second format shows the value of the special named bits. An uppercase letter means the bit is ON while a lowercase letter indicates the bit is OFF. 4-150 System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
ENV ISR U32 (nmreg) r dM ITMR NM interrupt space register. (Alias for CR20) U32 (nmreg) r dM IVA NM interval timer register. (Alias for CR16) U32 (nmreg) r dM JOB_DEBUG NM interrupt vector address. (Alias for CR14) BOOL (system) rW A system wide ag that enables the debugging of jobs. The default value is FALSE; any process attempting to access Debug in a job has that request ignored (with the exception of the HPDEBUG intrinsic, which will execute a command string but not stop in Debug).
ENV When LIST_INPUT is set, all user input lines are written into any currently opened list le (refer to the LIST command). When ECHO_USE is set, those lines that are input from the USE le are always displayed to the list le, even if LIST_INPUT is disabled. The default value is TRUE. 4-152 System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
ENV LIST_PAGELEN U16 (io) rw * LIST_PAGENUM The page length (in lines) of the list le (refer to the LIST command). The default page length is #60. If the LIST_PAGING environment variable is set, a page eject is placed in the list after every LIST_PAGELEN lines. U16 (io) r LIST_PAGING The current page number of the list le (refer to the LIST command). When a list le is opened, this variable is reset to 1. The default LIST_TITLE uses this value as part of the page title written to each page.
ENV length are not truncated; instead they are split, with the extra data placed on the following line. 4-154 System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
ENV LOOKUP_ID STR (misc) rw * This variable is used by the expression evaluator in determining where to look up NM procedure names. Refer to the \Procedure Name Symbols" section in chapter 2 \User Interfaces" for additional details. It may take on any of the following values: UNIVERSAL Search exported procedures in the System Object Module symbols. LOCAL Search non-exported procedures in the System Object Module symbols. NESTED Search nested procedures in the System Object Module symbols.
ENV LW SADDR (win) r MACROS The secondary address where the LDEV window is aimed. The value returned is interpreted as ldev.o set . U16 (limits) rw The MACROS variable controls the size of the macro table, and must be changed (from the default size) before any macros are created. The MACROS limit is automatically increased to the nearest prime number, which must be less than or equal to MACROS_LIMIT. 4-156 System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
ENV MACROS_LIMIT U16 (limits) r MACROS_LIMIT is a compile time constant that de nes the MACRO_DEPTH absolute maximum size of the macro table. The product must be recompiled and redistributed to increase this absolute capacity. U16 (cmd) r MACRO_DEPTH tracks the current nested call level for MAPDST macros. A depth of 1 implies the macro was invoked from the user interface. A depth of 2 implies that the current macro was called by another macro, and so on.
ENV This variable contains the address of the table used by the MPEXL command. Initially the address is set to NIL (0.0). The rst invocation of the MPEXL command will correctly replace the NIL value with the actual table address. If any (non-NIL) virtual address is written into this variable, then the MPEXL comand will honor this address and use it to attempt access to the MPEXL table.
ENV NM_INBASE STR (io) rw * The current NM input conversion base. When in NMDebug, all values entered are assumed to be in this base unless otherwise speci ed. The following values are allowed: % or OCTAL # or DECIMAL $ or HEXADECIMAL The names may be abbreviated to as little as a single character. NM_OUTBASE The default value is $ (hex). Refer to the SET command for an alternate method of setting this variable.
ENV OUTBASE STR (io) rw * This variable tracks NM_OUTBASE and CM_OUTBASE dependent upon the MODE variable. The following values are allowed: % or OCTAL # or DECIMAL $ or HEXADECIMAL The names may be abbreviated to as little as 1 character. The default is based on the current mode (NM or CM). Refer to the SET command for an alternate method of setting this variable. 4-160 System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
ENV PC LPTR (nmreg) r dm PCOB NM program counter register as a logical code address. This value is composed of data taken from CR17 (PCSF) and CR18 (PCOF). The privileged bits from CR18 (bits 30, 31) are masked out (that is, they are set to zero). U32 (nmreg) r dm PCOF NM program counter o set (next in pipeline queue). U32 (nmreg) r dm PCQB NM program counter o set ( rst in pipeline queue). LPTR (nmreg) r dm PCQF NM program counter sid.o set (next in pipeline queue).
ENV Protection ID WD The protection ID number. Write disable bit (1 = read only, 0 = write enabled) System Debug displays these registers in two formats: PID1=030e=0187(W) The rst value is the register as a 16-bit value. The second form is the original 16-bit register shifted right by 1 bit followed by the value of the write disable bit. The (W) indicates the WD bit is o . That is, write capability is enabled. When the WD bit is on, an (R) is displayed indicating Read access.
ENV PIN U16 (misc) r PRIV The current process identi cation number (PIN). Note that this variable changes when one uses the PIN command. PIN 0 (zero) indicates that the dispatcher is running. (Refer to the variable LAST_PIN.) U16 (nmreg) r dM PRIV_USER Current privilege level (low two bits of PCOF). BOOL (nmreg) r rW This variable is TRUE if the user running Debug has privileged mode (PM) capabilities. If set, the user has access to all privileged commands within Debug.
ENV PSTMT Previous SP. This is not really a register; it is computed based on the current SP and size of the current frame. BOOL (misc) rw * PSW When PSTMT is set, the NM disassembler interprets certain LDIL instructions as statement numbers, as generated by some of the language compilers. The default value is TRUE. U32 (nmreg) r dM PW Processor status register (alias for IPSW and CR22). Refer to the IPSW environment variable for a complete description of this variable.
ENV PWS U32 (win) r Q The SID (NM) or SEG (CM) where the (current) program window is aimed. U16 (cmreg) r dm QUIET_MODIFY This is the CM Q register. The value in this register is relative to the CM DB register. U16 (io) rw * R0 When this variable is FALSE (the default value), all modi cations to registers and memory cause the current value of the item to be displayed. If the variable is set to TRUE, all modi cations are performed quietly.
ENV S it may be the return address stored somewhere in the NM stack. Note that RP is not an alias for R2. U16 (cmreg) r dm SAR CM S (stack) register. The value in this register is relative to the CM DB register. U16 (nmreg) r dm SDST NM shift amount register. (Alias for SR11) U16 (cmreg) r dm DST number of the CM stack. 4-166 System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
ENV SL U32 (nmreg) r dm SP NM static link register. (Alias for R29) U32 (nmreg) r dm SR0 - SR7 NM stack pointer register. (Alias for R30) U32 (nmreg) r dM STATUS NM space registers 0 - 7. U16 (cmreg) r dm CM status register.
ENV STATUS=%100030=(Mitroc CCG 030) The rst value is the full 16-bit integer representation of the register. The second format shows the value of the special named bits. An uppercase letter means the bit is on while a lowercase letters indicates the bit is o . The segment number has various interpretations. For non-CST expansion systems, this is an absolute segment number. For CST expansion systems, refer to the MPE V/E Tables Manual for details on its interpretation.
ENV SYMPATH_UPSHIFT BOOL (misc) rw SYSVERSION TRUE if path speci cations used by symbolic formatting should be upshifted. This should be FALSE if a symbol le originated with a case-sensitive language, such as C. Note that this variable a ects only those symbols entered in System Debug commands and functions, not those in symbol les. STR (nmreg) r The version of the operating system (as found in SYSGLOB). TERM_KEEPLOCK This variable is currently a null string in DAT.
ENV Rather, Debug performs I/O to the job's standard list le ($STDLIST). If the JOB_DEBUG system wide variable is set, when a process being run in a job enters Debug, this variable is set to the console port (LDEV 20) and the CONSOLE_IO variable is set to TRUE. Note that the CONSOLE_IO environment variable has precedence over TERM_LDEV. Note A privileged procedure exists that allows the user to enter Debug and specify the initial value of this variable. The name of the routine is debug_at_ldev.
ENV TERM_LOCKING BOOL (io) rw If this variable is set (the default value), the debugger will perform \terminal locking" (with a semaphore) to ensure that only one debug process can use a terminal at any given time. This prevents multiple prompts from appearing on the screen when debugging multiple processes at the same terminal. The TERM command may then be used to control which process owns the semaphore. If this variable is not set, no terminal locking is performed.
ENV TERM_WIDTH U16 (io) rw * TIME This is the number of characters to print per line. The default is set at 79. Any output line longer than this value is split with the remainder placed on the next line. STR (misc) r TR0 - TR7 The current time of day in the format: \5:25 PM". U32 (n*eg) r dM NM \temp" registers (alias for CR24..CR31). 4-172 System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
ENV TRACE_FUNC U16 (cmd) rw TRUE Setting this variable allows you to observe function calls and their parameters. The current values and meanings are: 0 Trace is o . 1 Trace EXIT from functions. 2 Trace ENTRY and EXIT from functions. 3 Trace function PARAMETERS as well as ENTRY and EXIT. BOOL (const) r VARS The constant \TRUE". U16 (limits) rw VARS_LIMIT The VARS limit determines the maximum number of variables that can be de ned by the VAR command.
ENV VARS_TABLE de ned. The combined sum of the VARS and VARS_LOC limits must be less than the value VARS_LIMIT. U16 (limits) rw VERSION VARS_TABLE tracks the total number of entries in the variable table, which is de ned to be the sum of variables VARS plus VARS_LOC. The VARS_TABLE size must always be less than or equal to VARS_LIMIT. STR (misc) r The version ID of the program, for example, \DAT XL A.00.00". 4-174 System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
ENV VW LPTR (win) r VWO The virtual address where the current virtual window is aimed. SPTR (win) r VWS The o set portion for the virtual address where the current virtual window is aimed. U32 (win) r WIN_LENGTH The sid portion for the virtual address where the current virtual window is aimed. U32 (io) rw * WIN_WIDTH Speci es the number of lines available on the display terminal. The default value is #24.
ENV Set the variable CMDLINESUBS to TRUE. This enables command line substitutions, that may have been disabled while macros were being read in from a le. Limitations, Restrictions none Caution 4-176 The output format of all System Debug commands is subject to change without notice. Programs that are developed to postprocess System Debug output should not depend on the exact format (spacing, alignment, number of lines, uppercase or lowercase, or spelling) of any System Debug command output.
ENVL[IST] ENVL[IST] Displays the current values for environment variables. Syntax ENVL[IST] [pattern] [group] [options] Parameters pattern The name of the environment variable(s) to be listed. This parameter can be speci ed with wildcards or with a full regular expression. Refer to Appendix A for additional information about pattern matching and regular expressions. The following wildcards are supported: @ Matches any character(s). ? Matches any alphabetic character. # Matches any numeric character.
ENVL[IST] group options The environment variables are logically organized in groups. When listed, the variables can be ltered by group; that is, only those variables in the speci ed group is displayed.
ENVL[IST] Examples $nmdat > envl, win win rw CHANGES win r CMPW win r LW win rw MARKERS win r NMPW win r PW win r PWO win r PWS win rw SHOW_CCTL win r VW win r VWO win r VWS win r ZW : : : : : : : : : : : : : STR LCPTR SADDR STR LCPTR LCPTR SPTR U32 BOOL LPTR SPTR U32 U32 = = = = = = = = = = = = = 'HALFINV' SYS $15.0 SADDR $1.0 'ULINE' SYS $a.702d6c SYS $a.702d6c $00702d6c $a FALSE $0.0 $00000000 $0 $0 Display all window-related environment variables.
ENVL[IST] $nmdat > envl cmd r win rw misc r cmd rw m@ MACRO_DEPTH MARKERS MODE MULTI_LINE_ERRS : : : : U16 STR STR U16 = = = = $0 'ULINE' 'nm' $2 Display all environment variables that begin with the letter \m". $nmdat > envl vw,,all win r VW : LPTR = $0.0 DESC: The virtual address where the current virtual window is aimed. Display the environment variable VW and all related information associated with that variable.
ERR ERR Pushes a user error message onto the error command stack. Syntax ERR errmsg The ERR command is typically used within user de ned macros. Parameters errmsg The error message that is to be pushed onto the error stack. This message must be entered as a string expression (that is, a quoted string literal, a string function or macro result). Examples $nmdat > err "Illegal negative parameter value" Push a custom user error message onto the error stack.
ERRD[EL] Deletes all errors on the error stack (reset the stack). Syntax ERRD[EL] Parameters none Examples $nmdat > errd Reset the error stack. Limitations, Restrictions none Caution 4-182 The output format of all System Debug commands is subject to change without notice. Programs that are developed to postprocess System Debug output should not depend on the exact format (spacing, alignment, number of lines, uppercase or lowercase, or spelling) of any System Debug command output.
ERRL[IST] ERRL[IST] Error list. Lists the most recent error(s) on the error stack. Syntax ERRL[IST] [ALL] Parameters ALL By default, only the most recent (set) of errors are displayed. If the special option ALL is speci ed, all sets of errors are displayed. Examples $nmdat > dv a.234e0 Display error. Check ERRLIST for details. (error #3800) $nmdat > errl $47: Display error. Check ERRLIST for details. (error #3800) $47: data read access error (error #805) $47: READ_CMWORD bad address: $ VIRT a.
ERRL[IST] $nmdat > errl all $47: $47: $47: $47: Display error. Check ERRLIST for details. (error #3800) data read access error (error #805) READ_CMWORD bad address: $ VIRT a.234e0 No dump file set is opened (error #5083) $22: $22: $22: $22: Error evaluating a predefined function. (error #4240) function is"vtor" wl vtor(pc) ^ Virtual-to-real translation failed. (error #6013) $1f: Unknown topic for HELP. (error #1488) $1c: $1c: $1c: This command is invalid for this program. Program: DAT mv a.
E[XIT] E[XIT] Exits/resumes execution of user program. Syntax E[XIT] E[XIT] Same as CONTINUE (in Debug) Exit program (in DAT) Same as the C[ONTINUE] command in Debug. For DAT, this command exits the DAT program. Caution The output format of all System Debug commands is subject to change without notice.
F x (format) Formats a speci ed data structure. Syntax path ft options FT FV virtaddr path fv options FT = format data structure with type information. FV = format data structure with data starting at sid.o . Parameters virtaddr path ft options fv options 4-186 FV only. The virtual address of the data to be formatted. Virtaddr can be a short pointer, a long pointer, or a full logical code pointer. A path speci cation, as described in chapter 5, \Symbolic Formatting/Symbolic Access".
x F NOPAB ARCH NOARCH (format) Print packed array of boolean as an array index followed by the element value. For selected MPE/XL architect types, print the data in the \expected" fashion. Do no special formatting for MPE/XL architected types. If no options are given, the default set is: PAC PAB ARCH The known types given special treatment with the ARCH option are: VA_TYPE SHORT_VA_TYPE CONVERT_PTR_TYPE System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
x F (format) Examples $nmdebug > symopen gradtyp.demo Opens the symbolic data type le gradtyp.demo. It is assumed that the Debug variable addr contains the address of a StudentRecord data structure in virtual memory. The following code fragment is from this le: CONST MINGRADES = 1; MINSTUDENTS = 1; TYPE GradeRange GradesArray Class NameStr StudentRecord = = = = = MAXGRADES = 10; MAXSTUDENTS = 5; MINGRADES . .
x F (format) RECORD NAME : NAMESTR ; ( 0.0 @ 10.0 ) ID : INTEGER ; ( 10.0 @ 4.0 ) YEAR : CLASS ; ( 14.0 @ 1.0 ) NUMGRADES: GRADERANGE ; ( 15.0 @ 1.0 ) GRADES : GRADESARRAY ; ( 18.0 @ 28.0 ) END ; RECORD Size: 40 bytes Display the structure of StudentRecord and print a component map. System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
x F (format) $nmdebug > FT "StudentRecord.grades" ARRAY [ GRADERANGE ] OF INTEGER $nmdebug > FT "graderange" 1 .. 10 $nmdebug > FT "maxgrades" INTEGER Display various types. Notice that structure name is not limited to a simple type or constant name; rather, it may consist of any composite structure name. FV (Format Virtual) Examples The following examples assume that debug variable data contains the virtual address of a data structure corresponding to the type StudentArray .
x F (format) This is what the rst few words of the StudentArray data looks like in virtual memory. $nmdebug > fv data "StudentRecord" RECORD NAME ID YEAR NUMGRADES GRADES [ 1 ]: [ 2 ]: [ 3 ]: [ 4 ]: [ 5 ]: [ 6 ]: [ 7 ]: [ 8 ]: [ 9 ]: [ a ]: END : 'Bill' : 1 : SENIOR : 4 : 2d 41 4e 42 0 0 0 0 0 0 This is what the rst element of the StudentArray data looks like when formatted as if it were a StudentRecord. $nmdebug > fv data "StudentRecord.Name" 'Bill' $nmdebug > fv data "StudentRecord.
x F (format) MPE XL Operating System Examples We can also look at individual items of a data structure as the above examples depict. $nmdebug > symopen symos.pub.sys $nmdebug > fv pib(pin) "pib_type.cm_global" c79c0000 Open the operating system symbolic le. Format the data in the cm_global eld of the PIB for the current PIN. It is a short pointer. $nmdebug > fv pib(pin) "pib_type.
x F END CM_RESVD5 CM_RESVD4 CM_RESVD3 CM_RESVD2 CM_RESVD1 : : : : : (format) 0 0 0 0 0 Format the data in the cm_global eld of the PIB for the current PIN. That is, format what the pointer points to. System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
x F (format) $nmdebug > fv pib(pin) "pib_type.cm_global^.cm_info" CRUNCHED RECORD CM_INFO_INT : c END Format the data in the cm_info record of the cm_global record. $nmdebug > ft "pib_type.cm_global^.cm_info" CRUNCHED RECORD CASE BOOLEAN OF TRUE: ( CM_INFO_INT: SEM_LOCK_TYPE ); FALSE: ( SPLITSTACK : BIT1 ; SINGLE_STEP: BIT1 ; CNTRL_Y : BIT1 ; SCRATCH1 : BIT5 ); END Format the type for the acm_info record contained in the cm_global record. We see that the record has an invariant case structure.
x F (format) exact format (spacing, alignment, number of lines, uppercase or lowercase, or spelling) of any System Debug command output. System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
F mm (freeze) Debug only Privileged Mode Freezes a code segment, data segment, or virtual address (range) in memory.
mm F (freeze) Logical code addresses can be speci ed in various levels of detail: As a full logical code pointer (LCPTR): FC procname+20 Procedure name lookups return LCPTRs. FC pw+4 Prede ned ENV variables of type LCPTR. FC SYS(2.200) Explicit coercion to a LCPTR type. System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
mm F (freeze) As a long pointer (LPTR): sid.o set or seg.o set The logical le is determined based on the command su x: FC implies PROG. FCG implies GRP. FCS implies SYS, and so on. As a short pointer (SPTR): FC 1024 o set only For NM, the short pointer o set is converted to a long pointer using the function STOLOG, which looks up the SID of the loaded logical le. This is di erent from the standard short to long pointer conversion, STOL, which is based on the current space registers (SRs).
mm F cmabsaddr (freeze) A full CM absolute code address speci es three necessary items: Either the CST or the CSTX. The absolute code segment number. The CM word o set within the code segment. Absolute code addresses can be speci ed in two ways: As a long pointer (LPTR): FCA 23.2644 Implicit CST 23.2644 FCAX 5.3204 Implicit CSTX 5.3204 As a full absolute code pointer (ACPTR): FCA CST(2.200) Explicit CST coercion FCAX CSTX(2.200) Explicit CSTX coercion Explicit absolute conversion FCAX logtoabs(prog(1.
mm F (freeze) dsto virtaddr bytelength 4-200 A data segment address (speci ed as DST.OFFSET) of the data segment to be frozen in memory. The segment remains frozen until it is explicitly unfrozen (see UDA command). The starting virtual address of the page(s) that are to be frozen in memory. The pages remain frozen until they are explicitly unfrozen (see UVA command). Virtaddr can be a short pointer, a long pointer, or a full logical code pointer. This parameter is valid only when in nmdebug.
mm F (freeze) Examples %cmdebug > fc cmpc Freeze the current CM code segment, as indicated by the CM logical address CMPC. %cmdebug > fcs sys(12.0) Freeze CM logical code segment SYS 12. $nmdebug > fva 22.104, #1000 Freeze 1000 bytes starting at virtual address 22.104. Limitations, Restrictions none Caution The output format of all System Debug commands is subject to change without notice.
FINDPROC Debug only Dynamically loads a speci ed NM procedure from any NM library. Syntax FINDPROC procedurename library le [ [NO]IGNORECASE] This command dynamically loads a NM procedure from any NM library. The complete executable System Object Module containing the named procedure is loaded. This command is implemented by calling the HPGETPROCPLABEL intrinsic. (Refer to the MPE XL Intrinsics Reference Manual (32650-90028) for additional information.
FINDPROC Limitations, Restrictions This routine functions by calling the FINDPROC intrinsic. Refer to the MPE XL Intrinsics Reference Manual (32650-90028) for additional information. Caution The output format of all System Debug commands is subject to change without notice. Programs that are developed to postprocess System Debug output should not depend on the exact format (spacing, alignment, number of lines, uppercase or lowercase, or spelling) of any System Debug command output.
FOREACH Each time a FOREACH command is executed, name is set to the next expression value in value list prior to the execution of cmdlist . Execution ends when there are no more expression values in the value list . Syntax FOREACH name value list command FOREACH name value list { cmdlist } Parameters name The name for the control variable that is set to the next expression value in value list . A local variable is declared automatically, and it can be referenced with the cmdlist .
FOREACH Examples %cmdebug > foreach j '1 2 3 "MOM" date 12.330' wl j $1 $2 $3 MOM WED. SEPT 3, 1986 $12.00000330 A local variable j is assigned each of the expression values in the value list string, and the speci ed command references the current value of j in order to write its value. $nmdebug > foreach j '6 $4 "ab" $7 -2 "a" + "b" 3 +4' {wl j} This example shows that full expression values are evaluated within the value list.
FOREACH Limitations, Restrictions none Caution 4-206 The output format of all System Debug commands is subject to change without notice. Programs that are developed to postprocess System Debug output should not depend on the exact format (spacing, alignment, number of lines, uppercase or lowercase, or spelling) of any System Debug command output. System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
FPMAP FPMAP Reinitializes CM FPMAP symbolic procedure name access. Syntax FPMAP Initialization of CM FPMAP symbolic procedure names is automatic in System Debug. The FPMAP command is typically used to \pick up" new libraries that have been dynamically loaded (through LOADPROC or SWITCH intrinsics) since the original program execution. The FPMAP command inspects the CM program le and all currently loaded CM libraries in order to locate the necessary FPMAP records.
FUNCL[IST] Function list. Displays information about the prede ned functions. Syntax FUNCL[IST] [pattern] [group] [options] Parameters pattern The name(s) of the function(s) to be displayed. This parameter can be speci ed with wildcards or with a full regular expression. Refer to appendix A for additional information about pattern matching and regular expressions. The following wildcards are supported: @ Matches any character(s). ? Matches any alphabetic character. # Matches any numeric character.
FUNCL[IST] COERCION UTILITY ADDRESS PROCESS PROCEDURE STRING SYMBOLIC ALL | @ options Coercion functions. General utility functions. Address manipulation functions. Process data structure address functions. Procedure name/length/entry/path functions. String manipulation functions. Symbolic access functions. Display all groups. By default, all groups are displayed. Any number of the following options can be speci ed in any order, separated by blanks: NAME Display function name and result type.
FUNCL[IST] Examples %cmdebug > funcl List all functions. %cmdebug > funcl @node func CMNODE func CMTONMNODE func NMNODE func NMTOCMNODE : : : : LPTR LPTR LPTR LPTR ADDRESS ADDRESS ADDRESS ADDRESS List all functions (in all groups) that match the pattern \@node".
FUNCL[IST] exact format (spacing, alignment, number of lines, uppercase or lowercase, or spelling) of any System Debug command output. System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
GETDUMP DAT only Reads in a dump tape and creates a dump le. Syntax GETDUMP dump le [ ldevlist ] GETDUMP dump le [ DIR ] This command is used to restore the contents of a tape created by the DUMP utility onto disk. Once restored, the dump must be opened by the OPENDUMP command for access by the DAT program. A tape request for dumptape is generated; a message appears on the system console informing the operator of the request.
GETDUMP Parameters dump le ldevlist DIR The name of the dump le to be created. Dump le names are limited to a maximum of ve characters. All les related to the dump are given names composed of this name followed by a three-character mnemonic indicating the le contents. A list of secondary-store LDEVs to be read from the dump. If no list is given, all LDEVs on the dump are read.
GETDUMP of disc space. $nmdat > The above example displays the directory of a dump tape and an estimate of the amount of disk space required to restore the dump. $nmdat > getdump examp Please mount dump volume #1. SA 2559 on KC (8/29/88 9:40) Tape created by SOFTDUMP 99999X A.00.00 MPE-XL A.11.10 dumped on MON, AUG 29, 1988, 9:39 AM Dump Tape Contents -----------------PIM00 MEMDUMP VM001 VM002 VM003 VM004 VM014 4.0 48.0 39.1 0.6 0.1 16.4 0.
GETDUMP Please stand by while dump pages are posted to disk. Dump disc file space reduced by 60% due to LZ data compression. $nmdat > The above example creates the dump le EXAMP. DAT keeps the user informed as to how much of the dump has been read in by printing a dot every time it transfers 10% of each le in the dump le from tape to disk. When the dump has been fully restored, the amount of disk space saved due to data compression is displayed.
H[ELP] Displays online help messages for System Debug. Syntax H[ELP] [topic] [options] The HELP command is used to obtain help information about any command, window command, user macro, user variable, function, environment variable, and so on. Some items may fall into more than one category. For example, S is the single step command and the CM S register. In such cases, the help entries for all de ned items are displayed. Refer to the WHELP command for an overview of window commands.
H[ELP] Examples. Access rights information. Everything. EXAMPLE/NOEXAMPLE ACCESS/NOACCESS ALL The following table indicates which combination of topics/options are valid (invalid options are ignored). USE PARMS DESC EXAMPLE Commands ENV variables Functions Macros User variables YES NO YES YES NO YES NO YES YES NO YES YES YES YES NO YES NO YES YES NO Examples $nmdat > help dc "dc" is a NUMBER, and a COMMAND name.
H[ELP] recw bytew DEC, # Decimal. HEX, $ Hexadecimal. ASCII Character output, separated at word boundaries. BOTH Both numeric (current output base) and ASCII. CODE Disassembled code. STRING Continuous character output. The number of words to be displayed per line when the code is not disassembled. Defaults are 4 (CM) and 8 (NM). The width in bytes of the displayed values when the code is not disassembled. Used to determine the output spacing, and may be 1, 2 (CM default) or 4 (NM default).
H[ELP] DESC: The DC (Display Code) command displays CM or NM program file code. Library code may also be displayed based on the type of the LOGADDR parameter (e.g., GRP(1.70), SYS(1.40)), or by using the appropriate Display Code command variant (e.g., DCG, DCS, and so on.). By default, disassembled code is displayed one instruction per line. $nmdat > Display the help entry for the DC command but only show the command description. $nmdat > help 123 "123" is a NUMBER.
HIST[ORY] Displays the history command stack. Syntax HIST[ORY] option Parameters option The history stack can be displayed three ways: ABS With absolute command numbers. Default. REL With relative command numbers. UNN Without command numbers. Examples %nmdebug > hist $1 = 1836/4 + 12 $2 ddb+224,20 $3 = [s-12] $4 c $5 ss $6 while [s] <> 0 do ss $7 dr status $8 ss By default, the history stack is displayed with absolute command numbers.
HIST[ORY] while [s] <> 0 do ss dr status ss Display the history stack without command numbers. This option allows the history to be written into a le in a form suitable for use as command le input at a later time. Limitations, Restrictions none Caution The output format of all System Debug commands is subject to change without notice.
IF If condition evaluates to TRUE, then execute all commands in cmdlist , else execute all commands in cmdlist2 . Syntax IF condition THEN command IF condition THEN { cmdlist } IF condition THEN command1 ELSE command2 IF condition THEN { cmdlist } ELSE command2 IF condition THEN command1 ELSE { cmdlist2 } IF condition THEN { cmdlist } ELSE { cmdlist2 } Parameters condition A logical expression to be evaluated.
IF Examples %cmdebug > if [q-3]>[db+4] then c If the contents of Q03 are greater than the contents of DB+4, then continue. $nmdebug > if (length>20) and (pcsf=a) then {wl "GOT IT"; c} If the value of the variable length is greater than 20, and the contents of the prede ned variable pcsf equals $a, then execute the following from the command list: print the string \GOT IT", then continue.
IGNORE Protects the next command (list) from error bailout. Syntax IGNORE option The IGNORE command protects the following command, or command list, from aborting due to a detected error condition. Unless protected by the IGNORE command, a command list or subsequent macro commands are aborted/ ushed as soon as any error occurs. A special option, QUIET, causes error messages that occur within a protected command list to be suppressed.
IGNORE In this example, an error causes the rest of a command list to be aborted, since it is not protected by the IGNORE command. As a result, the command that prints the value ($333) is never executed. %nmdebug > ignore; {wl 111; wl 22q; wl 333; wl 444} $111 Expected a number, variable,function, or procedure (error #3720) undefined operator is:"22q" $333 $444 In this example, the IGNORE command is used to protect the entire command list that follows it.
IGNORE Limitations, Restrictions none Caution 4-226 The output format of all System Debug commands is subject to change without notice. Programs that are developed to postprocess System Debug output should not depend on the exact format (spacing, alignment, number of lines, uppercase or lowercase, or spelling) of any System Debug command output. System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
xx INIT INIT xx Privileged Mode Initialize registers from a speci ed location. Syntax INITNM virtaddr [ISM |PIMREAL |PIMVIRTUAL] INITCM virtaddr [ISM |PIMREAL |PIMVIRTUAL] INITNM TCB INITCM TCB | CMG | REGS This command is for use by experienced DAT users and internals specialists to initialize DAT when a dump is corrupted. The command is also provided for the experienced Debug user. For the INITNM command, the NM register set is loaded from the speci ed location.
INIT xx containing the emulator/translator's native mode register set should be given so that the CM state may be extracted from the registers. The state of the emulator/translator is stored in the task control block (TCB). As in the PIM and ISM case above, the register data found is used to set up the CM state. The user desires to construct the CM state from scratch.
xx INIT regs are interpreted as containing values used by the emulator/translator. Examples $ nmdebug > initnm 0.tcb(20) Initialize the native mode registers from the indicated virtual address. % cmdebug > initcm 40153014 Initialize the CM registers from the interrupt marker that starts at address 40153014. The process was most likely in the emulator (or else the CM state would be stored in the CMGLOBALS area of the PIB).
KILL Debug only Privileged Mode Issues a request to process management to kill the speci ed process. Syntax KILL pin Parameters pin The process identi cation number (PIN) to be killed. If you are a privileged user, you may specify any PIN. If you are not privileged, you may specify any PIN that is a child of the process making this request. Examples $nmdat > kill 8 Tell process management to kill PIN 8.
KILL exact format (spacing, alignment, number of lines, uppercase or lowercase, or spelling) of any System Debug command output. System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
LEV Sets the current environment to the speci ed stack level in the stack markers. Syntax LEV [number] LEV [number] [interrupt level] The LEV command changes the current environment to the environment at the speci ed stack level. All commands accurately re ect the register values that are in e ect a level change. Windows also re ect the new level values. If the CONTINUE or SS command in Debug is issued after changing levels, an implicit LEV 0 is performed.
LEV Get previous frame (based on unwind info); IF frame is an interrupt stack marker (ISM) THEN Restore RP, SP, DP, SR4, SR5, SR0, PCQ from the ISM ELSE Set RP, SP, DP, SR4, to new values from the stack; Restore call save registers (based on unwind info); Parameters number The stack level number at which the environment should be set. interrupt level The interrupt level number at which the environment should be set. If this parameter is omitted, the current interrupt level is assumed.
LEV %cmdebug > dr cmpc CMPC=PROG %0.253 The above stack trace reveals that the level has been changed to stack level two (note the asterisk). The current value of CMPC is also displayed and con rms that the registers have been correctly updated as well. 4-234 System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
LEV $nmdebug > tr,ism PC=a.006777fc trap_handler * 0) SP=40221338 RP=a.002a1fec conditional+$ac 1) SP=40221338 RP=a.000a5040 hpe_interrupt_marker_stub --- Interrupt Marker 2) SP=402211e8 RP=25d.00015134 small_divisor+$8 --- End Interrupt Marker Frame --PC=25d.00015134 small_divisor+$8 0) SP=402211e8 RP=25d.00015d38 average+$b0 1) SP=402211e8 RP=25d.00015c74 ?average+$8 export stub: 25c.00005d98 processstudent+$74 2) SP=40221180 RP=25c.00006b1c PROGRAM+$300 3) SP=40221100 RP=25c.
LEV If the environment for the CM stack is set to a level that is a switch marker, no values for CMPC and CIR are available. Caution 4-236 The output format of all System Debug commands is subject to change without notice. Programs that are developed to postprocess System Debug output should not depend on the exact format (spacing, alignment, number of lines, uppercase or lowercase, or spelling) of any System Debug command output. System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
LIST LIST Controls the recording of input and output to a list le. Syntax LIST LIST [ lename] LIST [ON ] LIST [OFF] LIST [CLOSE] All Debug input/output is recorded to an open, active list le. This includes the prompt, user command input, and all resulting output, with the exception of window displays and updates. Users typically use the list le to record Debug output to a le for later reference or printing.
LIST Parameters lename The le name for the list le that is to be opened. If the le already exists, it is automatically purged (without warning), and reopened new. If omitted, the status of the current list le is displayed. Examples %cmdebug > list junk1 Open a new list le named junk1 and activate it (ON). All Debug input/output is automatically recorded in this le until it is explicitly deactivated (LIST OFF) or closed (LIST CLOSE). 4-238 System Debug Command Specifications FINAL TRIM SIZE : 7.
LIST %cmdebug > list off %cmdebug > dq-40, 200 %cmdebug > list on Temporarily disable the list le, while we display 200 Q-relative words, then enable the list le again. %cmdebug > list close Close (and save) the current list le. Auto-listing is now o . Limitations, Restrictions Unless a le equation is used, the list le is opened as follows: CCTL, FIXED, ASCII, 20000 Records. The record size is based on the LIST_WIDTH environment variable.
LISTREDO Displays the history command stack. Syntax LISTREDO alias for HIST[ORY] LISTREDO is a prede ned alias for the HIST[ORY] command. Caution 4-240 The output format of all System Debug commands is subject to change without notice. Programs that are developed to postprocess System Debug output should not depend on the exact format (spacing, alignment, number of lines, uppercase or lowercase, or spelling) of any System Debug command output. System Debug Command Specifications FINAL TRIM SIZE : 7.
LOADINFO LOADINFO Debug only Lists information about the currently loaded program and libraries. Syntax LOADINFO For Debug, this command displays the list of les that are loaded by the current process. Both CM and NM libraries and program les are included in the list. This list is automatically updated as the process dynamically loads NM and CM libraries. For DAT and SAT, this command displays the list of les for which symbol name and address information is available.
LOADINFO nm nm nm cm USER USER SYS GRP LIB1.TESTLIBS.QA LIB2.TESTLIBS.QA NL.PUB.SYS SL.TEST.QA SID=$26 SID=$27 SID=$a Assume that a typical NM program is being executed. Display the currently loaded program and library les. 4-242 System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
LOADINFO % cmdebug > loadinfo cm PROG PFLIGHT.MODEL.DESIGN parm=#3 info="wind 5, clouds2" cm GRP SL.MODEL.DESIGN cm PUB SL.PUB.DESIGN cm SYS SL.PUB.SYS nm GRP XL.PUB.SYS nm SYS NL.PUB.SYS SID=$1c SID=$a Assume that a typical CM program is being executed. Display the currently loaded program and library les. Limitations, Restrictions If the INFO string is longer than 255 characters, it is not displayed. Caution The output format of all System Debug commands is subject to change without notice.
LOADPROC Debug only Dynamically loads a speci ed CM procedure from a logically speci ed CM library selector. Syntax LOADPROC procedurename libselect Parameters procedurename libselect The name of the procedure to be loaded. The logical library from which the procedure is to be loaded.
LOADPROC Limitations, Restrictions none Caution The output format of all System Debug commands is subject to change without notice. Programs that are developed to postprocess System Debug output should not depend on the exact format (spacing, alignment, number of lines, uppercase or lowercase, or spelling) of any System Debug command output. System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
LOC De nes a local variable within a macro body. Syntax LOC var name [:var type] [=] var value The LOC command can only be executed within a macro. Local variables are known only to the macro in which they are de ned. The environment variable NONLOCALVARS may be changed so that local variables are accessible to any macro called after a local variable has been de ned. (Refer to the ENV command). Local variables are automatically deleted when the macro in which the variable was de ned nishes execution.
LOC S64 SPTR LPTR PROG GRP PUB LGRP LPUB SYS USER TRANS Signed 64 bit Short pointer Long pointer Program logical address Group library logical address Account library logical address Logon group library logical address Logon account library logical address System library logical address User library logical address Translated CM code virtual address If the type speci cation is omitted, the type is assigned automatically, based on var value .
LOC nmdat > wl sum (1 2) var temp : U16 = $3 var loc p2 : U16 = $2 var loc p1 : U16 = $1 $3 This example shows how the LOCLIST command, when executed as part of a macro body, displays all currently de ned local variables. Note that the macro parameters appear as local variables. Local variables are always listed in the reverse order that they were created. Limitations, Restrictions none Caution 4-248 The output format of all System Debug commands is subject to change without notice.
LOCL[IST] LOCL[IST] Lists the local variables that are de ned with a macro. Syntax LOCL[IST] [pattern] Parameters pattern The name of the local variable(s) to be listed. This parameter can be speci ed with wildcards or with a full regular expression. Refer to appendix A for additional information about pattern matching and regular expressions. The following wildcards are supported: @ Matches any character(s). ? Matches any alphabetic character. # Matches any numeric character.
LOCL[IST] Examples nmdat > mac sum(p1 p2) {loc temp p1+p2; loclist; ret temp} nmdat > wl sum (1 2) var temp : U16 = $3 var loc p2 : U16 = $2 var loc p1 : U16 = $1 $3 This example shows how the LOCLIST command, when executed as part of a macro body, displays all currently de ned local variables. Note that the macro parameters appear as local variables. Local variables are always listed in the reverse order that they were created.
LOG LOG Controls the recording of user input to the log le. Syntax LOG LOG [ lename] LOG [ON ] LOG [OFF ] LOG [CLOSE] All Debug user input can be recorded to the log le. The log le can be used as a playback le. LOG, entered alone, displays the state of the log le, including the le name, if open, and the current status (ON/OFF). LOG lename opens the speci ed le and activates (turns on) the log le. If another log le is already opened, it is rst closed (saved) before the new le is opened.
LOG Parameters lename The le name for the log le that is to be opened. If the le already exists, it is automatically purged (without warning), and reopened new. This command performs an implicit LOG ON. If omitted, the status of the current log le is displayed. Examples %cmdebug > log logfile Open a new log le named logfile and start logging to it. %cmdebug > log close Close (and save) the current log le. Auto-logging is now o .
M (modify) M (modify) Debug only Privileged Mode: MA, MD, MCS, MZ, MSEC Modi es the contents of the speci ed number of words at the speci ed address. Syntax MA MD MDB MS MQ o set dst.
M (modify) Parameters o set 4-254 MA, MDB, MQ, MS only. The CM word o set that speci es the relative starting location of the area to be modi ed. System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
M (modify) logaddr MC, MCG, MCP, MCLG, MCLP, MS, MCU only. A full logical code address (LCPTR) speci es three necessary items: The logical code le (PROG, GRP, SYS, and so on.). NM: the virtual space ID number (SID). CM: the logical segment number. NM: the virtual byte o set within the space. CM: the word o set within the code segment. Logical code addresses can be speci ed in various levels of detail: As a full logical code pointer (LCPTR): MC procname+20 Procedure name lookups return LCPTRs.
M (modify) The search path used for procedure name lookups is based on the command su x letter: MC Full search path: NM: PROG, GRP, PUB, USER(s), SYS CM: PROG, GRP, PUB, LGRP, LPUB, SYS MCG Search GRP, the group library. MCP Search PUB, the account library. MCLG Search LGRP, the logon group library. MCLP Search LPUB, the logon account library. MCS Search SYS, the system library. MCU Search USER, the user library.
M (modify) fname MCU only. The le name of the NM user library. Since multiple NM libraries can be bound with the XL= option on a RUN command, :run nmprog; xl=lib1,lib2.testgrp,lib3 it is necessary to specify the desired NM user library. For example: MCU lib1 204c MCU lib2.testgrp test20+1c0 cmabsaddr If the le name is not fully quali ed, the following defaults are used: Default account: the account of the program le. Default group: the group of the program le. MCA, MCAX only.
M (modify) realaddr 4-258 Virtaddr can be a short pointer, a long pointer, or a full logical code pointer. MZ only. The real mode memory address to be modi ed. System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
M (modify) ldev.o count MSEC only. The logical device number (LDEV) and byte o set of the data on disk to be displayed. This address is entered in the form ldev.byteo set . MA, MC, MD, MDB, MS, MQ: The number of CM 16-bit words to be modi ed. MC, MV, MZ: The number of NM 32-bit words to be modi ed. base If omitted, a single line of values is modi ed.
M (modify) $ DST 1.37 = ".." $fff0 := 1234 $ DST 1.38 = ".." $0 := . current/remaining modifications aborted at user request Modify 6 words starting at DST 1.64. Display values (and addresses) in hex. DST 1.34 is assigned a new value of %111. DST 1.35 retains its original value of %5. DST 1.36 is assigned a new value of $c0. DST 1.37 is assigned a new value of 1234. Dot \." terminates modi cations. The modi cations for DST 1.34 through 1.37 have been successfully completed.
M (modify) %cmdebug > mq-30,6 % Q-30 = ".P" % Q-27 = "UB" % Q-26 = ".S" % Q-25 = "YS" % Q-24 = ".." % Q-23 = ".." %27120 %52502 %27123 %54523 %177772 %7 := := := := := := "AB" 'CD' u16("EF") [q-2] !s + (1000-[db+22]/2) Modify 6 words starting at Q-%30. The current values are displayed in ASCII and octal (current output base). Q-30 is assigned the (implicitly coerced) integer value of \AB". Q-27 is assigned the implicitly coerced) integer value of 'CD'.
MAC[RO] De nes a macro. Syntax MAC[RO] name {body} MAC[RO] name [ (parameters) ] {body} MAC[RO] name [ (parameters) ] [options] {body} Macros are a body of commands that are executed (invoked) by name . Macros can have optional parameters. Macros can be executed as if they were commands. Macros can also be invoked as functions within expressions to return a value.
MAC[RO] Parameters name The name of the macro that is being de ned. Names must begin with an alphabetic character and are restricted to thirty-two (32) characters, that must be alphanumeric, or \ ", or \' ", or \$". Longer names are truncated (with a warning). Names are case insensitive. All macros are functions that can be used as operands within expression to return a single value of a speci ed type. System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
MAC[RO] A default macro return value can optionally be speci ed directly following the macro name. The return type must be preceded by a colon. The default return value must be preceded by an equal sign, and can be entered as an expression.
MAC[RO] Each parameter de nition can include an optional parmtype declaration that must follow after a colon. In addition, a default initial value for the parameter can optionally be speci ed, preceded by an equal sign. The initial value can be an expression. Below is a syntax of a parameter description, followed by examples: ( parmname1 [:parmtype1] [=parm default value1], ..
MAC[RO] Parameters are referenced within the macro body in the same manner that local variables are referenced. The parameter name can be preceded by an optional exclamation mark (!) to avoid ambiguity. fbody g When execution of the macro body is completed, the local variables declared for the parameters are automatically deleted. The macro body is a single command, or a list of commands, entered between curly braces. Multiple commands must be separated by semicolons.
MAC[RO] MACHELP = help string The following are typical valid declarations for macro options: MACVER = 'A.00.01' MACKEY = \PROCESS PIN PARENT" MACHELP = \Returns the pin number of the parent process" By default, the null string (' ') is assigned for unspeci ed options. System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
MAC[RO] Examples $nmdat > macro showtime {wl 'The current time is: ' time} $nmdat > showtime The current time is: 2:14 PM This example demonstrates a simple macro that executes a single command. The new macro, named showtime, is de ned and then executed as if it were a command. The macro body, in this case a simple write command, is executed, and the current time is displayed. This macro has no parameters.
MAC[RO] nesting level, or depth of unterminated curly braces, is displayed as part of the prompt. The macro starline is called with the parameter 5, and a line of ve stars is printed. The macro is called again to print a line with sixty stars. In the third invocation no parameter value is speci ed, so the default value of twenty stars is used. The fourth and nal call displays the parameter type checking, which is performed for typed macro parameters.
MAC[RO] $nmdat > mac fancytime {starline(#30); showtime; starline(#30)} $nmdat > fancytime ****************************** The current time is: 2:17 PM ****************************** In this example a new macro named fancytime is de ned. This new macro calls the two previously de ned macros in order to produce a fancy display of the time. Macros can include calls to other macros. The contents of macro bodies are not inspected when macros are de ned.
MAC[RO] %nmdat > wl double(2) $4 %nmdat > wl double(1+2)+1 $7 De nes macro double as a function with one parameter p1. The RETURN command is used to return the functional result of twice the input parameter. Note how the macro is used as a function, as an operand in an expression. System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
MAC[RO] %nmdat > mac triple (p1:INT) { return p1*3 } %nmdat > wl triple(2) $6 %nmdat > wl triple (double (1+2)) $12 Macro function triple is similar to macro function double de ned above. Note that macros (used as functions) can be nested within expressions.
MAC[RO] Note that the macro de nition was preceded by a left curly brace in order to enter multi-line mode . This allowed the options to be speci ed on separate lines, before the left curly brace for the macro body. This macro calls itself recursively, but protects against runaway recursion by testing the input parameter against an upper limit of ten. System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
MAC[RO] Discussion - Macro Parameters Assume that the following macro is de ned. $nmdat > { {$1} multi {$2} multi {$2} multi {$1} multi $nmdat > macro double( num=$123, loud=TRUE) > { if loud > then wl 'the double of ', num, ' = ', num*2; > return num*2} > } This macro has two optional parameters: num that defaults to the value 123, and loud that defaults to TRUE. The macro is written in a manner that allows it to be invoked as a function to return a value that is the double of the input parameter.
MAC[RO] $246 $nmdat > wl double the double of $123 = $246 $246 Macro Commands For macros invoked as commands, parameter(s) can be speci ed without parentheses, in the same manner that System Debug commands are normally used. Unlike normal System Debug commands, however, parentheses can be used to surround a parameter list for a macro command. If the rst parameter to a macro command requires a parenthesized expression, an ambiguity arises.
MAC[RO] Limitations, Restrictions Refer to ENV MACROS and ENV MACROS_LIMIT. These environment variables determine the number of macros that can be created. Current limit of 32 characters in a macro name or macro parameter name. Current limit of ve parameters per macro. Macro parameters are passed by value. Parameter values are not changed. The total length of an entire macro de nition is limited by the maximum supported string length, that is currently 2048 characters. See the STRMAX function.
MACD[EL] MACD[EL] Macro delete. Deletes the speci ed macro de nition(s). Syntax MACD[EL] pattern Parameters pattern The name(s) of the macro(s) to be deleted. This parameter can be speci ed with wildcards or with a full regular expression. Refer to appendix A for additional information about pattern matching and regular expressions. The following wildcards are supported: @ Matches any character(s). ? Matches any alphabetic character. # Matches any numeric character.
MACD[EL] Examples %cmdebug > macd test2 Delete the macro named test2. %cmdebug > macd format@ Delete all macros that match the pattern \format@". Limitations, Restrictions none Caution 4-278 The output format of all System Debug commands is subject to change without notice. Programs that are developed to postprocess System Debug output should not depend on the exact format (spacing, alignment, number of lines, uppercase or lowercase, or spelling) of any System Debug command output.
MACECHO MACECHO Controls the \echoing" of each macro command line prior to its execution. Syntax MACECHO pattern [level] Parameters pattern The name(s) of the macro(s) for which echoing is to be enabled/disabled. This parameter can be speci ed with wildcards or with a full regular expression. Refer to appendix A for additional information about pattern matching and regular expressions. The following wildcards are supported: @ Matches any character(s). ? Matches any alphabetic character.
MACECHO 0 1 4-280 Disabled (default). Enabled. System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
MACECHO Examples $nmdat > macl @ all macro driver machelp = 'This macro calls macros "triple", "min", and "inc" in order' + 'to demonstrate the MACECHO, MACREF, and MACTRACE commands' { loc one 1; loc two 2; wl min ( triple(two) inc(one) ) } macro inc ( num : ANY ) machelp = 'returns the increment of "num"' { loc temp num; loc temp temp + 1; return temp } macro min ( parm1 : ANY , parm2 : ANY ) machelp = 'returns the min of "parm1" or "parm2"' { if parm1 < parm2 then return parm1 else return parm2 } macro
MACECHO example, macro driver executes silently, and only the expected macro output is displayed. $nmdat > $nmdat > driver driver driver $2 macecho driver 1 driver > loc one 1 > loc two 2 > wl min ( triple(two) inc(one) ) In this example, echoing is enabled for macro driver. Then, when the macro is executed, each command line in the macro body is displayed just prior to the execution of that line. 4-282 System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
MACECHO $nmdat > $nmdat > driver driver driver min min $2 macecho min 1 driver > loc one 1 > loc two 2 > wl min ( triple(two) inc(one) ) > if parm1 < parm2 then return parm1 else return parm2 > return parm2 In this example, echoing is enabled for macro min, in addition to macro driver which remains enabled from above. Command lines are displayed for both macros. Notice that the command lines for macro min are indented, since it is called by macro driver.
MACECHO $nmdat > macecho min 1 $nmdat > driver min > if parm1 < parm2 then return parm1 else return parm2 min > return parm2 $2 $nmdat > macl @ echo macro min echo In this example, echoing is enabled for macro min. The command lines for macro min are displayed, indented. The MACLIST command is used to display all macros that currently have ECHO enabled, and macro min is indicated. 4-284 System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
MACECHO Limitations, Restrictions none Caution The output format of all System Debug commands is subject to change without notice. Programs that are developed to postprocess System Debug output should not depend on the exact format (spacing, alignment, number of lines, uppercase or lowercase, or spelling) of any System Debug command output. System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
MACL[IST] Macro list. Lists the speci ed macro de nition(s). Syntax MACL[IST] [pattern] [options] Macros are always listed in alphabetical order. Parameters pattern The name(s) of the macro(s) to be listed. This parameter can be speci ed with wildcards or with a full regular expression. Refer to appendix A for additional information about pattern matching and regular expressions. The following wildcards are supported: @ Matches any character(s). ? Matches any alphabetic character.
MACL[IST] options Display Options Special options can be speci ed to control the level of detail that is presented for each macro de nition. Any number of the following options can be speci ed in any order, separated by blanks: NAME Display the macro name, type. (Default value) PARMS Display parameter names, types, default values. NOPARMS Skip parameter display. BODY Display the macro body as a string. FMTBODY Format the macro body command lines. NOBODY Skip body display. VER Display the MACVER string.
MACL[IST] The parameters keyword and version are entered as a single word, or a quoted text string. The interpreter will search for an exact occurrence of the pattern within the speci ed string. Keyword and version comparisons are case sensitive. REF Display the macro reference counts. ECHO Display only macros that have ECHO set. TRACE Display only macros that have TRACE set.
MACL[IST] Examples $nmdat > macl macro cmpin_db macro cmport_context macro cmport_dst macro cmport_name macro cmport_record macro config_device_ldev macro config_device_path macro config_memory macro console_ldev macro convert_string macro delete_blanks macro event_ci_history macro event_footprint macro event_io_trace macro event_process macro event_process_errors macro file_in_use macro first_entry : : : : : PTR/LPTR = $0.0 PTR/LPTR = $0.0 INT/U16 = $0 INT/U16 = $0 PTR/LPTR = $0.
MACL[IST] $nmdat > macl fs_table all nobody macro fs_table : UNKN/U16 = $0 ( entry_ptr : PTR , table : STR , [detail : INT / U16 = $1] , [field_name : STR = ] ) machelp = 'Print the table and optionally returns the field value' mackey = 'MXFS HP Q_FS_X_NM EL FS TABLE PLFD GDPD GUFD LACB PACB MVT' +^S 'FMAVT AFT FLAB' macver = 'A.00.01' For the macro fs_table, display all macro attributes, except for the macro body (NOBODY).
MACL[IST] macro port_record : PTR/LPTR = $0.0 macro ui_job_port_msg : UNKN/U16 = $0 macro ui_jsmain_port_msg : UNKN/U16 = $0 List all macros that match the regular expression pattern \.*port .*". By default, only the macro names (and default return values/types) are displayed. System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
MACL[IST] $nmdat > macl @timer@ help macro format_timer_msg machelp = 'Formats the timer request list entrys message.' macro io_timer_list machelp = 'Formats the timer request list.' macro start_timer machelp = 'Sets variable cpustart to current value of HPCPUSECS CI' + 'variable.' macro stop_timer machelp = 'Sets variable cputime to current value of HPCPUSECS CI' + 'variable - variable cpustart.' macro timer machelp = 'Times events and then prints elapsed cpu time.
MACL[IST] List all macros, but only if the keyword CHAIN can be located within the macro's keyword string, de ned with the MACKEY option. Display the macro name and the MACHELP string for those macros. System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
MACL[IST] $nmdat > macl @ key=GUFD key macro fs_addr : PTR/LPTR = $0.0 mackey = 'MXFS HP Q_FS_X_NM EL FS FILENAME FILE ADDRESS GUFD' macro fs_fname_nm : STR/STR = mackey = 'MXFS HP Q_FS_X_NM EL FS FNAME GUFD' macro fs_fname_to_gufd : PTR/LPTR = $0.0 mackey = 'MXFS HP Q_FS_X_NM EL FS GUFD GLOBAL UNIQUE FILE DESCRIPTOR' macro fs_gufd : PTR/LPTR = $0.
MACL[IST] loc first_entry_ptr = first_entry (vsod_hdr); if error <> 0 then return NMNIL; loc max_entry_ptr = first_entry_ptr + symval (vsod_hdr, 'tbl_hdr.' + 'hdr_rs^ rc_block.
MACL[IST] macro macro macro macro macro macro macro get_disp_wait_event get_element get_entry_ptr get_sublist get_table_info kso_number kso_pointer trace trace trace trace trace trace trace = = = = = = = 3 1 3 3 3 1 2 List all macros for which the MACTRACE command has been used to enable tracing of the macro execution. The trace level number is displayed.
MACL[IST] Listing Macros to a File The following example demonstrates how to produce a paged listing of all currently de ned macros, formatted to a le, one macro per page. The example is explained command by command, based on the command numbers that appear within the prompt lines. %10 %11 %12 %13 %14 (%53) (%53) (%53) (%53) (%53) cmdat cmdat cmdat cmdat cmdat > > > > > list macros env term_loud false maclist @ all page list close set def Command %10 opens an o ine list le, named MACROS.
MACL[IST] When macros are de ned, all comments are removed, and the macro body is stored in compressed form. The MACLIST command does not display the original form of the macro body. Caution 4-298 The output format of all System Debug commands is subject to change without notice. Programs that are developed to postprocess System Debug output should not depend on the exact format (spacing, alignment, number of lines, uppercase or lowercase, or spelling) of any System Debug command output.
MACREF MACREF Resets the reference count to zero for the speci ed macro(s). Syntax MACREF pattern Reference counts are maintained for macros. Each time a macro is invoked, the reference count for the macro is incremental. Current reference counts can be displayed with the MACLIST command. This MACREF command is used to reset macro reference counts. Parameters pattern The name(s) of the macro(s) for which the reference counts are to be reset to zero.
MACREF `.*` `pib.*` `log2[0-9][0-9]4` 4-300 System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
MACREF Examples $nmdat > macl @ all macro driver machelp = 'This macro calls macros "triple", "min", and "inc" in order' + 'to demonstrate the MACECHO, MACREF, and MACTRACE commands' { loc one 1; loc two 2; wl min ( triple(two) inc(one) ) } macro inc ( num : ANY ) machelp = 'returns the increment of "num"' { loc temp num; loc temp temp + 1; return temp } macro min ( parm1 : ANY , parm2 : ANY ) machelp = 'returns the min of "parm1" or "parm2"' { if parm1 < parm2 then return parm1 else return parm2 } macro
MACREF The MACLIST command is used to display the current reference counts for all macros. At this point, the reference counts for all macros are zero. $nmdat > wl inc(4) $5 $nmdat > wl min(inc(3) inc(0)) $1 $nmdat > macl @ ref macro driver ref = #0 macro inc ref = #3 macro min ref = #1 macro triple ref = #0 A few macros are invoked, then the MACLIST command is used again to display the current reference counts. Macro inc has been called three times, and macro min has been called one time.
MACREF macro min macro triple ref = #0 ref = #0 The reference counts for all macros are reset to zero. Limitations, Restrictions The macro reference count is incremental at macro entry, after parameter type checking, but before actual execution of the macro body. The actual macro execution may result in errors and be terminated. Reference counts, therefore, indicate the number of times the macro has been called (not the number of times that the macro has been successfully executed to completion).
MACTRACE Controls the \tracing" of macro execution. Syntax MACTRACE pattern [level] It is possible to enable/disable the observation of entry/exit of macros, along with input parameter values and functional return values. Parameters pattern The name(s) of the macro(s) that are to be traced. This parameter can be speci ed with wildcards or with a full regular expression. Refer to appendix A for additional information about pattern matching and regular expressions.
MACTRACE level The level of macro \tracing" detail. Four increasing levels are supported: 1 All tracing is disabled. (Default) 2 Macro entry is displayed. 3 Macro entry and exit are displayed. 4 Macro entry, input parameter values, macro exit, and functional return values are displayed.
MACTRACE } Assume that the macros listed above have been de ned. A few of the macros use local variables ine ciently, for the purpose of demonstration. $nmdat > driver $2 Macros normally execute silently, as they invoke commands, and often other macros. In this example, macro driver is invoked, and this macro calls several other macros. Since macro tracing is not enabled for any of these macros, execution proceeds silently.
MACTRACE --> parms macro: inc ( num : ANY = $1 ) <-- exit macro: inc : U16 = $2 --> parms macro: min ( parm1 : ANY = $6 , parm2 : ANY = $2 ) <-- exit macro: min : U16 = $2 $2 <-- exit macro: driver In this example, macro tracing is set to level 3 for all macros. $nmdat > mactrace @ Tracing is disabled for all macros. Limitations, Restrictions none Caution The output format of all System Debug commands is subject to change without notice.
MAP Opens a le and maps it into a usable virtual address space. Syntax MAP lename [option] The MAP command allows a le to be accessed (displayed or modi ed) in virtual space by other System Debug commands. This command is useful for analyzing dump les generated by subsystems that are not part of the dump created by the DUMP utility. Parameters lename option 4-308 The le name of the le to map into usable address space.
MAP OFFSET value Remember that le codes are thought of as negative decimal numbers. Map the le, in starting at the speci ed virtual byte o set. The default o set is 0. System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
MAP Examples $nmdebug > map DTCDUMP 1 DTCDUMP.DUMPUSER.SUPPORT 1000.0 Bytes = 43dc Open the le DTCDUMP and assign it to the virtual object in space $1000. It is mapped to le index number 1. Use this number to UNMAP the le. $nmdebug > map DATA2 off c0004c00 2 DATA2.DUMPUSER.SUPPORT 1000.1c004c00. Bytes = 2340 Map the le DATA2 at a speci ed virtual o set of $c0004c00. Related commands: MAPLIST, UNMAP. Related functions: MAPINDEX, MAPVA, MAPSIZE.
MAPL[IST] MAPL[IST] Lists the speci ed le(s) that have been opened with the MAP command. Syntax MAPL[IST] [pattern] Parameters pattern The le name(s) of the mapped les to be listed. If no le name is given, all currently mapped les are displayed. This parameter can be speci ed with wildcards or with a full regular expression. Refer to appendix A for additional information about pattern matching and regular expressions. The following wildcards are supported: @ Matches any character(s).
MAPL[IST] Examples $nmdebug > maplist 1 DTCDUMP.DUMPUSER.SUPPORT 2 DTCDUMP2.DUMPUSER.SUPPORT 3 MYFILE.MYGROUP.MYACCT 1000.0 1001.0 1005.0 Bytes = 43dc Bytes = c84 Bytes = 1004 $nmdebug > mapl myfile 3 MYFILE.MYGROUP.MYACCT 1005.0 Bytes = 1004 Limitations, Restrictions none Caution 4-312 The output format of all System Debug commands is subject to change without notice.
MODD MODD DAT ONLY Modi cation delete. Deletes a modi cation entry speci ed by index number. Syntax MODD index @ The MODD command is used to delete a modi cation which has been applied to an opened dump. Parameters index @ The index number of the modi cation entry which is to be deleted. @, the wildcard character, can be used to delete all currently de ned entries. Examples $nmdat > modl Current TEMPORARY dump modification(s): 1) VIRT $b.80b4f300 REAL $a80300 $70ff4e74 "p.
MODD Caution 4-314 The output format of all DAT/DEBUG commands is subject to change without notice. Programs which are developed to postprocess DAT/DEBUG output should not depend on the exact format (spacing, alignment, number of lines, upper or lower case, or spelling) of any DAT/DEBUG command output. System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
MODL MODL DAT ONLY Modi cation list. Lists current dump modi cations. Syntax MODL index @ The MODL command is used to list all current modi cations which have been applied to an opened dump. Parameters index The index number of the modi cation entry to display. @ The wildcard symbol \@" can be used to display all entries. If no parameter is entered, the default is that all entries are displayed.
MODL $nmdat > mz 1d654 REAL $0001d654 = "...." $0 := 01 Added TEMPORARY dump modification. Use MODL to list, MODD to delete. 2) REAL $1d654 $ffffffff "...." (orig: $0 "....") $nmdat > msec vtos(a.0) SEC $1.a552000 = "...." $20b0104 := 20c0104 Added TEMPORARY dump modification. Use MODL to list, MODD to delete. 3) SEC $1.a552000 $20c0104 "...." (orig: $20b0104 "....") $nmdat > modl Current TEMPORARY dump modification(s): 1) VIRT $b.80b4f300 REAL $a80300 $70ff4e74 "p.Nt" 2) REAL $1d654 $ffffffff "....
MPEXL MPEXL PRIVILEGED MODE Displays information about the les which were used to build the operating system SOM portion of the NL.PUB.SYS for MPE XL. Syntax MPEXL [ leset] [optionstring] [output le] During the build and integration process for MPE XL, valuable submittal build line version numbers, date and time, submittal number, source control version numbers, and user-de ned keywords are maintained for every single le which is used to construct the MPE XL operating system SOM portion of NL.PUB.SYS.
MPEXL display of individual elds within the line. Additional options can be used as lters. For example, you can request to see only those les which are integrated into a particular build line, which were submitted after a certain date, and which contain a speci ed user keyword. Output can be directed to a le instead of to the terminal. You can use the output les as input data for other existing tools, such as awk, sort, grep, MPE SORT.
MPEXL Field Display Options: The display of each individual eld can be selectively enabled or disabled. By default, all elds are displayed; however, on the terminal, some data may not show up on the screen. Terminal lines are automatically truncated to the current value of the environment variable ENV TERM WIDTH , which defaults to 79 characters. Fields are speci F File G Group V VUFG D Date M MSN R Rev U User ed by the rst letter of the eld name: le name group name V.UU.
MPEXL Field Filter Options: The leset parameter supports ltering based on le name. The eld lter options allow additional ltering, based on the values of individual elds. The form of a lter option is: The eld letter must be followed immediately by the relational operator, which must be followed immediately by the value. The eld value must be entered in the supported format, which is the same as the way it is displayed.
MPEXL Filtering based on user-de ned keywords is slightly di erent. The equal sign \=" is used to match a user keyword value. The value can be an unquoted single word (terminated by the next blank or comma), or a quoted string of characters. In both cases, if the speci ed keyword pattern is found anywhere within the keyword string(s) de ned with the le, then comparison succeeds. By default, keyword matching is case sensitive, unless the Ui (ignore case) form is explicitly used.
MPEXL Examples d c $nmdebug > mpex 1 DPDA .ACTIVITY 0.00.00 EACTIV .ACTIVITY 0.00.00 OACTIV .ACTIVITY 1.34.12 PACTIV .ACTIVITY 0.00.00 DAFIFUNC.AFIDAM A.41.00 DDAMMSGS.AFIDAM 1.34.04 OAFIMGR .AFIDAM A.41.00 TDAMTABL.AFIDAM A.41.00 XABORTPF.AFIDAM 1.34.04 XAFIMGR .AFIDAM 1.34.04 XAFITERM.AFIDAM 1.34.04 XCONXFIG.AFIDAM 1.34.04 XDAMDATE.AFIDAM A.41.00 XDIAGLOG.AFIDAM 1.34.04 XDMAREQS.AFIDAM A.41.00 XEVENT .AFIDAM 1.34.04 XLKDIAGS.AFIDAM 1.34.04 XMSGRJCT.AFIDAM 1.34.04 DAHLDATA.AHOSTDM 0.00.00 DALHERRS.
MPEXL By default, information is displayed for all les (@.@). Use 4CTRL5Y to interrupt the display to the terminal. In the following example, information for all les (@.@) is written into the le \versions". This le includes the backslash delimiter between each eld and is suitable as input for AWK: $nmdebug > mpexl @.@,,versions d c In the following example, information will be displayed for all les which begin with the letter T in the group AHOSTDM. $nmdebug . mpexl t@.ahostdm TALHMSGS.AHOSTDM 0.00.
MPEXL d c In the following example, information is displayed for all X- les in the group AFIDAM. The option string disables the display of the Version, Rev, and User keyword elds. The remaining enabled elds (File, Group, Date, and MSN) are displayed. $nmdebug > mpexl XABORTPF.AFIDAM XAFIMGR .AFIDAM XAFITERM.AFIDAM XCONXFIG.AFIDAM XDAMDATE.AFIDAM XDIAGLOG.AFIDAM XDMAREQS.AFIDAM XEVENT .AFIDAM XLKDIAGS.AFIDAM XMSGRJCT.AFIDAM 4-324 x@.
MPEXL d Three examples follow. The rst two examples display all of the les whose Master Submittal Number equals M4129 or M4295. The third example does not display anything, since MSN lters are ANDed, and no le can have both MSN 4129 and MSN 4295. $nmdebug > mpexl ,'m=4129'; EFEQINFO.FSMPEII A.41.00 19890323:1640 M04129 R '' XFEQINFO.FSMPEII A.41.00 19890323:1640 M04129 R '' $nmdebug > mpexl TCIOPORT.CIOCAM XRELEASE.CIOCAM XTIMER .CIOCAM c d c d c a @,'m=4295' A.41.02 19890331:1650 M04295 R '' A.41.
MPEXL d c d The following displays the lename, gorup name, build version and submittal date for all les which were submitted after April 1, 1989. $nmdebug > mpexl AVER .ASMVER HGRPTBL .ASMVER HVER .ASMVER HVERFILE.ASMVER DBUILDID.MAIN HBUILDID.MAIN OUTIL .NLIO IODFAULT.SYSG ,"+fgvd d>=19890401" A.41.10 19890502:1906 A.41.00 19890404:1922 A.41.00 19890404:1922 A.41.00 19890404:2041 A.41.10 19890428:1238 A.41.10 19890428:1238 A.41.02 19890404:1833 A.41.
MPEXL d The following displays all les which meet all the following critera: they are in the group VSM they were accepted into submittal build line A.41.00 their source control revision is not equal to 1.4. a $nmdebug > mpexl @.vsm 'v=A.41.00 r<>1.4' XVUTIL .VSM A.41.00 19890317:1921 M04187 R1.1.1.1 '' c d c b The following displays the lename, date, and buld line version for all X- les which were acepted into build A.41.00 or later, submitted after March 1, 1989. $nmdebug > mpexl x@.
MPEXL d c The following displays all les which were accepted into submittal build line A.42.01 after the date March 28, 1989. $nmdebug > mpexl TCIOPORT.CIOCAM XRELEASE.CIOCAM XTIMER .CIOCAM OUTIL .NLIO OPMEACC .SAT IODFAULT.SYSG OSYS1 .SYSTEM TSYS .SYSTEM ,'v=a.41.02 d>19890328' A.41.02 19890331:1650 A.41.02 19890331:1650 A.41.02 19890331:1650 A.41.02 19890404:1833 A.41.02 19890331:1742 A.41.02 19890404:1812 A.41.02 19890331:1658 A.41.
MPEXL d The following displays all les in the group SAT whose source control revision number is greater than 5.1. $nmdebug > mpexl @.sat 'r>5.1' ONMMPEXL.SAT A.41.00 19890327:1500 M04260 R5.2 'BuG DaT SaT' OPMEACC .SAT A.41.02 19890331:1742 M04306 R5.3 'SaT' c a b The following lists all C- les which were accepted after March 1, 1989, and which contain the user keyword \SaT" (case sensitive). d a $nmdebug > mpexl c@ 'd>19890301 u=SaT' CCMUTLC .CCDAT A.41.00 19890323:1519 M04043 R5.
MPEXL Limitations Restrictions Several (non-restrictive) limits are de ned for the eld lter options: The total number of all eld lter options for the elds Date, VUG, MSN, and Rev must be eight or less. This limit allows a pair of lters (such as a range) to be de ned for each eld. Impossible non-overlapping ranges can be requested without warning or error. No lines will match if mutually exclusive conditions are de ned for the same eld. For example, the range "M<=100 M>=200" is impossible.
MPSW MPSW Privileged Mode Modi es the NM processor status word (PSW). Exercise a bit of care with this command. Syntax MPSW bit string Parameters bit string A string of characters that indicates which bits in the PSW are to be modi ed. The letters listed below represent individual elds: lower case implies turn the bit o , and uppercase implies turn the bit on. All unreferenced bits remain unchanged. All named bits with the exception of the \C/B" bits may be altered with this command.
MPSW B C V M C/B R Q P D I 4-332 Taken branch in previous cycle Code address translation enable Divide step correction High-priority machine check disable Carry/Borrow bits Recovery counter enable Interruption state collection enable Protection ID validation enable Data address translation enable External, power failure, & low-priority machine check interruption enable System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
MPSW System Debug displays this register in two formats: IPSW=$6ff0b=jthlnxbCVmrQpDI The rst value is a full 32-bit integer representation of the register. The second format shows the value of the special named bits. An uppercase letter means that the bit is on while a lowercase letter indicates that the bit is o . Examples %nmdebug > dr psw PSW=0006ff0f=jthlnxbCVmrQPDI %nmdebug > mpsw p %nmdebug > dr psw PSW=0006ff0b=jthlnxbCVmrQpDI Turn OFF the protection ID validation enable bit in the IPSW.
MR Modi es the contents of the speci ed CM or NM register. Syntax MR cm register [newvalue] MR nm register [newvalue] By default, the current register value is displayed. The ENV variable QUIET_MODIFY can be used to suppress the display of the current value. Parameters cm register Note 4-334 The CM register whose contents are to be modi ed. This can be: DB The stack base relative word o set of DB. DBDST The DB data segment number. CIR The current instruction register.
MR nm register The NM register whose contents are to be modi ed. Note NM registers can not be modi ed when the user initially entered Debug in CM (cmdebug). Modifying PC modi es PCOF and PCSF. It sets PCOB to PCOF+4 and to PCSF. The original priv bits are retained. That is, when PC is modi ed, the priv bits are una ected.
MR Name Alias Access Description RO R1 R2 R3. none none none none R22 R23 R24 R25 R26 R27 R28 R29 none dm dm dm dm dm dM dm dm dm dM MRP dm ..
MR The following registers are known as the Space Registers .
MR Name Alias Access Description CR23 CR24 .
MR Name Alias Access Description FP5 FP6 FP7 FP8 .
MR Alias for cr15 Alias for cr23 eIem eIrr When one of these registers is modi ed, the new value takes e ect immediately . Since these registers are global across all processes, all other users are a ected by the change. Examples %cmdebug > mr cmpc CMPC=PROG %0.01754 := prog(0.1762) Modify the contents of the CM program counter. Only the o set portion of the CM logical address can be modi ed. It is not possible to change the logical segment number portion.
MR Caution The output format of all System Debug commands is subject to change without notice. Programs that are developed to postprocess System Debug output should not depend on the exact format (spacing, alignment, number of lines, uppercase or lowercase, or spelling) of any System Debug command output. System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
NM Enters native mode (nmdat / nmdebug). See the CM command. Syntax NM The command switches from CM (cmdat/cmdebug) to NM (nmdat/nmdebug). If the windows are on, the screen is cleared and the set of windows enabled for nmdebug are redrawn. The command also sets several environment variables. The variables a ected and their new values are shown below: ENV ENV ENV MODE INBASE OUTBASE "NM" NM_INBASE NM_OUTBASE Parameters none Examples %cmdebug > nm $nmdebug > Switch from cmdebug to nmdebug.
NM exact format (spacing, alignment, number of lines, uppercase or lowercase, or spelling) of any System Debug command output. System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
OPENDUMP DAT only Opens a dump le. Syntax le OPENDUMP This command opens the speci ed dump le previously restored to disk by the GETDUMP command. An implicit DUMPINFO STATE command is then performed to show the user the state of the dump. If another dump le is already open when this command is entered, it is closed automatically rst. Parameters le The name of the dump le to be opened. Dump le names are limited to a maximum of ve characters.
OPENDUMP Limitations, Restrictions none Caution The output format of all System Debug commands is subject to change without notice. Programs that are developed to postprocess System Debug output should not depend on the exact format (spacing, alignment, number of lines, uppercase or lowercase, or spelling) of any System Debug command output. System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
PAUSE Pauses (puts to sleep) a process for the speci ed number of seconds. Syntax PAUSE n Parameters n The number of seconds the process is to be suspended. Negative values are treated the same as positive ones. Examples $nmdebug > pause #10 Suspend the process for (decimal) 10 seconds. Limitations, Restrictions none Caution 4-346 The output format of all System Debug commands is subject to change without notice.
PIN PIN Privileged Mode Switches the process-speci c pointers and registers to allow the examination of process related information. Syntax PIN [pin] [ANYSTATE] Parameters pin ANYSTATE The process identi cation number (PIN). If omitted, the current process that was active at dump time is used. If no process was active at dump time, a PIN of zero is used (A PIN of 0 refers to the dispatcher).
PIN Warning In Debug, switching to another PIN does not cause that process to suspend execution. As a result, subsequent use of certain other Debug commands, such as TRACE, may not work properly, and may even cause the system to crash. In order to prevent the possibility of a system failure, the PIN should first be 4Break5 key or the :BREAKJOB command, PIN command in debug.
PROCLIST PROCLIST Lists the speci ed NM symbols in the speci ed NM executable library. Syntax PROCLIST [pattern] [lst le ] [lookup id] [detail] [output le] The values printed by this command are the values found in the symbol table that is searched. This command does not perform any form of symbol location xups. The addresses printed for most data symbols must be relocated relative to DP to be useful. Parameters pattern The symbol names(s) that are to be listed.
PROCLIST log2##4 Matches \log2004", \log2754", and so on. The following regular expressions are equivalent to the patterns with wildcards that are listed above: `.*` `pib.*` log2[0-9][0-9]4` By default, all symbols are listed. 4-350 System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
PROCLIST lst le lookup id detail The name of the executable library for which to list the symbols (program or library). If the parameter is not given, the program le being executed is assumed. The address printed is the entry point of the procedure (not the start of the procedure). Speci es which symbols to list. If lookup id is not speci ed, PROCEDURES is assumed. Refer to the \Procedure Name Symbols" section in chapter 2 for additional details.
PROCLIST detail level functions as if the actual maximum detail level has been entered. 0 List symbol address and name. 1 Same as 0 but print symbol type, scope, residency bits. 2 Same as 1 but print address of symbol record. The abbreviations used for the output are summarized below. Refer to the Object Module De nition document for detailed descriptions and de nitions of the terms. 4-352 System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
PROCLIST The following keywords determine the symbol type: ABS Absolute constant. DATA Normal initialized data. CODE Unspeci ed code. PRIPROG Primary program entry point. SECPROG Secondary program entry point. ENTRY Any code entry point. STORAGE Storage. The value of the symbol is not known. STUB Either an import or parameter relocation stub. MODULE Source module name. SYMEXT Symbol extension record. ARGEXT Argument extension record. MILLI Millicode subroutine. DISOCT Disabled translated CM code.
PROCLIST output le 4-354 The following letters indicate the value of various bits associated with each symbol. An uppercase letter indicates the bit is \on", while a lowercase letter means the bit is \o ". Q|q \Must qualify" bit. F|f \Initially frozen" bit. R|r \Memory resident" bit. C|c \Is common" bit. D|d \Duplicate common" bit. If this parameter is given, the symbols are sent to the indicated le rather than to the terminal screen. System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
PROCLIST Examples $nmdebug > proclist 4d5.58db $START$ 4d5.6b58 $UNWIND_START 4d5.6bc8 $UNWIND_END 4d5.6be0 $RECOVER_START 4d5.6be0 $RECOVER_END 4d5.58bf ?$START$ 4d5.5b53 processstudent.highscore 4d5.5c3f processstudent.lowscore 4d5.5d27 processstudent 4d5.6073 initstudentrecord 4d5.681f PROGRAM 4d5.681f _start 4d5.5937 ?PROGRAM 4d5.5957 ?_start 4d5.5000 lr_na_unk 4d5.5004 $find_alignment 4d5.5084 $more_na 4d5.5028 $bigger_but_still_small 4d5.5024 $b_out 4d5.5018 $b_loop 4d5.
PROCLIST $nmdebug > procl ,,nested 4d5.5b53 processstudent.highscore 4d5.5c3f processstudent.lowscore $nmdebug > procl ,,nested,1 CODE LOCAL check: 0 xl: 3 qfrcd 4d5.5b53 CODE LOCAL check: 0 xl: 3 qfrcd 4d5.5c3f processstudent.highscore processstudent.lowscore The above examples print only the nested procedures. A detail level value of 1 was speci ed in the second example. 4-356 System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
PROCLIST $nmdebug > proclist `^a`,xl.demo 4d8.15c8b average Show all procedures in XL.DEMO that start with the letter \a". Notice the use of regular expressions (see appendix A) for the pattern matching string. $nmdebug > procl ,,datauniv 4d5.40000008 $global$ 4d5.40000008 $dp$ 4d5.40000160 $PFA_C_START 4d5.40000160 $PFA_C_END 4d5.40000160 output 4d5.
PROCLIST Limitations, Restrictions Unless a le equation is used, the size of the output le defaults to 20000 records of 80 bytes each. The LSTPROC and LSTEXPORTSTUB options are not implemented. A PROCLIST for CM procedures and symbols is not implemented. Caution 4-358 The output format of all System Debug commands is subject to change without notice.
PSEUDOMAP PSEUDOMAP Logically maps a local le into virtual memory, utilizing symbol information in library/program les. Syntax PSEUDOMAP local le space id [loaded fname] [o set] The PSEUDOMAP command is used to ll in parts of virtual memory that are not accessible in a dump. When a le is mapped using PSEUDOMAP, the le appears to be loaded in virtual memory at the speci ed location.
PSEUDOMAP Parameters local le space id loaded fname o set The name of the local program/library le from which to obtain symbol information. Associate symbols from local le with this space. Any attempt to convert a symbol address in this space to an address uses the local le for symbol name lookups. Bind this le name to all symbols from space space id .
PSEUDOMAP Remember that the PSEUDOMAP command only provides access to symbol information. In order to display data in a le, the MAP command must be used. ($22) nmdat > dptree 22 22 (CI.PUB.SYS) ($22) nmdat > tr PC=a.000d87f8 enable_int+$20 * 0) SP=40224ac8 RP=a.001cfda8 notify_dispatcher.block_current_process+$268 1) SP=40224ac8 RP=a.001d0dcc notify_dispatcher+$2b0 2) SP=40224a10 RP=a.00291b94 wait_for_active_port+$e0 3) SP=40224828 RP=a.00292324 receive_from_port+$22c 4) SP=402247c0 RP=a.
PSEUDOMAP ($22) nmdat > xl ci.abuild00.official 74 ci.pub.sys Preprocessing CI.ABUILD00.OFFICIAL, please wait ... Done ($22) nmdat > loadinfo nm USER CI.PUB.SYS nm SYS NL.PUB.SYS cm SYS SL.PUB.SYS ($22) nmdat > SID = $74 SID = $a A quick check of our loaded les reveals that DAT does not know about the symbols for CI.PUB.SYS. We now use the PSEUDOMAP command to open a local copy of the program le from which symbol information can be gleaned. A nal check of the loaded le information shows that CI.PUB.
PSEUDOMAP f) SP=40221560 RP=a.006abcc8 ?readcmd+$8 export stub: 74.00006274 ci_cmd_io+$34 10) SP=402211d8 RP=74.000068e0 main_ci+$a0 11) SP=40221178 RP=74.00007450 PROGRAM+$218 12) SP=40221130 RP=74.00000000 (end of NM stack) We again do a stack trace; this time the symbols for the program le show up. $nmdat > loadinfo nm SYS NL.PUB.SYS cm SYS SL.PUB.SYS SID = $a $nmdat > xl nl.build a nl.pub.sys Preprocessing NL.BUILD.CMDEBUG, please wait ... Done $nmdat > loadinfo nm SYS NL.PUB.SYS nm SYS NL.PUB.
PSEUDOMAP exact format (spacing, alignment, number of lines, uppercase or lowercase, or spelling) of any System Debug command output. 4-364 System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
PURGEDUMP PURGEDUMP DAT only Purges a dump le. Syntax PURGEDUMP dump le Parameters dump le The name of the dump le to be deleted. Examples %cmdat > purgedump EXAMP Purge dump le EXAMP. Limitations, Restrictions none Caution The output format of all System Debug commands is subject to change without notice.
REDO Reexecutes a command from the history command stack after optionally editing the command. Syntax REDO [cmd string ] REDO [history index] System Debug uses the same REDO editing commands as the REDO command supported by the MPE XL Command Interpreter. Please refer to the MPE XL Commands Reference Manual (32650-90003) for speci c details about editing commands. Parameters cmd string history index Redo the most recent command in the history stack that commences with cmd string .
REDO Limitations, Restrictions Upon initial entry into System Debug, the command stack is empty, since no prior command has been executed. If the REDO command is entered as the command, a blank command is provided for editing. The MPE XL Command Interpreter allows an edit string to be speci ed on the REDO command line. This feature is not supported in System Debug. Caution The output format of all System Debug commands is subject to change without notice.
REGLIST Lists the registers into a le in USE le format. Syntax REGLIST [ lename] Parameters lename The name of the le into which the registers are listed. Examples $nmdebug > reglist rsave $nmdebug > List the contents of the registers into the le rsave. You can use the USE command later to restore the state of the registers. Limitations, Restrictions REGLIST dumps only the NM register set. Caution 4-368 The output format of all System Debug commands is subject to change without notice.
RESTORE RESTORE Restores macros or variables from a le that was previously created by the STORE command. Syntax RESTORE MACROS RESTORE VARIABLES lename lename The RESTORE command quickly restores saved macros or variables from a binary le that was created by the STORE command. Based on the selector (MACROS or VARIABLES), all currently de ned macros or variables are immediately discarded, and are replaced entirely by the contents of the STORE le.
RESTORE Examples $nmdat > store var savevar $nmdat > vard @ $nmdat > restore var savevar Stores the currently de ned variables into the le SAVEVAR. All variables are deleted, then the RESTORE command is used to restore them all again. Related command: STORE. Related ENV variables: MACROS, VARS, VARS_LOC. Limitations, Restrictions STORE/RESTORE are currently very version dependent.
RET[URN] RET[URN] Exits from a macro, optionally returning a speci ed value. Syntax RET[URN] [value] The RETURN command can be used only within a macro. When the RETURN command is encountered, a value is returned, and the macro execution is immediately terminated. Additional commands within the macro that follows an executed RETURN command are never executed. Parameters value The value to be returned by the macro. If value is not speci ed, the default macro return value is returned.
RET[URN] $nmdebug > return 33 The RETURN command must be used within a macro body. (error #1449) The RETURN command can be used only within a macro. Limitations, Restrictions none Caution 4-372 The output format of all System Debug commands is subject to change without notice. Programs that are developed to postprocess System Debug output should not depend on the exact format (spacing, alignment, number of lines, uppercase or lowercase, or spelling) of any System Debug command output.
SET SET Sets new values for a select subset of all user con gurable options. Syntax SET SET 3 2 2 O CT | 2 3 4 D EC | 2 3 3 IN 5 % # H EX | $ CRON SET CROFF MOREON SET MOREOFF 2 OUT 2 SET DEF AULT 33 The SET command allows a simpli ed method of setting a few of the many environment variables. See the ENV command for more information. The SET command entered alone, without parameters, displays all current settings.
SET This sets octal for input, hex for output. If IN and OUT are omitted, both input and output bases are set to the speci ed base. 4-374 System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
SET CRON | CROFF CRON (carriage return on) and CROFF (carriage return o ) MOREON | MOREOFF DEF[AULT] control the automatic repetition of the last typed command whenever a lone carriage control is entered. (This option is for compatibility with prior versions of Debug; see the new ENV AUTOREPEAT.) SET CRON is the same as ENV AUTOREPEAT TRUE. SET CROFF is the same as ENV AUTOREPEAT FALSE. MOREON (terminal paging on) and MOREOFF (terminal paging o ) control the automatic paging of terminal output.
SET env env env env env env 4-376 nm_inbase nm_outbase pstmt term_loud term_paging term_width $ $ TRUE TRUE FALSE #79 System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
SET Examples $nmdat > SET Display all current settings. %cmdebug > set hex out Set output display base to hexadecimal. %cmdebug > set % Set both input and output bases to octal. $nmdat > set def Set default values. Limitations, Restrictions none Caution The output format of all System Debug commands is subject to change without notice.
xxx SET The SETxxx commands are prede ned aliases for other commands. Syntax SETALIAS SETENV SETERR SETLOC SETMAC SETVAR alias alias alias alias alias alias Caution 4-378 for for for for for for ALIAS ENV ERR LOC MAC VAR The output format of all System Debug commands is subject to change without notice.
xxx SHOW SHOW xxx The SHOWxxx commands are prede ned aliases for other commands. Syntax SHOWALIAS SHOWB SHOWCMD SHOWDATAB SHOWENV SHOWERR SHOWFUNC SHOWLOC SHOWMAC SHOWMAP SHOWSET SHOWSYM SHOWVAR alias alias alias alias alias alias alias alias alias alias alias alias alias Caution for for for for for for for for for for for for for ALIASL BL CMDL DATABL ENVL ERRL FUNCL LOCL MACL MAPL SET SYML VARL The output format of all System Debug commands is subject to change without notice.
S, SS Single steps. Syntax S[S] [num instrs] [ L[OUD] | Q[UIET] ] This command single steps the speci ed number of instructions. If the user attempts to single step into the system NL or SL (or any portion of code he/she does not have access to view), Debug stops single stepping and free-runs the process (for example, proceed as if the CONTINUE command had been issued). For native mode processes, Debug stops processing as soon as it returns from the inaccessible code.
S, SS %cmdebug > Step 5 instructions \loudly", that is, print the ending address. $nmdebug > s #20 l Step to: 115.00005f0c processstudent+$1e8 $nmdebug > Step 20 instructions, and print the address when stopped. Limitations, Restrictions The single step command cannot be used within a macro that is invoked as a function. Caution The output format of all System Debug commands is subject to change without notice.
STORE Stores the currently de ned macros or variables to a le. Syntax STORE MACROS STORE VARIABLES lename lename The STORE command quickly saves macros or variables to a binary le. At a later point, the RESTORE command can be used to restore these saved macros or variables. The current limits (as set by ENV MACROS or ENV VARS and ENV VARS_LOC) are automatically saved in the STORE le, and is reestablished when this le is restored with the RESTORE command.
STORE Related ENV variables : MACROS, VARS and VARS_LOC System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
STORE Limitations, Restrictions STORE and RESTORE are currently very version dependent. If the internal versions of macros, variables, or storage management changes, it may not be possible to restore from a le that was stored with earlier versions of the STORE command. An error is generated. Caution 4-384 The output format of all System Debug commands is subject to change without notice.
SYMCLOSE SYMCLOSE Closes a symbolic data type le that was opened with the SYMOPEN command. Syntax SYMCLOSE symname Parameters symname The symbolic name of the symbolic data type le that was assigned at open time. Examples $ nmdat > symfiles OS SYMOS.PUB.SYS GRADTYP GRADTYPE.DEMO.TELESUP $nmdat > symclose SYMOS $nmdat > Closes the le SYMOS. Limitations, Restrictions none Caution The output format of all System Debug commands is subject to change without notice.
SYMF[ILES] Lists all open symbolic data type les and their symbolic names. Syntax SYMF[ILES] Parameters none Examples $ nmdat > symf OS SYMOS.PUB.SYS GRADTYP GRADTYPE.DEMO.TELESUP List all the symbolic data type les currently opened by the program. Limitations, Restrictions none Caution 4-386 The output format of all System Debug commands is subject to change without notice.
SYMINFO SYMINFO Lists information/dump data for an opened symbolic data type le. Syntax SYMINFO [symname] [option] [o set] [length] This command is generally only useful to System Debug developers and people debugging the contents of the symbolic data type les. Parameters symname option o set The symbolic name under which the symbolic data type le is referenced. If the symbolic name is omitted, then the last le which was opened with SYMOPEN is selected. One of the following options can be speci ed.
SYMINFO length 4-388 For the SOM and LST options, this parameter speci es how many bytes to dump. The default value is 16. All length values are rounded to the next highest multiple of 16. System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
SYMINFO Examples $nmdebug > syminfo Som file name: SYMOS.PUB.
SYML[IST] Lists information for the speci ed symbol name in an opened symbolic data type le. Syntax SYML[IST] [pattern] [symname] [option] Parameters pattern The symbol names that are to be listed. This parameter can be speci ed with wildcards or with a full regular expression. Refer to appendix A for additional information about pattern matching and regular expressions. The following wildcards are supported: @ Matches any character(s). ? Matches any alphabetic character.
SYML[IST] symname option The symbolic name under which the symbolic data type le is referenced. If the parameter is not given, the sym le last accessed is used. A keyword to further specify the operation: CONST Display the constant names that match the given pattern. If the constant is a simple type, display its value. TYPES Display the type names that match the given pattern. ALL Display both type and constant names (default).
SYML[IST] $nmdebug > SYML max@,,const MAXGRADES MAXSTUDENTS CONST CONST INTEGER INTEGER $a $5 Print out various subsets from the sym le 'GRADTYP'. Limitations, Restrictions none Caution 4-392 The output format of all System Debug commands is subject to change without notice. Programs that are developed to postprocess System Debug output should not depend on the exact format (spacing, alignment, number of lines, uppercase or lowercase, or spelling) of any System Debug command output.
SYMOPEN SYMOPEN Opens a symbolic data type le and sets up pointers to the symbolic debug records. Syntax SYMOPEN lename [symname] The SYMOPEN command must be used to open a symbolic data type le before the symbolic formatting command and functions can be used. Parameters lename symname The le name of the symbolic data type le. The le must contain symbolic debug records. The symbolic name under which the symbolic data type le is referenced in the formatter commands.
SYMOPEN Limitations, Restrictions Before a symbolic data type le is ready to be opened with SYMOPEN, ensure that the following steps have been followed: 1. The types must be compiled with the $SYMDEBUG 'xdb'$ option. 2. The program containing the types must have at least one statement. 3. The relocatable library generated by the compiler must be run through LINKEDIT. 4. The program le generated by LINKEDIT must be run through PXDB. 5.
SYMPREP SYMPREP Prepares a program le containing symbolic debug information to be used by the symbolic formatter/symbolic access facility. Files modi ed through the use of this command are referred to as symbolic data type les. Syntax SYMPREP { lename} Parameters lename The name of the program le name to be preprocessed. (Required) Limitations, Restrictions Before a program le is ready to be prepared with SYMPREP, be sure that the following steps have been followed: 1.
SYMPREP exact format (spacing, alignment, number of lines, uppercase or lowercase, or spelling) of any System Debug command output. Example The following example preprocesses the program le GRADTYP.DEMO.TELESUP. $nmdat > symprep gradtyp.demo.telesup Preprocessing GRADTYP.DEMO.TELESUP Building constant symbol dictionary ... Sorting ... Build type symbol dictionary ... Sorting ... Constructing new SOM file ... GRADTYP.DEMO.TELESUP preprocessed.
T (translate) T (translate) Privileged Mode: TCA, TCS Translates the speci ed CM address to a virtual address. Syntax TA TD TDB TS TQ o set dst.o o set o set o set ABS - Bank0 Data segment DB relative S relative Q relative TC TCG TCP TCLG TCLP TCS cmlogaddr cmlogaddr cmlogaddr cmlogaddr cmlogaddr cmlogaddr Program file Group library Account library Logon group library Logon account library System library TCA cmabsaddr TCAX cmabsaddr Absolute CST Absolute CSTX Parameters o set dseg.
T (translate) The CM logical segment number. The CM word o set within the code segment. Logical code addresses can be speci ed in various levels of detail: As a full logical code pointer (LCPTR): TC procname+20 Procedure name lookups return LCPTRs. TC pw+4 Prede ned ENV variables of type LCPTR. TC SYS(2.200) Explicit coercion to a LCPTR type. 4-398 System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
T (translate) As a long pointer (LPTR): seg.o set The logical le is determined based on the command su x. For example: TC implies PROG. TCG implies GRP. TCS implies SYS, and so on. As a short pointer (SPTR): TC 1024 o set only The currently executing logical segment number and the currently executing logical le are used to build a LCPTR. The search path used for procedure name lookups is based on the command su x letter: TC Full search path: CM: PROG, GRP, PUB, LGRP, LPUB, SYS.
T (translate) Implicit CSTX 5.3204 As a full absolute code pointer (ACPTR): TCA CST(2.200) Explicit CST coercion. TCAX CSTX(2.200) Explicit CSTX coercion. TCAX logtoabs(prog(1.20)) Explicit absolute conversion. TCAX 5.3204 The search path used for procedure name lookups is based on the command su x letter: TCA TCAX GRP, PUB, LGRP, LPUB, SYS PROG Examples %cmdebug > td 1.100 % DST 1.100 VIRT $b.40011630 Translate data segment 1.100 to a virtual address. %cmdebug > ta 2000 % ABS+2000 VIRT $a.
T (translate) CM prev: SYS %32.2030 CM next: SYS %32.2034 NM prev: TRANS $21.7da7a0 NM next: TRANS $21.7da7c4 Translate CM logical address fgetkeyinfo+1146. Refer to appendix C for a discussion of CM object code translation, node points, and breakpoints in translated CM code. Limitations, Restrictions All information that is displayed in a TC (translate code) display can be obtained programmatically, except for the CM segment length.
TERM Debug only Controls the synchronization of several debug processes on a single terminal. Syntax TERM TERM LIST TERM NEXT Terminal locking allows multiple processes to use a single terminal for debugging without confusion. TERM LIST shows information about processes waiting for the terminal semaphore. TERM NEXT grants the terminal to the process at the head of the waiting list. Exiting, continuing, and stepping from the debugger perform an implicit TERM NEXT command.
TERM Examples $(3b) nmdebug > = 2 + 2 $4 PIN 4c is waiting to enter Debug $(3b) nmdebug > term list Current term owner: 3b Next pin: 1a # Waiting pins: 2 A processes has just noti ed us that it is waiting to enter Debug. We then list information about the waiting PINS. We see that there are two PINs waiting and the rst PIN in the queue is 1a. System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
TERM $(3b) nmdebug > term next PIN 3b is waiting to enter Debug $(1a) nmdebug > term list Current term owner: 1a Next pin: 4c # Waiting pins: 2 We gave away the semaphore and let the next PIN into Debug (PIN 1a). This placed us (PIN 3b) at the end of the queue. We next listed information about the waiting PINs and see that PIN 4c has moved to the front of the queue.
TR[ACE] TR[ACE] Displays a stack trace. Syntax TR[ACE] [level] [options] The TR command produces a trace of the procedures active on the current PIN's stack. The command is mode sensitive. If the user is in cmdebug, a trace of the compatibility mode stack is produced, if in nmdebug, a trace of the native mode stack is printed. An interleaved stack trace of both CM and NM stacks is produced by using the DUAL option.
TR[ACE] ISM Trace across interrupt markers. NM Examples $nmdebug > tr PC=115.00005b50 processstudent.highscore * 0) SP=40221180 RP=115.00005f0c processstudent+$1e8 1) SP=40221180 RP=115.00006b1c PROGRAM+$300 2) SP=40221100 RP=115.00000000 (end of NM stack) Display an entire NM stack trace. The rst line indicates the address the PC register points to. Each stack level is formatted, starting from the top of stack and working down the depth of the stack.
TR[ACE] Millicode: Large-Frame-R3: Save-SR0: Interrupt-Mrkr: 0 0 0 0 Entry-GR: 00 Save-SRs: 00 Cleanup: 0 Call_GR: 00 Frame-size: 6 (dbl words) Save-SP: 0 Save-MRP: 0 Save-RP: 0 Args-stored: 1 1) SP=40221180 RP=115.
TR[ACE] DP=40200648 PSP=402211c8 PCPRIV=3 3) SP=402211c8 RP=f4.0013950c ?P_WRITELN+$8 DP=40200648 PSP=40221180 PCPRIV=3 export stub: 115.00005e30 GRADES.DEMO.TELESUP/processstudent+$10c 4) SP=40221180 RP=115.00006b1c PROGRAM+$300 DP=40200008 PSP=40221100 PCPRIV=3 5) SP=40221100 RP=115.00000000 DP=40200008 PS P=402210a0 PCPRIV=3 (end of NM stack) A FULL stack trace displays the value of DP, PSP and the privilege level (0-3 for each level in the stack). $nmdebug > tr 2,single 2) SP=40221200 RP=f4.
TR[ACE] (end of NM stack) $nmdebug > In the above example, the rst stack trace encounters an interrupt marker and stops tracing. The second stack trace uses the ISM option to continue tracing past the interrupt marker. The interrupt that caused the interrupt marker to be generated was caused by a divide by zero in the small_divisor routine. CM Examples %cmdebug > PROG * 0) PROG 1) PROG 2) SYS tr % 0.1421 % 0.2004 % 0.253 % 25.
TR[ACE] Translated Code Examples Break at: NM [1] TRANS 24.00854ea4 PASCAL'LIBRARY2:?P'WRITESTR $nmdebug > tr ,dual PC=24.00854ea4 PASCAL'LIBRARY2:?P'WRITESTR NM* 0) SP=40221290 RP=a.0067320c outer_block+$e8 NM 1) SP=402210a0 RP=a.00000000 inx_A0000+$14 (end of NM stack) The above example shows Debug stopping at a breakpoint. The breakpoint was set in SL.PUB.SYS at the entry point to the P'WRITESTR routine.
TR[ACE] Dual Mode Examples $nmdat > tr,d PC=a.000a4838 enable_int+$20 NM* 0) SP=40201ce0 RP=a.0013cdf0 notify_dispatcher.block_current_process+$294 NM 1) SP=40201ce0 RP=a.0013deec notify_dispatcher+$34c NM 2) SP=40201c88 RP=a.001dc964 wait_for_active_port+$ec NM 3) SP=40201c10 RP=a.001dd680 receive_from_port+$450 NM 4) SP=40201bc0 RP=a.00228514 extend_receive+$4d8 NM 5) SP=40201b28 RP=a.00218bdc rendezvousio.get_specific+$194 NM 6) SP=40201a78 RP=a.00218ec8 rendezvousio+$13c NM 7) SP=40201a08 RP=a.
TR[ACE] CM 6) SYS % 25.5 TERMINATE+%5 CM 7) PROG % 0.244 CM 10) SYS % 25.0 ?TERMINATE NM 16) SP=40200278 RP=a.0030d868 outer_block+$144 NM 17) SP=40200088 RP=a.00000000 (end of NM stack) $nmdat > (MITroc CCG) CMSWITCH (mITroc CCE) (MItroc CCG) CMSWITCH The above example shows an interleaved NM and CM stack trace. Limitations, Restrictions The DUAL option is ignored if the current mode is not the same as the original entry mode. (Refer to the ENV ENTRY_MODE command.
TRAP TRAP Debug only Arms/disarms/lists various traps that are monitored by Debug. Syntax TRAP [LIST] TRAP [trap-name] [option] Parameters trap-name Traps can be classi ed into several classes. The trap names for each class are presented together. In general, this parameter speci es which trap to arm, disarm, or list. Only enough characters to make the name recognizable are required. Hardware Traps These are traps that are documented in the Precision Architecture Control Document (ACD).
TRAP To have the trap ignored use the C[ontinue] IGNORE command. Typing C[ontinue] or C[ontinue] NOIGNORE causes the trap subsystem to process the trap as if Debug has not been noti ed. XARITHMETIC The trap mask indicating the cause of the trap is displayed. XCODE The code trap number is displayed. XLIBRARY Not implemented. XSYSTEM Not implemented.
TRAP Trace Traps option The currently de ned trace events are based on compiler generated breakpoints. These breakpoints are inserted into the code by the compilers only if the symbolic debug compiler option is used. If the debugger arms any of these events, it stops at the indicated event. BEGIN_PROCEDURE Stop at the entry to procedure. END_PROCEDURE Stop at the exit from procedure. LABELS Stop at all labels. STATEMENTS Stop at each source statement (requires compiler support).
TRAP $nmdebug > trap branch arm Arm the branch taken trap and the arithmetic traps. 4-416 System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
TRAP $nmdebug > trap XLIBRARY XARITHMETIC XSYSTEM XCODE BRANCH BEGIN_PROCEDURE END_PROCEDURE LABELS STATEMENTS ENTER_PROGRAM EXIT_PROGRAM DISABLED DISABLED DISABLED DISABLED DISABLED DISABLED ARMED DISABLED DISABLED DISABLED DISABLED Show the status of the traps. $nmdebug > c Branch Taken at: 6a8.00005d84 processstudent+$60 to: 6a8.000056b8 lr_wa_10 $nmdebug > c Branch Taken at: 6a8.00005708 lr_wa_1+$8 to: 6a8.00005d88 processstudent+$64 $nmdebug > c Branch Taken at: 6a8.
TRAP $nmdebug > trap xari arm $nmdebug > trap xari list XLIBRARY ARMED $nmdebug > c XARI Trap at: 730.00015d38 average+$b0 trap mask = 00000002 $nmdebug > wl pc,#13 GRP $730.15d38 $nmdebug > dc pc-20,#13 GRP $730.
TRAP zero. The millicode divide routine returns the result of its operation in general register 29. After looking at the source code, the bug in the program was discovered. It was determined that at this point in process execution, the result of the divide should have been \4". The millicode return register is updated with the correct value. The continue command with the IGNORE option is issued to resume the process as if the trap never happened.
TRAP Limitations, Restrictions The XLIBRARY and XSYSTEM trace traps are not implemented. Caution 4-420 The output format of all System Debug commands is subject to change without notice. Programs that are developed to postprocess System Debug output should not depend on the exact format (spacing, alignment, number of lines, uppercase or lowercase, or spelling) of any System Debug command output. System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
UF UF Debug only Unfreezes a code segment, data segment, or virtual address (range) in memory. Syntax UFC UFCG UFCP UFCLG UFCLP UFCS UFCU logaddr [bytelength] logaddr [bytelength] logaddr [bytelength] logaddr logaddr logaddr [bytelength] fname logaddr [bytelength] Program file Group library Account library Logon group library Logon account library System library User library UFCA cmabsaddr UFCAX cmabsaddr Absolute CST Absolute CSTX UFDA dst.
UF NM: the virtual byte o set within the space. CM: the word o set within the code segment. Logical code addresses can be speci ed in various levels of detail: As a full logical code pointer (LCPTR): UFC procname+20 Procedure name lookups return LCPTRs. UFC pw+4 Prede ned ENV variables of type LCPTR. UFC SYS(2.200) Explicit coercion to a LCPTR type. 4-422 System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
UF As a long pointer (LPTR): UFC 23.2644 sid.o set or seg.o set The logical le is determined based on the command su x. For example: UFC implies PROG. UFCG implies GRP. UFCS implies SYS, and so on. As a short pointer (SPTR): UFC 1024 o set only For NM, the short pointer o set is converted to a long pointer using the function STOLOG, which looks up the SID of the loaded logical le. This is di erent from the standard short to long pointer conversion, STOL, which is based on the current space registers (SRs).
UF :run nmprog; xl=lib1,lib2.testgrp,lib3 In this case, it is necessary to specify the desired NM USER library, for example: UFCU lib1 204c UFCU lib2.testgrp test20+1c0 If the le name is not fully quali ed, the following defaults are used: Default account: the account of the program le. Default group: the group of the program le. 4-424 System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
UF cmabsaddr A full CM absolute code address speci es three necessary items: Either the CST or the CSTX. The absolute code segment number. The CM word o set within the code segment. Absolute code addresses can be speci ed in two ways: As a long pointer (LPTR): UC 2644 Implicit CST 23.2644 UCAX 5.3204 Implicit CSTX 5.3204 As a full absolute code pointer (ACPTR): UCA CST(2.200) Explicit CST coercion. UCAX CSTX(2.200) Explicit CSTX coercion. UCAX logtoabs(prog(1.20)) Explicit absolute conversion.
UF Examples %cmdebug > ufc sys(12.0) Unfreeze CM logical code segment SYS %12. $nmdebug > ufva 22.104, 1000 Unfreeze 1000 bytes starting at virtual address 22.104. 4-426 System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
UF Limitations, Restrictions none Caution The output format of all System Debug commands is subject to change without notice. Programs that are developed to postprocess System Debug output should not depend on the exact format (spacing, alignment, number of lines, uppercase or lowercase, or spelling) of any System Debug command output. System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
UNMAP Closes (unmaps) a le that was opened by the MAP command. Syntax UNMAP index Parameters index The mapped le index number (displayed with the MAP and MAPLIST commands). Examples $nmdebug > mapl 1 DTCDUMP.DUMPUSER.SUPPORT 2 DTCDUMP2.DUMPUSER.SUPPORT 3 MYFILE.MYGROUP.MYACCT 1000.0 1001.0 1005.0 Bytes = 43dc Bytes = c84 Bytes = 1004 $nmdebug > unmap 2 $nmdebug > unmap mapindex("dtcdump.dumpuser.support") $nmdebug > mapl 1 DTCDUMP.DUMPUSER.SUPPORT 3 MYFILE.MYGROUP.MYACCT 1000.0 1005.
UNMAP Limitations, Restrictions none Caution The output format of all System Debug commands is subject to change without notice. Programs that are developed to postprocess System Debug output should not depend on the exact format (spacing, alignment, number of lines, uppercase or lowercase, or spelling) of any System Debug command output. System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
UPD Updates the windows. Syntax UPD Parameters none Examples %cmdebug > UPD Limitations, Restrictions none Caution 4-430 The output format of all System Debug commands is subject to change without notice. Programs that are developed to postprocess System Debug output should not depend on the exact format (spacing, alignment, number of lines, uppercase or lowercase, or spelling) of any System Debug command output. System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
USE USE System Debug commands can be executed from a le with the USE command. Syntax USE USE [ lename] [count] USENEXT count USE [CLOSE][ALL | @] USE, entered alone, displays the current open command le(s) and the current line position within the le (current-record/total records). USE lename opens the speci ed le, executes all commands from that le, and then closes the le. An optional count parameter is used to read a particular number of lines from the le before returning to interactive user input.
USE Parameters lename count USENEXT count USE CLOSE USE CLOSE ALL USE CLOSE @ The le name of the command le that is to be opened and executed. Command les must be ASCII les. If omitted, the status of all open command les is displayed. The number of lines to be executed from the command le. If omitted, all lines in the le are executed, and the le is closed. Executes the next count lines from the most recently opened command le. Closes the most recently (still opened) command le.
USE Limitations, Restrictions Command les should be typical unnumbered editor les, ASCII, with a xed record size less than 256 bytes. Line numbers are not stripped. There is currently a limit of ve nested USE les. Command lines that are executed from USE les are placed into the command history stack. Long USE les often displace all of the current commands in the stack out of accessible range. Caution The output format of all System Debug commands is subject to change without notice.
VAR De nes a user-de ned variable. Syntax VAR var name [:var type] [=] var value The entire set of currently de ned variables can be saved into a binary le for later restoration. (Refer to the STORE and RESTORE commands.) Parameters var name var type 4-434 The name of the variable that is being de ned. Names must begin with an alphabetic character and are restricted to thirty-two (32) characters, (characters must be alphanumeric, \ ", \'", or \$"). Longer names are truncated with a warning.
VAR SYS USER TRANS EADDR SADDR System library logical address User library logical address Translated CM code virtual address Extended address Secondary address If the type speci cation is omitted, the type is assigned automatically, based on var value . System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
VAR var value The optional var type allows the user to explicitly specify the desired internal representation for var value (that is, signed or unsigned, 16 bit or 32 bit) for this particular assignment only. It does not establish a xed type for the lifetime of this variable. A new value of a di erent type can be assigned to the same variable (name) by a subsequent VAR command. The new value for the variable, which can be an expression. An optional equal sign "=" can be inserted before the variable value.
VAR exact format (spacing, alignment, number of lines, uppercase or lowercase, or spelling) of any System Debug command output. System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
VARD[EL] Variable delete. Deletes the speci ed user-de ned variable(s). Syntax VARD[EL] pattern Parameters pattern The name of the variable(s) to be deleted. This parameter can be speci ed with wildcards or with a full regular expression. Refer to appendix A for additional information about pattern matching and regular expressions. The following wildcards are supported: @ Matches any character(s). ? Matches any alphabetic character. # Matches any numeric character.
VARD[EL] Examples %cmdebug > vardel count Delete the variable count. Limitations, Restrictions none Caution The output format of all System Debug commands is subject to change without notice. Programs that are developed to postprocess System Debug output should not depend on the exact format (spacing, alignment, number of lines, uppercase or lowercase, or spelling) of any System Debug command output. System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
VARL[IST] Variable list. Lists the value(s) for the speci ed user-de ned variable(s). Syntax VARL[IST] [pattern] Variables are always listed in alphabetical order. Parameters pattern The name of the variable(s) to be listed. This parameter can be speci ed with wildcards or with a full regular expression. Refer to appendix A for additional information about pattern matching and regular expressions. The following wildcards are supported: @ Matches any character(s). ? Matches any alphabetic character.
VARL[IST] Examples %cmdebug > varlist var count : u32 = $1c var save : 1ptr = %302.120 var s1 : str = this is a string Display all currently de ned user variables. %nmdebug > varl sl@ var save : 1ptr = %302.120 var s1 : str = this is a string Display all variables that begin with the letter \s". Limitations, Restrictions Variables are not currently listed in sorted alphabetical order. Caution The output format of all System Debug commands is subject to change without notice.
W (write) Writes a list of values, with optional formatting, to output. Syntax W WL WP valuelist valuelist valuelist WCOL column WPAGE W (Write), WL (Writeln), and WP (Prompt) write a list of values, with optional formatting, to output. WP (Prompt) appends the new formatted values to the output bu er, ushes the bu er to output, and maintains the cursor on the same line. W (Write) appends the new formatted values to the output bu er and advances the current bu er position.
W (write) Parameters valuelist An arbitrary list of values to be written. Values can be separated by blanks or with commas: value1, value2 value3 ... An optional format speci cation can be appended to each value in the list in order to select speci c output base, left or right justi cation, blank or zero ll, and eld width for that value. value1[:fmtspec1] value2[:fmtspec2] ...
W (write) The following table lists the supported format directives; they can be entered in uppercase or lowercase: + Current output base ($, #, or % pre x displayed). Current output base (no pre x). +< Current input base ($, #, or % pre x displayed). -< Current input base (no pre x). 4-444 $ # % H D O Hex output base ($ pre x displayed). Decimal output base (# pre x displayed). Octal output base (% pre x displayed). Hex output base (no pre x). Decimal output base (no pre x).
W (write) The M directive (minimum eld width) selects the minimum possible eld width necessary to format all signi cant digits (or characters in the case of string inputs). System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
W (write) The F directive ( xed eld width) selects a xed eld width based on type of the value and the selected output base. Fixed eld widths are listed in the following table: hex($,H) dec(#,D) oct(%,0) ascii(A,N) S16,U16 $32,U32 S64 SPTR LPTR Class EADDR Class STR 4 6 6 8 10 11 16 20 22 8 10 11 8.8 10.10 11.11 8.16 10.20 11.22 eld width = length of the string. 2 4 8 4 8 12 The Wn directive (variable eld width) allows the user to specify the desired eld width.
W (write) a single trailing blank. The width of the type display string varies, based on the type, and it is independent of any speci ed width (M, F, or Wn) for the value display. For values of type LPTR (long pointer, sid.o set , or seg.o set ) and EADDR (extended address, sid.o set or ldev.o set ), two separate format directives can be speci ed. Each is separated by a dot, \.", to indicate individual formatting choices for the \sid " portion and the \o set " portion.
W (write) Note that absolute code pointers, logical code pointers and extended addresses display their types (T) by default. All other types default to untyped (U). The Cn (column n ) directive moves the current output bu er position to the speci ed column position prior to the next write into the output bu er. Column numbers start at column 1. For example: number:"c6" Note 4-448 The Cn directive is ignored by the ASC function but is honored by the W, WL and WP commands.
W (write) Examples $nmdat > var cost 100 $nmdat > w "the price is " $nmdat > w cost $nmdat > wl " for the goodies." the price is $100 for the goodies $nmdat > wl "the price is ", cost, " for the goodies." the price is $100 for the goodies Two di erent methods of writing mixed text and formatted numbers.
W (write) $nmdat > wl test:"w2" test $nmdat > wl test:"w8,r" test $nmdat > wl test:"w8, r qd" " test" Several examples of formatting a string. 4-450 System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
W (write) $nmdat > var long 2f.42c8 $nmdat > wl long $2f.42c8 $nmdat > wl long:"t" LPTR $2f.42c8 $nmdat > wl long:"-.+" 2f.$42c8 $nmdat > wl long:"#.$,m.m" #47.$42c8 $nmdat > wl long:"r.r f.m z" $2f.42c8 $nmdat > wl long:"r.r,w6.6,z.z" $00002f.0042c8 $nmdat > wl long:"r.r w6.6, z.z, qd" "$00002f.0042c8" $nmdat > wl long:"r.r w6.6, b.b, $.$" $2f. $42c8 $nmdat > wl long:"r.l w6.6, b.b, $.$" $2f . $42c8 Several examples of formatting a long pointer.
W (write) In the second sequence, the Cn column directive is used to specify a column position for each formatted value. The third example demonstrates how portions of the output bu er may be overwritten by new formatted values. Limitations, Restrictions none Caution 4-452 The output format of all System Debug commands is subject to change without notice.
WHELP WHELP Displays online help messages for the window commands. Syntax WHELP Parameters None Limitations, Restrictions An overview of the window commands is generated with this command. You may type HELP windowcommand for speci c details on any window command. Caution The output format of all System Debug commands is subject to change without notice.
WHILE While condition evaluates to TRUE, executes all commands in cmdlist . Syntax WHILE condition DO cmdlist Parameters condition cmdlist A logical expression to be evaluated. A command list (or a single command) executed while condition evaluates to TRUE. Examples $nmdebug > var n 7 $nmdebug > while n > 0 do {wl n; var n n-1} 7 6 5 4 3 2 1 A simple while loop example. $nmdebug > while [pc] >> $10 <> $2000 do ss Single step until the next Pascal/XL statement number.
WHILE Limitations, Restrictions none Caution The output format of all System Debug commands is subject to change without notice. Programs that are developed to postprocess System Debug output should not depend on the exact format (spacing, alignment, number of lines, uppercase or lowercase, or spelling) of any System Debug command output. System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
XL The XL command is a prede ned alias for the PSEUDOMAP command. Syntax XL alias for PSEUDOMAP 4-456 System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
XLD XLD Closes les opened with the PSEUDOMAP command. Syntax XLD local le The XLD command removes the speci ed le previously mapped with the PSEUDOMAP command. The le name given is that of the local disk le, not the loaded le name that was associated with it. File names must be fully quali ed. Related commands: PSEUDOMAP, MAPLIST Parameters local le The fully quali ed name of the le to be unmapped. Examples $nmdat> xld store.abuild00.official Remove store.abuild00.
XLL The XLL command is a prede ned alias for the MAPLIST command. Syntax XLL alias for MAPLIST 4-458 System Debug Command Specifications FINAL TRIM SIZE : 7.5 in x 9.
5 Symbolic Formatting Symbolic Access Most of the time spent in the debugging of programs and the analysis of system dumps is in the interpretation of data found in memory images. The symbolic formatter provides a powerful and e cient way of referencing this data symbolically and displaying it using its declared type(s). Regardless of the source language, all data are formatted using a Pascal-style syntax.
PersonPtr = ^Person; Person = RECORD Next : PersonPtr; Name : string[16]; Sex : (MALE, FEMALE); CASE ms : MStype OF MARRIED : (NumKids : integer); DIVORCED : (HowLong : integer); SINGLE : (Looking : boolean); WIDOWED : (); END; 5-2 Symbolic Formatting Symbolic Access FINAL TRIM SIZE : 7.5 in x 9.
The following examples assume the System Debug variable addr1 contains the virtual address of a data structure corresponding to the type StudentArray. A hexadecimal display of that area of memory would be produced by the following: $nmdebug > dv addr1,10 $ VIRT 7b8.40200010 $ 00000004 $ VIRT 7b8.40200020 $ 00000001 $ VIRT 7b8.40200030 $ 0000004e $ VIRT 7b8.
END 5-4 [ 9 ]: 0 [ a ]: 0 Symbolic Formatting Symbolic Access FINAL TRIM SIZE : 7.5 in x 9.
Just as you can display data symbolically, you can also use symbolic addressing to locate and restrict the data to be displayed. The symbolic access facility allows users to extract simple values from a data structure by name for use in expressions and macros. For example, to test if year (year in school) is SENIOR, one could write: $nmdebug > VAR year = SYMVAL(addr1, "StudentRecord.
Generate Symbolic Type Information The generation of symbolic data type de nitions begins at compile time through the use of the $SYMDEBUG 'xdb'$ option in the Pascal compiler. This option causes symbolic debug records to be emitted into the relocatable object modules contained in the relocatable library produced by the compiler. These symbolic debug records fall into two basic categories: those that de ne the code being generated and those that de ne the data type shapes and sizes.
$SYMDEBUG 'xdb'$ PROGRAM gradtyp; $include 'tgrades.demo.telesup'; { Include all types/constants } VAR x : integer; BEGIN x := 1; END. { Outer block must have a stmt } :COMMENT *** The above program is in the file OGRADTYP.DEMO.
Preprocess the Program File with PXDB The program le produced by LINKEDIT must be run through a utility called PXDB. This program preprocesses the symbolic debug information for more e cient access during symbolic debugging. :PXDB.PUB.SYS gradtyp.demo.telesup Copying gradetyp.demo.telesup ... Done Procedures: 1 Files: 1 : Prepare the Program File with SYMPREP System Debug needs to perform additional preprocessing of the object module le after PXDB.
Once this step is completed, the le is in a form usable by System Debug. Such a le is called a symbolic data type le. This nal task is performed from within DAT or DEBUG by using the SYMPREP command: :DAT DAT XL A.00.00 Copyright Hewlett-Packard Co. 1987. All rights reserved. $1 ($0) $nmdebug > SYMPREP gradtyp Preprocessing GRADTYP.DEMO.TELESUP Copying file ... Building Constant lookup table ... Sorting ... Building Type lookup table ... Sorting ... Building lookup table header ...
1. Construct a small program which contains all type declarations to be made available to System Debug. The program must have at least one executable statement, and the type declarations must all appear at the level of the outer block. 2. Compile data types with the $SYMDEBUG 'xdb'$ option. 3. Run the relocatable library generated by the compiler through the Link Editor. 4. Run the program le generated by the Link Editor through PXDB. 5.
The Path Specification The Path Specification Path speci cations are used to qualify data structure references to some desired level of granularity. Syntax [ symname : ] typename [ selector... ][, variantinfo ] Parameters symname typename selector . . . variantinfo A symbolic name assigned to a symbolic data type le in the SYMOPEN command. This parameter speci es the le in which typename is to be found. If omitted, the last symbolic le referenced is used.
The Path Specification For each variant after the typename [selector ] speci cation, a vartagvalue can be given to specify the desired variant. Multiple tag values may be given, separated by commas, to specify tags for nested variants. The order of the tags should match the order of the variants in the type declaration. If tag value(s) are omitted and the tag is not stored as part of the data structure, data are formatted according to the rst declared variant.
The Path Specification 42 $nmdebug > Case Sensitivity System Debug normally upshifts all characters in a path speci cation before searching for names in a symbol le. This is desirable for languages such as Pascal, which emit upshifted symbols. But for languages such as C, which emit symbols with lower-case characters, this automatic upshifting must be disabled. The environmental variable SYMPATH_UPSHIFT controls whether or not pathspec upshifting occurs.
Using the Symbolic Formatter This section gives several examples of how to use the symbolic formatting facility. Formatting Types Refer to the beginning of this chapter to review the type declarations used in this section. After the source types are converted into a symbolic data type le, the le is SYMOPENed and given a symbolic name of grades. $nmdebug > SYMOPEN gradtyp.
RECORD Size: 40 bytes Symbolic Formatting Symbolic Access FINAL TRIM SIZE : 7.5 in x 9.
The MAP option of the FT command causes a location map to be printed for components of complex data structures such as records or arrays. The format of the location map is similar to the one generated by the $MAPINFO ON$ option of the Pascal compiler. $nmdebug > FT "studentrecord.grades" ARRAY [ GRADERANGE ] OF INTEGER $nmdebug > FT "graderange" 1 .. 10 $nmdebug > FT "maxgrades" INTEGER $nmdebug > FT "class" ( SENIOR, JUNIOR, SOPHOMORE, FRESHMAN ) Display various types.
END DIVORCED: ( HOWLONG: INTEGER ); SINGLE : ( LOOKING: BOOLEAN ); WIDOWED : ( ); $nmdebug > ft "PersonPtr^.Sex" ( MALE, FEMALE ) Notice that you can refer to a type with a pointer dereference. That is, \Show me the type that this pointer points to." Symbolic Formatting Symbolic Access FINAL TRIM SIZE : 7.5 in x 9.
Formatting Data The FV command allows you to format data at any virtual address using a given data structure: at any virtual address as if it were a speci c type Before proceeding to some examples, we must deal with the question, \How do I nd the virtual address of the data structure I want to format?" Most language compilers use the following conventions (as detailed in the Procedure Calling Conventions Manual (09740-90015): Global data is stored relative to DP (data pointer). DP is an alias for R27.
$nmdebug > fv addr1 "StudentRecord" RECORD NAME : 'Bill' ID : 1 YEAR : SENIOR NUMGRADES : 4 GRADES : [ 1 ]: 2d [ 2 ]: 41 [ 3 ]: 4e [ 4 ]: 42 [ 5 ]: 0 [ 6 ]: 0 [ 7 ]: 0 [ 8 ]: 0 [ 9 ]: 0 [ a ]: 0 END $nmdebug > fv dp+8 "person" RECORD NEXT : 40200024 NAME : 'Mrs. Smith' SEX : FEMALE MS : MARRIED NUMKIDS : 3 END The above examples show complete formatted record structures. Note that for variants with stored tags, the variants formatted are determined by the actual tag values.
'Bill' $nmdebug > fv addr1 "StudentRecord.Year" SENIOR $nmdebug > fv dp+8 "Person.sex" FEMALE The above examples show how any eld within a record may be formatted. Note that the address supplied is always the address for the beginning of the record, not the address of the eld of interest. As with eld selection, array elements can also be selected. The command $nmdebug > fv addr1 "StudentRecord.Grades[3]" 4e displays only the third element of the eld grades within the record StudentRecord.
As we saw in the person example above, if a data structure contains a pointer, its value (that is, the address of the pointed-to structure) is displayed. If the target of the pointer is desired, the caret (^) is used to indicate dereferencing. Consider the following examples: $nmdebug > fv dp+8 "person.next" 40200024 $nmdebug > fv dp+8 "person.next^" RECORD NEXT : 40200300 NAME : 'Mr. Jones' SEX : MALE MS : SINGLE LOOKING : TRUE END $nmdebug > fv dp+8 "person.next^.next^.next^.next^.name" 'Mrs.
Consider the following examples assuming that the System Debug variable addr contains the address of some data corresponding to a CoerceRec data structure: $nmdat > FV addr2 "CoerceRec" RECORD END 5-22 INT : 4a554e4b Symbolic Formatting Symbolic Access FINAL TRIM SIZE : 7.5 in x 9.
We assume the rst variant for the CoerceRec and print out the data as an integer value. We now ask for an explicit variant: $nmdat > FV addr2 "CoerceRec,1" RECORD CH : 'JUNK' END We may explicitly ask for the data to be formatted in any of the possible variants. In the above example we asked for variant 1 (as characters). Notice that since this is a packed array of char (PAC), the formatter prints the data as a character string.
[ END 3 ]: FALSE . . . [ 32 ]: TRUE Using Symbolic Access Symbolic access references data through the use of symbolic names declared at the source code level, rather than through addresses and o sets to speci c memory locations. This facility allows users to access stored information in a more natural way, leaving the drudgery of translating symbolic names to storage locations up to System Debug. The chart below summarizes the symbolic functions currently available.
SYMVAL ( virtaddress, pathspec ) returns the value of the data structure speci ed by pathspec . SYMLEN ( pathspec , [units ] ) returns the length of a data structure in bits or bytes. SYMADDR ( pathspec , [units ] ) returns the bit or byte o set of an element speci ed by pathspec , relative to the start of the path. SYMINSET ( virtaddress, pathspec, returns a boolean value of TRUE if the set element ) member element is in the set speci ed by address and pathspec .
FINAL TRIM SIZE : 7.5 in x 9.
6 System Debug Windows System Debug o ers a powerful and e cient set of screen-oriented \windows," which allow dynamic visual monitoring of the program environment. The System Debug windows are initially disabled, but can be easily toggled on (WON) and o (WOFF). Users can continue to use all normal interactive commands while the windows are displayed.
these options, see the SM command. This window may also be aimed at any valid DST to which the user has access. A group window (G) is a special window within which the user can custom-de ne individual user windows (UW). These user windows (subwindows) can be \aimed" at parameters, variables, data blocks, and so on. Up to three group windows can be de ned. A virtual window (V) displays data at a native mode virtual address. Up to eight virtual windows are available.
A Typical Screen Display of CM Windows d The following is a typical System Debug screen display with activated CM windows: a NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN R % Regs DB=001000 DBDST=000160 X=000132 STATUS=(mITroc CCG 301) PIN=061 SDST=000160 DL=177650 Q=000704 S=000710 CMPC=PROG 000000.
A Typical Screen Display of NM Windows The following is a typical System Debug screen display with activated NM windows: a NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN $ ipsw=0004000f=jthlnxbCvmrQPDI priv=3 pc=000000f9.
Window Operations System Debug provides window commands which allow the user to customize individual windows: The size (number of lines) of each window can be set individually by the user. This allows the user to give up a few screen lines from one window in order to increase the size of another window. When the size of a particular window is set to 0 lines, then that window is e ectively removed from the screen. The command window is the only window that cannot be entirely removed.
Virtual and user windows can be named or renamed. (Refer to the VN and UN commands.) Virtual, text, and user windows can be used as \current" windows. Performing an operation on a window makes it current. In addition, one may specify explicitly which window to make current. (Refer to the VC and UC commands.) Text and virtual windows can have summary information about their shape and location printed with the \info" (w I) command.
Window Updates System Debug automatically updates all displayed window values after the completion of every interactive user command list. In addition, when the user single steps (SS) the program, or continues (C) program execution until the next breakpoint is encountered, System Debug automatically updates the windows. System Debug knows the current value of each cell in each window on the screen, and is therefore able to e ciently update only those cells that have changed since the last update.
The NM program window is agged as REAL when code translation is turned o (for example, the C bit equals 0). Likewise, virtual windows and user windows aimed at virtual address space are agged as REAL when data translation is turned o (for example, the D bit equals 0). R - The CM Register Window The CM register window displays the current values of the compatibility mode registers.
Q - The current Q value (stack frame), expressed in CM words, relative to DB. S - The current S value (TOS), expressed in CM words, relative to DB. CMPC - The current CM program location, expressed as a logical code address. This includes the library (PROG, GRP, PUB, LGRP, LPUB, SYS), logical segment number, and program counter in CM words, relative to the base of the current code segment. CIR - The current instruction register. MAPFLAG - If 0, the current CM segment is logically mapped.
ipsw - The current processor status word contents. The numeric value as well as the decoded bits are displayed. (Refer to the conventions pages for a description of the format for this value). priv - The current privilege level. This is based on the two low-order bits of the PCOF register. pc - The current program counter. This is a combination of the PCSF and PCOF registers. The o set part is always displayed word aligned. pin - The process identi cation number (PIN) for the current process.
Sr - The NM Special Registers Window d The special register window displays the current values of special NM registers.
ccr - The coprocessor con guration register. (This is an 8-bit register.) 6-12 System Debug Windows FINAL TRIM SIZE : 7.5 in x 9.
P (cmP) - The CM Program Window The CM program window tracks the CM program counter (CMPC), displaying the instructions that are being executed. d a NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN c cmP % 001662: 001663: 001664: 001665: 001666: 001667: 001670: PROG 0.
breakpoints - Breakpoints are displayed between the o set and instruction. Refer to the conventions pages for a description of all possible breakpoint notations. [1] process local breakpoint, index number 1 T|2| process local temporary breakpoint, count not exhausted yet,index number 2. > - Flags the current program counter location. procedure-name+o set - The symbolic procedure name and the CM word o set within the procedure.
P (nmP) - The NM Program Window d The NM program window tracks the NM program counter (PC), displaying the instructions that are being executed. The banner line gives information for the rst address displayed in the program window. a NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN nmP$ PROG f9.5d18 GRADES.DEMO.
o set: - The virtual byte o set of the instruction line which is being displayed. breakpoints - Breakpoints are displayed between the o set and the instruction. Refer to the Conventions pages for a description of all possible breakpoint notations. [1] process local breakpoint, index number 1 T|2| process local temporary breakpoint, count not exhausted yet, index number 2. > - Flags the current program counter location.
Program Windows for Object Code Translation d A CM code segment (XLSEG11) has been translated by the Object Code Translator (OCT). The CM program window (top) is aimed at the original CM object code. The NM program window (middle) is aimed at the corresponding section of translated code. Fields within the windows that are unique to translated code are described below. Refer to appendix C for a discussion of CM object code translation, node points, and breakpoints in translated CM code.
TRANS 24.6b7bb8 - The NM program window is aimed at translated code. The original CM segment is identi ed as SYS %22 XLSEG11. window body line(s) Node points are denoted by N. breakpoints - Breakpoints are displayed between the o set and the procedure name. Refer to the conventions pages for a description of all possible breakpoint notations.
QDST - QDST is the data segment for the Q window. In most cases, this is the same as the stack DST. This window may be aimed away from the stack, in which case this value indicates the DST being viewed. Level 0 - The current stack level. (Refer to the LEV command). window body line(s) o set: - The starting CM word o set for the line of displayed values. The values may be unsigned (default) or signed (relative to the address mode base). See the QM command for details.
(DB mode) - The address mode for the window. This can be DB, DL, Q, S, or DST. The address shown at the left side of the window is relative to the indicated base. (Refer to the SM command.) SDST - SDST is the data segment for the S window. In most cases, this is the same as the stack dst. This window may be aimed away from the stack, in which case this value indicates the dst being viewed. Level 0 - The current stack level. (Refer to the LEV command.
window banner line G - Abbreviation for the group window. Group:1 - Displays the number of the group window that is currently being displayed. Three separate group windows, numbered from 1 to 3, are available. (Refer to the WGRP command). % - The current radix used to display addresses. The radix in that the addresses are displayed may be altered. (Refer to the GR command.) window body line(s) User-de ned window lines appear under the group banner line.
The Command Window The command window reserves space for the user to enter System Debug commands interactively and for displaying the resulting command output. a NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN Commands reak at: NM [1] PROG f9.
U - The User Windows User-de ned windows are custom named pointers. d a NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN c G Group:1 U1 count U2 students U3 *currnum % DB+5 DB+2 Q-5 % 000004 A ".." % 000002 000000 "Bi" 000132 000000 "ll" 000253 000000 "..
V - The Virtual Windows The virtual window displays blocks of Precision Architecture virtual memory. a NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN $ STUDENTS SID=109 200010:00000004 42696c6c 200030:0000004e 00000042 $ Virtual SID=109 200010: "...." "Bill" $ NUM SID=109 200154:00000004 00000000 HOME=109.
values - The actual data values are displayed. Unprintable ASCII data is shown as dots. System Debug Windows FINAL TRIM SIZE : 7.5 in x 9.
Z - The Memory Window The memory window displays a block of Precision Architecture real memory.
L - The LDEV Window The LDEV window displays the contents of secondary storage (data on disk). d a NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN LDEV $ DISP=1.0 HOME=1.
TX- The Text Windows The text window displays the contents of ASCII text les. a NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN X0$ COL=1 LINE=1e FNAME=TGRADES.DEMO.
LINE - The line number ( le record number) at which the window is aimed. FNAME - The name of the le at which the text window is aimed. window body line(s) text - The ASCII contents of the text le(s). "." - Dots signify lines past the end-of- le count. "x" - X's signify an error while reading the data for that line. This could be a protection violation or some other cause (not shown above). System Debug Windows FINAL TRIM SIZE : 7.5 in x 9.
FINAL TRIM SIZE : 7.5 in x 9.
7 System Debug Window Commands System Debug window commands are most easily understood when they are grouped into two types of commands. The commands in this chapter are ordered as follows: General Window Operations: RED Redraw the entire screen display. WDEF Restore default window sizes. WGRP Switch to the speci ed group of user windows. WOFF Turn the windows o . WON Turn the windows on. Window Operations: B Backwards - scroll window backwards. C Current - mark window as current window.
CMP G GR L NMP P Q R S SR TX U V Z CM program window (from NM). Group window. NM general registers window. Ldev window. NM program window (from CM). Program window (current mode). CM frame window, Q relative. CM registers window. CM stack window, S relative. NM special registers window. Text le window. User-de ned window. Virtual address window. Real memory window. Put window abbreviations and window operations together to form the desired command.
The Debug window commands are described in detail in the remainder of this chapter. The commands are listed in alphabetical order. Note that all individual window operation commands are constructed by preceding the window operation with the abbreviation for the desired window. To signify this, all window operation commands are listed as w X, where w represents the window abbreviation and X represents the command or operation. For example, the window forward command is w F.
RED Redraws the entire screen display of windows. Syntax RED Parameters none Examples %cmdebug > red Redraws the screen. Limitations, Restrictions none 7-4 System Debug Window Commands FINAL TRIM SIZE : 7.5 in x 9.
WDEF WDEF Window defaults. Resets the default window sizes. Syntax WDEF Parameters none Examples %cmdebug > wdef Limitations, Restrictions Virtual and real window sizes default to 0 lines, so that they are e ectively killed (VK, ZK) by this command. System Debug Window Commands FINAL TRIM SIZE : 7.5 in x 9.
WGRP Changes to the speci ed group of user-de ned windows. Syntax WGRP [group number] Parameters group number The number of the group which is to be displayed in the group window. If no value is entered, group 1 is assumed. Examples %cmdebug > wgrp 2 Switch the group window to display group number 2. Limitations, Restrictions Current limit: 3 groups of 10 user-de ned windows, each numbered from 1 to 10. 7-6 System Debug Window Commands FINAL TRIM SIZE : 7.5 in x 9.
WOFF WOFF Windows OFF. Turns o the windows. Syntax WOFF Parameters none Examples %cmdebug > woff Limitations, Restrictions none System Debug Window Commands FINAL TRIM SIZE : 7.5 in x 9.
WON Windows ON. Turns on the windows. If windows are already on, redraws them. Syntax WON Parameters none Examples %cmdebug > won Limitations, Restrictions none 7-8 System Debug Window Commands FINAL TRIM SIZE : 7.5 in x 9.
wB w B Window back. Scrolls the speci ed window backwards. Syntax PB [amount] CMPB [amount] NMPB [amount] Program, current mode CM program NM program QB SB [amount] [amount] CM frame, CM stack, GB UB [amount] [amount] [win number] Group window User window VB ZB LB TXB [amount] [win number] [amount] [amount] [amount] [win number] Virtual window Real memory window LDEV window Text window Q relative S relative Parameters amount The number of words or lines to scroll backwards.
wB Cmd PB CMPB NMPB QB SB GB UB VB ZB LB TXB win number Units (CM/NM) words* CM words NM words CM words CM words User windows (CM/NM) words* CM words CM words CM words Lines Default Previous full screen of instructions Previous full screen of instructions Previous full screen of instructions Previous full line of data Previous full line of data To start of the previous user window 1 line Previous full screen of data Previous full screen of data Previous full screen of data Previous full screen of text
wC w C Window current. Marks the speci ed window as the current window. Many user window (U), text window (TX), and virtual window (V) commands operate on the current window. Syntax UC [win number] VC [win number] TXC [win number] Parameters win number The window number for a speci c user window (U), text window (TX), or virtual window (V). If win number is omitted, then the current window remains agged as the current window.
w D Window disable. Syntax RD GRD SRD CM registers NM general registers NM special registers PD CMPD NMPD QD SD Program, current mode CM program NM program CM frame, Q relative CM stack, S relative GD Group window UD [win number] User window VD ZD LD TXD [win number] Virtual window Real memory window LDEV window Text window [win number] This command causes the window to be removed from the screen temporarily until the window is enabled again (see the wE command).
wD Parameters win number The window number for a speci c user window (U), text window (TX), or virtual window (V). If win number is omitted, then the current window is used. The current user window is marked by an asterisk, and the current virtual and text windows are marked in inverse video. Examples %cmdebug > PD Disable the (current mode) program window. %cmdebug > UD 3 Disable user window number 3. Limitations, Restrictions none System Debug Window Commands FINAL TRIM SIZE : 7.5 in x 9.
w E Window enable. Syntax RE GRE SRE CM registers NM general registers NM special registers PE CMPE NMPE QE SE Program, current mode CM program NM program CM Frame, Q relative CM Stack, S relative GE Group window UE [win number] User window VE ZE LE TXE [win number] Virtual window Real memory window LDEV window Text window [win number] This command enables a window that was previously disabled with the w D command.
wE Parameters win number The window number for a speci c user window (U), text window (TX), or virtual window (V). If win number is omitted, then the current window is used. The current user window is marked by an asterisk, and the current virtual and text windows are marked in inverse video. Examples %cmdebug > NMPE Enable the NM program window. Both the CM and NM program window can appear together. %cmdebug > VE 3 Enable virtual window number 3.
w F Window forward. Scrolls the speci ed window forward. Syntax PF [amount] CMPF [amount] NMPF [amount] Program current mode CM program NM program QF SF [amount] [amount] CM frame, CM stack, GF UF [amount] [amount] [win number] Group window User window VF ZF LF TXF [amount] [win number] [amount] [amount] [amount] [win number] Virtual window Real memory window LDEV window Text window Q relative S relative Parameters amount 7-16 The number of words or lines to scroll forward.
Cmd PF CMPF NMPF QF SF GF UF VF ZF LF TXF win number Units (CM/NM) words* CM words NM words CM words CM words User windows (CM/NM) words* CM words CM words CM words CM words Default wF Next full screen of instructions Next full screen of instructions Next full screen of instructions Next full line of data Next full line of data To start of the next user window 1 line Next full screen of data Next full screen of data Next full screen of data Next full screen of text * Based on mode of the window.
w H Window home. Returns a window to its original location. Syntax RH GRH SRH CM registers window NM general registers window NM special registers window PH CMPH NMPH QH SH Program window, current mode CM program window NM program window CM frame window - Q relative CM stack window - S relative GH UH [win number] Group window User window VH ZH LH TXH [virtaddr] [win number] [realaddr] [ldev.
wH Parameters win number virtaddr realaddr ldev.o The window number for a speci c user window (U), text window (TX), or virtual window (V). If win number is omitted, then the current window is used. The current user window is marked by an asterisk, and the current virtual and text windows are marked in inverse video. If this parameter is provided, the home address for the virtual window (V) is set to the indicated address. Virtaddr can be a short pointer, a long pointer, or a full logical code pointer.
wH Examples %cmdebug > PH Home the program window. $nmdebug > VH PSP-40 4 Change the home address for virtual window 4 to be the value of PSP-40. Jump the window to the new home address. %cmdebug > UH 3 Home user window 3. Limitations, Restrictions none 7-20 System Debug Window Commands FINAL TRIM SIZE : 7.5 in x 9.
wI w I Window information. Prints information about the indicated windows. This command is de ned for the virtual (V) and text (TX) windows. Syntax VI [win number] TXI [win number] Parameters win number The window number for a speci c text window (TX) or virtual window (V). If win number is omitted, then information for all of the text or virtual windows is displayed. The abbreviations used in the output are de ned as follows: COL Column number (1, unless window was \shifted").
wI Examples $nmdebug > vi 2 V2: HOME= a.00040017 CURR= a.00040017 Lines=3 Display information about virtual window number 2. $nmdebug > txi TX0: TDEBUG.CMDEBUG.OFFICIAL REC=50 COL=1 EOF=534d LINE=34c FLIMIT=534d TX1: LIST.DEBUG.WORK REC=85 CCTL COL=a1 EOF=1000 LINE=1 FLIMIT=1000 Display information about all of the text windows. Limitations, Restrictions The format of output may be changed without notice. 7-22 System Debug Window Commands FINAL TRIM SIZE : 7.5 in x 9.
wJ w J Window jump. Jumps window to the speci ed address. Syntax System Debug Window Commands FINAL TRIM SIZE : 7.5 in x 9.
wJ PJ PJG PJP PJLG PJLP PJS PJU PJV PJA PJAX [logaddr] [logaddr] [logaddr] [logaddr] [logaddr] [logaddr] [fname logaddr] [virtaddr] [absaddr] [absaddr] Program file Group library Account library Logon group library Logon account library System library User library Any virtual address Absolute CST Absolute CSTX CMPJ CMPJG CMPJP CMPJLG CMPJLP CMPJS CMPJA CMPJAX [logaddr] [logaddr] [logaddr] [logaddr] [logaddr] [logaddr] [absaddr] [absaddr] Program file Group library Account library Logon group library Lo
wJ Parameters logaddr PJ, PJG, PJP, PJLG, PJLP, PJS, PJU, and PJV control the current program window, which is based on the current mode (CM or NM). CMPJ, CMPJG, CMPJP, CMPJLG, CMPJLP, and CMPJS control the CM program window. NMPJ, NMPJG, NMPJP, NMPJS, NMPJS, and NMPJU control the NM program window. A full logical code address (LCPTR) speci es three necessary items: 1. The logical code le (PROG, GRP, SYS, and so on). 2. NM: the virtual space ID number (SID). CM: the logical segment number. 3.
wJ For NM, the short pointer o set is converted to a long pointer using the function STOLOG, which looks up the SID of the loaded logical le. This is di erent from the standard short to long pointer conversion, STOL, which is based on the current space registers (SRs). For CM, the current executing logical segment number and the current executing logical le are used to build an LCPTR.
wJ virtaddr absaddr The virtual window (V) can be aimed at any Precision Architecture space and o set address. Virtaddr can be a short pointer, a long pointer, or a full logical code pointer. PJA, PJAX, CMPJA, CMPJAX control the CM program window. A full CM absolute code address speci es three necessary items: Either the CST or the CSTX The absolute code segment number The CM word o set within the code segment Absolute code addresses can be speci ed in two ways: As a long pointer (LPTR) PJA 23.
wJ Examples $nmdebug > pj 200 Jump to the program le at o set 200. A logical address is expected as the value for this command. Remember that when only an o set is speci ed as a logical address in the PJ command, the space (SID) for the program is assumed. A STOLOG conversion (with the \prog" selector) will be done to accomplish this. $nmdebug > pj r2 Jump to the program le at the o set indicated by register R2.
wJ $nmdebug $nmdebug $nmdebug $nmdebug $nmdebug > > > > > vw c0.100 vj c0.200 vj c0.300 vj vh /* /* /* /* /* Create a new virtual window at c0.100 Jump the window to c0.200 Jump the window to c0.300 Jump to previous location (c0.200) Jump to home location (c0.100) The end result is to place the current virtual window at 100 (its \home" location). Limitations, Restrictions none System Debug Window Commands FINAL TRIM SIZE : 7.5 in x 9.
w K Window kill. Syntax RK GRK SRK CM registers NM general registers NM special registers PK CMPK NMPK QK SK Program, current mode CM program NM program CM frame, Q relative CM stack, S relative GK UK VK ZK LK TXK [win number] [win number] [win number] Group window User window Virtual window Real memory window LDEV window Text window This command removes a window from the screen. It does this by setting the length of a window to zero lines, which e ectively makes it disappear.
wK Parameters win number The window number for a speci c user window (U), text window (TX), or virtual window (V). If win number is omitted, then the current window is used. The current user window is marked by an asterisk, and the current virtual and text windows are marked in inverse video. System Debug Window Commands FINAL TRIM SIZE : 7.5 in x 9.
wK Examples %cmdebug > PK Kill the (current mode) program window. %cmdebug > PL 6 Bring back the program window. Remember, killing a window sets its length to zero. %cmdebug > VK 3 Deallocate virtual window number 3. This window cannot be brought back by changing the window length as in the above example. Once a virtual window is killed, it is gone until a new VW command is used to create a new one. Limitations, Restrictions none 7-32 System Debug Window Commands FINAL TRIM SIZE : 7.5 in x 9.
wL w L Window lines. Sets the number of lines in a window.
wL Examples %cmdebug > pl 7 Set the (current mode) program window to 7 lines. %cmdebug > gl 0; vl 5 Turn o the group window and set the current virtual window to 5 lines. Limitations, Restrictions none 7-34 System Debug Window Commands FINAL TRIM SIZE : 7.5 in x 9.
wM w M Window mode. Changes the mode for the Q or S window. Syntax QM SM [addressmode] [signed] [addressmode] [signed] Parameters addressmode This parameter speci es the mode in which addresses are to be displayed. If no value is speci ed, DB is the default. The following values are allowed: DB Display address as DB-relative values (initial mode). DL Display address as DL-relative values. DST Display address as DST-base-relative values. Q Display address as Q-relative values.
wM Examples $nmdebug > qm dst Set the Q window to display addresses as DST-relative (stack-base relative) values. $nmdebug > sm ,signed Set the S window to have addresses displayed as signed values. Limitations, Restrictions none 7-36 System Debug Window Commands FINAL TRIM SIZE : 7.5 in x 9.
wN w N Renames a virtual window or a user-de ned window. Syntax UN VN [name] [win number] [name] [win number] User window Virtual window Parameters name The name for this user window. Names are restricted to eight alphanumeric characters. If the name is omitted, the following default names are used: Window Default Name USER (U) VIRTUAL (V) win number Virtual The window number for a speci c user window (U) or virtual window (V). If win number is omitted, then the current window is used.
w R Sets the radix (output base) for the speci ed window.
wR asterisk, and the current virtual window is marked in inverse video. System Debug Window Commands FINAL TRIM SIZE : 7.5 in x 9.
wR Examples %cmdebug > qr a Display the values in the stack frame window in ASCII. %cmdebug > ur d 3 Display user window number 3 in decimal. Limitations, Restrictions The R, GR, SR, and CMP windows cannot be set to an ASCII base. The radix for the NMP, SR, and GR windows cannot be altered from its initial hexadecimal value. 7-40 System Debug Window Commands FINAL TRIM SIZE : 7.5 in x 9.
wS w S Window shift. Shifts a window to the left or right. This command is de ned for text windows (TX). Syntax TXS [ amount ] [win number] Parameters amount win number This is the number of columns to shift the window. A positive value shifts the window right (view data past the right end of the screen). A negative value shifts the window left (view data past the left end of the screen). If no value is given, the window is shifted to column 1. The window number for a speci c text window (TX).
UW m Allocates a named user window at the speci ed address. The command name speci es which type of window to de ne. User windows are displayed within the group window. Syntax UWA UWDB UWS UWQ o o o o set set set set [name] [name] [name] [name] Absolute memory relative (ABS) DB relative S relative Q relative UWD dst.
m UW As a long pointer (LPTR): UWCA 23.2644 Implicit CST 23.2644 UWCAX 5.3204 Implicit CSTX 5.3204 As a full absolute code pointer (ACPTR): UWCA CST(2.200) Explicit CST coercion UWCAX CSTX(2.200) Explicit CSTX coercion UWCAX logtoabs(prog(1.20)) Explicit absolute conversion System Debug Window Commands FINAL TRIM SIZE : 7.5 in x 9.
m UW The search path used for procedure name lookups is based on the command su x letter: UWCA UWCAX virtaddr realaddr name GRP, PUB, LGRP, LPUB, SYS PROG UWV only. A Precision Architecture virtual address. Virtaddr can be a short pointer, a long pointer, or a full logical code pointer. UWZ only. A Precision Architecture real memory address. The name for this user window. Names are restricted to eight alphanumeric characters. If name is omitted, the window is named \user".
wW w W De nes (enables) new windows. Syntax VW virtaddr [name] ZW realaddr LW Ldev.o TXW lename UWm Virtual window Real Memory LDEV (Secondary Storage) window Text window User window (see UWm command) The VW and TXW commands allocate the next available virtual (V) or text (TX) window. The window is aimed at the speci ed address (V) or le (TX). Finally, the window is marked as the \current window." The LW and ZW commands aim/enable the real memory window (ZW) and the LDEV window (LW) respectively.
wW lename 7-46 The le name to which the text window is aimed. System Debug Window Commands FINAL TRIM SIZE : 7.5 in x 9.
wW Examples %cmdebug > VW a.c0000000 SYSGLOB Allocate a new virtual window and aim it at a.c0000000. Label the window with the name SYSGLOB. %cmdebug > ZW 1800 Aim the real memory window to physical address 1800. $nmdebug > TXW TGRADES.DEMO.TELESUP Create and aim a text window at the le TGRADES.DEMO.TELESUP. Limitations, Restrictions A total of seven virtual windows and three text windows are available. There is only one LDEV and one real window. System Debug Window Commands FINAL TRIM SIZE : 7.
FINAL TRIM SIZE : 7.5 in x 9.
8 System Debug Standard Functions This chapter presents the full formal declaration for each of the standard functions which are de ned in System Debug. All functions are callable from both DAT and Debug. All functions can be called from both Native Mode (NM) and Compatibility Mode (CM). Some functions, however, deal speci cally with NM or CM attributes. Input parameters are always interpreted based on the current mode, so care must be exercised when specifying procedure names and numeric literals.
Name ASCC BOOL CST CSTX EADDR GRP LGRP LPTR LPUB PUB S16 S32 S64 SADDR SPTR SYS TRANS USER U16 U32 8-2 Type : : : : : : : : : : : : : : : : : : : : STR BOOL CST CSTX EADDR GRP LGRP LPTR LPUB PUB S16 S32 S64 SADDR SPTR SYS TRANS USER U16 U32 Description Coerces an expression to ASCII Coerces an expression to Boolean Coerces an expression to CST ACPTR Coerces an expression to CSTX ACPTR Coerces an expression to extended address.
UTILITY Functions Name ASC BIN BITD BITX BOUND CISETVAR CIVAR ERRMSG MACBODY TYPEOF MAPINDEX MAPSIZE MAPVA Type : : : : : : : : : : : : : STR INT ANY ANY STR BOOL ANY STR STR STR U16 U32 LPTR Description Converts an expression to an ASCII string Converts an ASCII string to binary value Bit deposit Bit extract Tests for current de nition of an operand Sets a new value for a CI variable Returns the current value of a CI variable Returns an error message string Returns the macro body of a speci ed macro
Name ABSTOLOG BTOW CMNODE CMTONMNODE CMVA DSTVA HASH LOGTOABS LTOLOG LTOS NMNODE NMTOCMNODE OFF PHYSTOLOG RTOV SID STOL STOLOG VTOR VTOS 8-4 Type : LCPTR : U16 : LCPTR : TRANS : LPTR : LPTR : S32 : ACPTR : LCPTR : SPTR : TRANS NM : LCPTR : U32 : LCPTR : LPTR : U32 : LPTR : LCPTR : U32 : SADDR Description CM absolute address to logical code address Converts a CM byte o set to a word o set CM address of closest CM node point NM address of closest CM node point Converts CM code address to a virtual addre
PROCESS Functions Name CMG CMSTACKBASE CMSTACKDST CMSTACKLIMIT NMSTACKBASE NMSTACKLIMIT PCB PCBX PIB PIBX PSTATE TCB VAINFO Type : : : : : : : : : : : : : SPTR LPTR U16 LPTR LPTR LPTR SPTR SPTR SPTR SPTR STR U32 ANY Description Short pointer address of CMGLOBALS record Virtual address of the CM stack base Data segment number of the CM stack Virtual address of the CM stack limit Virtual address of the NM stack base Virtual address of the NM stack limit Address of process control block Address of proces
STRING Functions Name STR STRAPP STRDEL STRDOWN STREXTRACT STRINPUT STRINS STRLEN STRLTRIM STRMAX STRPOS STRRPT STRRTRIM STRUP STRWRITE Type : : : : : : : : : : : : : : : STR STR STR STR STR STR STR U16 STR U16 U16 STR STR STR STR Description Extracts a substring from a string String append String delete Downshifts a string Extracts a string at a virtual address Prompts for and reads string input String insert Returns the current length of a string Removes leading blanks from a string Returns the maxi
func abstolog func abstolog Converts an CM absolute code address (ACPTR) to a CM logical code (LCPTR) address. Syntax abstolog (cmabsaddr) Formal Declaration abstolog:lcptr (cmabsaddr:acptr) Parameters cmabsaddr The CM absolute code address which is to be converted to a CM logical code address. Cmabsaddr must be a full CM absolute code address (ACPTR). For Example: CST(2.102) CST segment 2 o set 102 CSTX(1.
func abstolog Absolute CM address CSTX 1.1273 is converted into logical address PROG %0.1273. %cmdebug > wl abstolog(cst(43.304)) SYS %32.304 Absolute CM address CST 43.304 is converted into logical address SYS %32.304. %cmdebug > wl abstolog(cst(103.4274)) GRP %4.4274 Absolute CM address CST 103.4274 is converted into group library logical address GRP 4.4274. Limitations, Restrictions none 8-8 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func asc func asc Evaluates an expression and converts the result to an ASCII string. Syntax asc (value [formatspec]) Formal Declaration asc:str (value:any [formatspec:str = '']) Parameters value formatspec The expression to be formatted. An optional format speci cation string can be speci ed in order to select speci c output base, left or right justi cation, blank or zero ll, and eld width.
func asc H D O Hex output base (no pre x) Decimal output base (no pre x) Octal output base (no pre x) A N ASCII base (use \.
func asc Types S16,U16 S32,U32 S64 SPTR LPTR Class EADDR Class STR hex($,H) dec(#,D) oct(%,O) ascii(A,N) 4 6 6 2 8 10 11 4 16 20 22 8 8 10 11 4 8.8 10.10 11.11 8 8.16 10.20 11.22 12 eld width = length of the string The Wn directive (variable eld width) allows the user to specify the desired eld width. The W directive can be speci ed with an arbitrary expression.
func asc For values of type LPTR (long pointer, sid.o set , or seg.o set ) and EADDR (extended address, sid.o set or ldev.o set ), two separate format directives can be speci ed. Each is separated by a dot, \.", to indicate individual formatting choices for the \sid " portion and the \o set " portion. This is true for all code pointers (ACPTR - Absolute Code pointers: CST, CSTX; LCPTR - Logical Code Pointers: PROG, GRP, PUB, LGRP, LPUB, SYS, USER, TRANS). For example: pc:"+.-, w4.8, r.l, b.
func asc write into the output bu er. Column numbers start at column 1. For example: number:"c6" Note: The Cn directive is ignored by the ASC function but is honored by the W, WL and WP commands. System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func asc Examples $nmdat > var number u32(123) $nmdat > wl asc(number) $123 $nmdat > wl asc(number,"-") 123 $nmdat > wl asc(number,"t") U32 $123 $nmdat > wl asc(number "#") #291 $nmdat > wl asc(number, 'd') 291 $nmdat > wl asc(number 'fr') $123 $nmdat > wl asc(number, "r,w6,-,z") 000123 Several examples of formatting an unsigned 32-bit value.
func asc $nmdat > var long 2f.42c8 $nmdat > wl asc(long) $2f.000042c8 $nmdat > wl asc(long, LPTR $2f.000042c8 $nmdat > wl asc(long, 2f.$000042c8 $nmdat > wl asc(long, #47.$42c8 $nmdat > wl asc(long, 0000002f.42c8 $nmdat > wl asc(long, 00002f.0042c8 $nmdat > wl asc(long, "00002f.0042c8" $nmdat > wl asc(long, $2f. $42c8 "t") "-.+") "#.$ m.m") "r.r, f.m z") "r.r w6.6 z.z") 'r.r w6.2*3 z.z qd') 'r.r,w(2*3).(4+2),b.b,$.$') $nmdat > var width 6.6 $nmdat > wl asc(long, 'r.l Wwidth, b.b, $.$') $2f .
func ascc Coerces an expression into a string value. Syntax ascc (value) Formal Declaration ascc:str (value:any) Parameters value An expression to be coerced. Its type can be anything except BOOL. This function takes the internal bit pattern for value and treats it as a sequence of ASCII characters.
func ascc Examples $nmdebug > = ascc(%100+%1) 'A' $nmdebug > wl strlen (ascc(%100+%1)) $2 The expression %100+%1 is evaluated and coerced into a string value. Since the parameter type is e ectively U16, the string contains two characters, a NULL (0) followed by a capital \A". $nmdebug > var bell strdel(ascc(7),1,1) $nmdebug > wl bell This example builds a single-character string and assigns the result to the variable named bell.
func bin Converts a string expression to return a binary value. Syntax bin (strexp) Formal Declaration bin:any (strexp:str) Parameters strexp A string expression to be converted from ASCII into binary. Examples %cmdebug > wl bin("1+2") %3 The contents of the string "1+2" are evaluated as an expression, and the result (3) is converted into a binary value.
func bitd func bitd Bit deposit. Deposits a value into a speci ed range of bits. Syntax bitd (value position length target) Formal Declaration bitd:any (value:any position:s16 length:u16 target:any) Parameters value position length target The value to deposit into the target. Its type is restricted to the INT and PTR classes. This parameter speci es the starting bit position (positive value) or the ending bit position (negative value) of the deposit.
func bitd | | +---------------------------------------------------------------+ If a S16 or U16 value is passed, the format of the word (start/end positions) is as follows: 1 1 1 1 1 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 +-------------------------------+ | | +-------------------------------+ Examples For our example, we use a 32-bit word containing the bit pattern for the hex value 4015381f: 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +---------
func bitd Limitations, Restrictions The value to be deposited is truncated as necessary on the left to t within the eld width of length . If an extended address target is passed, the deposit location must fall entirely within the 64-bit o set part. Since EADDR types have a total of 96 bits, the valid bit positions are 32 through 95. System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func bitx Bit extract. Extracts a range of bits from an expression. Syntax bitx (source position length) Formal Declaration bitx:any (source:any position:s16 length:u16) Parameters source position The value from which to extract a range of bits. Its type is restricted to the INT and PTR classes. This parameter speci es the starting bit position (positive value), or the ending bit position (negative value) of the extraction.
func bitx 1 1 1 1 1 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 +-------------------------------+ | | +-------------------------------+ Examples This is a 32-bit word containing the bit pattern for the hex value 4015381c: 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 3 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +---------------------------------------------------------------+ |0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 1 1 0 0 0 0 0 0 1 1 1 0 0| +---------------------------------------------------------
func bool Coerces an expression into a Boolean value. Syntax bool (value) Formal Declaration bool:bool (value:any) Parameters value An expression to be coerced. Its type can be anything except STR. The coercion will evaluate to FALSE if the value of the expression is 0; otherwise, the value of the coercion will be TRUE. Examples $nmdebug > wl bool(0) FALSE $nmdebug > wl bool(1) TRUE $nmdebug > wl bool(123) TRUE $nmdebug > wl bool(a.c00023c4) TRUE $nmdebug > wl bool(0.
func bool FALSE Limitations, Restrictions none System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func bound Checks for an existing de nition of an operand and returns its de nition type. Syntax bound (operand) The BOUND function uses the name in operand to check for an existing de nition for that name. The type of the de nition is returned in a string.
func bound Parameters operand A string expression naming the operand for which the de nition type is returned. System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func bound Examples $nmdebug > if bound('list') <> 'VAR' then var list slowbuildlist('ALL') BOUND is often used to determine if a particular variable has been de ned. In this example, which might typically be found in a macro, BOUND is used to test for the prior de nition of the variable named "list". If the variable has not yet been de ned, then it is created and assigned the return value from the macro named slowbuildlist.
func btow func btow Byte to word. Converts a CM DB-relative byte address to a CM DB-relative word address. Syntax btow (byteaddress [splitstack]) Formal Declaration btow:I16 (byteaddress:I16 [splitstack:bool=FALSE]) Parameters byteaddress splitstack The CM DB-relative byte address which is to be converted into a CM DB-relative word address. If splitstack is FALSE, then byteaddress is assumed to be within the current process's CM stack. The byte address is logically shifted right by one bit.
func btow %cmdebug > wl btow (100002) %40001 %cmdebug > wl btow (177776) %177777 These examples assume the current CM registers which are displayed above. Note the large stack usage above DB. 8-30 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func btow %cmdebug > dr DBDST=%204 DB=%70000 X=%0 STATUS=%100030=(Mitroc CCG 030) PIN=%40 SDST=%204 DL=%110650 Q=%726 S=%1204 CMPC=SYS %27.253 CIR=%041601 MAPFLAG=%1 MAPDST=%0 %cmdebug > wl btow (177776) %177777 %cmdebug > wl btow (100002) %140001 %cmdebug > wl btow (40002) %120001 These examples assume the current CM registers displayed above. Note the huge DL area. Limitations, Restrictions none System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func cisetvar Sets a new value for the speci ed CI (MPE XL Command Interpreter) variable. Syntax cisetvar (civarname newvalue) This function is implemented by calling the HPCIPUTVAR intrinsic. String variables are stored as strings. They are not interpreted numerically. Formal Declaration cisetvar:bool (civarname:str newvalue:any) Parameters civarname newvalue The name of the CI variable to be assigned a new value. The new value to be assigned to the speci ed CI variable.
func cisetvar Limitations, Restrictions none System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func civar Returns the current value of a CI (MPE XL Command Interpreter) variable. Syntax civar (civarname [stropt]) This function is implemented by calling the HPCIGETVAR intrinsic. Formal Declaration civar:any (civarname:str [stropt:str="NOEV"]) Parameters civarname stropt The name of the CI variable. A string that determines whether the CI should attempt to evaluate the named variable.
func civar $nmdebug > wl civar( "hpusercapf" ) SM,AM,AL,GL,DI,OP,CU,UV,LG,PS,NA,NM,CS,ND,SF,BA,IA,PM,MR,DS,PH Display the current value of the CI variable HPUSERCAPF. System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func civar $nmdat > :showvar one ONE = !TWO $nmdat > :showvar two TWO = 2 $nmdat > wl civar("one") !TWO $nmdat > wl civar("one" "EVAL") 2 Two CI variables have already been de ned. Variable one references variable two which is assigned the value of 2. The rst use of the function CIVAR defaults to NOEVALUATE, and as a result the value of one is returned as !TWO.
func cmaddr func cmaddr Converts a CM procedure name (or primary/secondary entry point) to a CM logical code address. Syntax cmaddr (procname [lib]) The CMADDR function is especially useful for locating CM procedures when the current mode is NM, since procedure name lookups are based on the current mode. CMADDR explicitly requests a CM procedure name lookup. Compatibility Mode code may be emulated, or translated into NM. This function always returns addresses based on emulated CM object code.
func cmaddr lib 8-38 An optional string which indicates where the search for the named procedure should begin. By default, the program and then all currently loaded libraries will be searched. PROG Search the program le GRP Search the group library PUB Search the account library LGRP Search the logon group library LPUB Search the logon account library SYS Search the system library System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func cmaddr Examples $nmdebug > wl cmaddr( "my'lib'proc" "pub") PUB $2.124 Look up the start address of my'lib'proc in the CM group library. $nmdebug > wl cmaddr( "?fopen" ):"%.o" SYS %22.5000 Look up the entry point address of fopen and display the address in octal. Limitations, Restrictions none System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func cmbpaddr Returns the address corresponding to the indicated CM breakpoint index. Syntax cmbpaddr (bpindex [pin]) This function accepts an index for an existing CM breakpoint and returns the address where the breakpoint is located. The default action is to look for breakpoints set by the current PIN. Breakpoint addresses for other pins (including the global PIN) may be retrieved by utilizing the optional pin parameter.
func cmbpaddr %cmdebug > wl cmbpaddr(1) PROG %2.3401 %cmdebug > wl cmbpaddr(1, -1) SYS %161.5274 Now use the function to return the address associated with process local breakpoint number one and then with system breakpoint number one. Limitations, Restrictions none System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func cmbpindex Returns the CM breakpoint index associated with the indicated CM code address. Syntax cmbpindex (cmaddr [pin]) This function accepts the address (either logical or absolute) of an existing CM breakpoint and returns the logical index number associated with that breakpoint. The default action is to look for breakpoints set by the current PIN. Breakpoint indices for other PINs (including the global PIN) may be retrieved by utilizing the optional pin parameter.
func cmbpindex First, list the existing breakpoints. %cmdebug > wl cmbpindex(TEST'FILES) %2 Go nd the CM breakpoint index associated with the address TEST'FILES. System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func cmbpindex %cmdebug > wl cmbpindex(FOPEN) No breakpoint exists in the breakpoint tables with that address. #1080) Error evaluating a predefined function. function is"cmbpindex" wl cmbpindex(FOPEN) (error (error #4240) Now, go nd the breakpoint index for the breakpoint at FOPEN. In this example we get an error. This is because we did not specify a PIN and thus searched only for process local breakpoints. We do not have a process local breakpoint at FOPEN.
func cmbpinstr func cmbpinstr Returns the original CM instruction at a speci ed CM code address where a CM breakpoint has been set. Syntax cmbpinstr (cmaddr [pin]) This function accepts the address (either logical or absolute) of an existing CM breakpoint and returns the instruction associated with that breakpoint. The default action is to look for breakpoints set by the current PIN. Breakpoint indices for other PINs (including the global pin) may be retrieved by utilizing the optional pin parameter.
func cmbpinstr %cmdebug > b FOPEN added: CM [1] SYS % 161.5274 %cmdebug > dc FOPEN,1 %005274: FOPEN+%0 FOPEN+%0 003600 <. BRKP Now set a breakpoint at FOPEN and display the code there. The old instruction has been replaced with a breakpoint instruction. %cmdebug > wl cmbpinstr(FOPEN) %4300 Use the function to look up the actual instruction. The instruction that is stored in the system breakpoint table is returned by the function.
func cmentry func cmentry Returns the CM (primary) entry point address of the CM procedure containing the speci ed CM logical code address. Syntax cmentry (cmlogaddr) Entry point addresses correspond to the ENTRY column in the PMAP generated by the Segmenter. See the CM program example below. Formal Declaration cmentry:lcptr (cmlogaddr:lcptr) Parameters cmlogaddr A CM logical code address. The entry point of the surrounding level one CM procedure is returned as a CM logical code address.
func cmentry Examples Assume that the following single segment CM program has been compiled, linked with the PMAP and FPMAP options, and is now being executed: PROGRAM test (input,output); PROCEDURE one; begin {one} writeln('ONE'); end; {one} PROCEDURE two; PROCEDURE three; begin {three} writeln('THREE'); end; {three} begin {two} writeln('TWO'); three; end; {two} begin {main body} one; two; end. {main body} { Outer block is named "ob'" by the compiler } PROGRAM FILE PTEST.DEMO.
func cmentry P'INITHEAP'3000 11 TWO 2 P'WRITELN 12 P'WRITESTR 13 ONE 3 SEGMENT LENGTH PRIMARY DB SECONDARY DB TOTAL DB ELAPSED TIME 71 123 142 210 155 ? ? ? 2 INITIAL STACK 430 INITIAL DL 432 MAXIMUM DATA 00:00:01.365 10240 CAPABILITY 600 0 TOTAL CODE 210 ? TOTAL RECORDS 11 PROCESSOR TIME 00:00.740 END OF PREPARE System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func cmentry %cmdebug > wl ob' PROG %0.0 %cmdebug > wl cmstart(ob') PROG %0.0 Two methods of displaying the start address of the procedure ob'. %cmdebug > wl ?ob' PROG %0.13 %cmdebug > wl cmentry(ob') PROG %0.13 Two methods of displaying the entry address of the procedure ob'. %cmdebug > wl cmstart(one) PROG %0.142 %cmdebug > wl cmentry(one) PROG %0.155 %cmdebug > wl cmstart(two) PROG %0.71 %cmdebug > wl cmentry(two) PROG %0.
func cmg func cmg Returns the virtual address (SPTR) of a process's CMGLOBALS record. Syntax cmg (pin) Formal Declaration cmg:sptr (pin:u16) Parameters pin The process identi cation number (PIN) for which the address of the CMGLOBALS record is to be returned. Examples $nmdebug > wl cmg($8) $c4680000 Limitations, Restrictions If the PIN does not exist, the function result is unde ned and an error status is set. System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func cmnode Returns the address of the closest CM node point corresponding to the speci ed CM logical code address. Syntax cmnode (cmlogaddr [node]) Refer to appendix C for a discussion of CM Object Code Translation (OCT), node points, and breakpoints in translated CM code. Formal Declaration cmnode:lcptr (cmlogaddr:lcptr [node:str="PREV"]) Parameters cmlogaddr The CM logical code address within a translated code segment for which the closest CM node point is desired.
func cmnode Examples %cmdebug > wl cmnode(sys(2.226)) SYS %2.224 Print the CM address of the closest CM previous (by default) node point. %cnmdebug > wl cmnode(sys(2.226), "next") SYS %2.232 Print the CM address of the closest CM next node point. Limitations, Restrictions none System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func cmproc Returns the CM procedure name and o set corresponding to a CM logical code address. Syntax cmproc (cmlogaddr) The string returned by CMPROC can be either of the two following formats : ?entrypoint name or procedure name + base o set Detailed descriptions of each of the above return strings follow: entrypoint name The name of the CM entry point (primary/secondary). procedure name The name of the CM procedure.
func cmproc Formal Declaration cmproc:str (cmlogaddr:lcptr) Parameters cmlogaddr The CM logical code address for which the CM symbolic procedure name/o set is to be returned. Cmlogaddr must be a full CM logical code address (LCPTR). For example: CMPC Current CM program counter CMPW+4 Top of CM program window + 4 PROG(2.
func cmproc end; {three} begin {two} writeln('TWO'); three; end; {two} begin {main body} one; two; end. {main body} { Outer block is named "ob'" by the compiler } PROGRAM FILE PTEST.DEMO.TELESUP SEG' 0 NAME STT CODE ENTRY SEG OB' 1 0 13 TERMINATE' 5 ? P'RESET 6 ? P'REWRITE 7 ? P'CLOSEIO 10 ? P'INITHEAP'3000 11 ? TWO 2 71 123 P'WRITELN 12 ? P'WRITESTR 13 ? ONE 3 142 155 SEGMENT LENGTH 210 PRIMARY DB SECONDARY DB TOTAL DB ELAPSED TIME 2 INITIAL STACK 430 INITIAL DL 432 MAXIMUM DATA 00:00:01.
func cmproc %cmdebug > wl cmproc(prog(0.155)) ?ONE %cmdebug > wl cmproc(prog(0.147)) ONE+%5 %cmdebug > wl cmproc(prog(0.66)) OB'+%66 %cmdebug > wl cmproc(prog(0.101)) TWO+%10 %cmdebug > wl cmproc(sys(22.5000)) ?FOPEN %cmdebug > wl cmproc(sys(22.5035)) FOPEN+%41 %cmdebug > wl cmproc(sys(22.5036)) ?MUSTOPEN %cmdebug > wl cmproc(sys(22.5037)) FOPEN+%43 The primary entry point ?FOPEN, and the secondary entry point ?MUSTOPEN are located, along with two other o sets within system SL procedure FOPEN.
func cmproclen Returns the length of the CM procedure which contains the speci ed CM logical code address. Syntax cmproclen (cmlogaddr) The procedure length (from procedure start to procedure end) is returned in CM (16-bit) words. Formal Declaration cmproclen:u16 (cmlogaddr:lcptr) Parameters cmlogaddr The CM logical code address of a procedure whose length is desired. Cmlogaddr must be a full CM logical code address (LCPTR).
func cmproclen Examples %cmdebug > wl cmproclen(cmpc) %843 Print the length of the current CM procedure located at the CM program counter CMPC. %cmdebug > wl cmproclen(fopen) %1642 Print the length of the CM procedure fopen. System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func cmproclen Assume that the following single segment CM program has been compiled, linked with the PMAP and FPMAP options, and is now being executed: PROGRAM test (input,output); PROCEDURE one; begin {one} writeln('ONE'); end; {one} PROCEDURE two; PROCEDURE three; begin {three} writeln('THREE'); end; {three} begin {two} writeln('TWO'); three; end; {two} begin {main body} one; two; end. {main body} { Outer block is named "ob'" by the compiler } PROGRAM FILE PTEST.DEMO.
func cmproclen P'INITHEAP'3000 11 TWO 2 P'WRITELN 12 P'WRITESTR 13 ONE 3 SEGMENT LENGTH PRIMARY DB SECONDARY DB TOTAL DB ELAPSED TIME 71 123 142 210 155 ? ? ? 2 INITIAL STACK 430 INITIAL DL 432 MAXIMUM DATA 00:00:01.365 10240 CAPABILITY 600 0 TOTAL CODE 210 ? TOTAL RECORDS 11 PROCESSOR TIME 00:00.740 END OF PREPARE System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func cmproclen %cmdebug > wl cmstart(ob') PROG %0.0 %cmdebug > wl cmstart(two) PROG %0.71 %cmdebug > wl cmstart(one) PROG %0.142 %cmdebug > wl cmproclen(ob') %71 %cmdebug > wl cmstart(two) - cmstart(ob') %71 %cmdebug > wl cmproclen(two) %51 %cmdebug > wl cmstart(one)-cmstart(two) %51 %cmdebug > wl cmproclen(one) %30 Limitations, Restrictions The names and addresses of nested CM procedures, such as procedure three, are not available within the CM FPMAP records.
func cmseg func cmseg Returns the CM segment name for the speci ed CM logical code address. Syntax cmseg (cmlogaddr) Formal Declaration cmseg:str (cmlogaddr:lcptr) Parameters cmlogaddr The CM logical code address for which the segment name is desired. Cmlogaddr must be a full CM logical code address (LCPTR). For example: CMPC Current CM program counter CMPW+4 Top of CM program window + 4 PROG(2.
func cmseg Examples $cmdebug > wl cmseg(prog(0.0)) SEG' $cmdebug > wl cmseg(fopen) XLSEG11 Limitations, Restrictions none 8-64 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func cmstackbase func cmstackbase Returns the starting virtual address of a process's compatibility mode stack. Syntax cmstackbase (pin) Formal Declaration cmstackbase:lptr (pin:u16) Parameters pin The process identi cation number (PIN) for which the starting virtual address of the CM stack is to be returned. Examples $nmdebug > wl cmstackbase(%10) $2c4.40011cb0 Display the virtual address of the CM stack base for PIN %10.
func cmstackdst Returns the DST number for a process's compatibility mode stack. Syntax cmstackdst (pin) Formal Declaration cmstackdst:u16 (pin:u16) Parameters pin The process identi cation number (PIN) for which the DST number of the CM stack is to be returned. Examples $nmdebug > wl cmstackdst(8) $4f Limitations, Restrictions If the PIN does not exist, the function result is unde ned and an error status is set. 8-66 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func cmstacklimit func cmstacklimit Returns the virtual address for the limit of a process's compatibility mode stack. Syntax cmstacklimit (pin) The virtual address of the last usable byte in the CM stack is returned. Formal Declaration cmstacklimit:lptr (pin:u16) Parameters pin The process identi cation number (PIN) for which the virtual address of the CM stack limit is to be returned. Examples $nmdebug > wl cmstacklimit(%10) $2c4.
func cmstacklimit Limitations, Restrictions If the PIN does not exist, the function result is unde ned and an error status is set. 8-68 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func cmstart func cmstart Returns the starting point of the procedure containing the indicated CM logical code address. Syntax cmstart (cmlogaddr) Start addresses correspond to the CODE column in the PMAP generated by the Segmenter. Refer to the CM program example below. Formal Declaration cmstart:lcptr (cmlogaddr:lcptr) Parameters cmlogaddr A CM logical code pointer address for which the starting address of the containing level one procedure is to be returned.
func cmstart Examples Assume that the following single segment CM program has been compiled, linked with the PMAP and FPMAP options, and is now being executed: PROGRAM test (input,output); PROCEDURE one; begin {one} writeln('ONE'); end; {one} PROCEDURE two; PROCEDURE three; begin {three} writeln('THREE'); end; {three} begin {two} writeln('TWO'); three; end; {two} begin {main body} one; two; end. {main body} { Outer block is named "ob'" by the compiler } PROGRAM FILE PTEST.DEMO.
func cmstart P'INITHEAP'3000 11 TWO 2 P'WRITELN 12 P'WRITESTR 13 ONE 3 SEGMENT LENGTH PRIMARY DB SECONDARY DB TOTAL DB ELAPSED TIME 71 123 142 210 155 ? ? ? 2 INITIAL STACK 430 INITIAL DL 432 MAXIMUM DATA 00:00:01.365 10240 CAPABILITY 600 0 TOTAL CODE 210 ? TOTAL RECORDS 11 PROCESSOR TIME 00:00.740 END OF PREPARE System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func cmstart %cmdebug > wl ob' PROG %0.0 %cmdebug > wl cmstart(ob') PROG %0.0 Two methods of displaying the start address of the procedure ob'. %cmdebug > wl ?ob' PROG %0.13 %cmdebug > wl cmentry(ob') PROG %0.13 Two methods of displaying the entry address of the procedure ob'. %cmdebug > wl cmstart(one) PROG %0.142 %cmdebug > wl cmentry(one) PROG %0.155 %cmdebug > wl cmentry(one+10) PROG %0.155 %cmdebug > wl cmstart(two) PROG %0.71 %cmdebug > wl cmstart(two+5) PROG %0.
func cmtonmnode func cmtonmnode Returns the address of the closest NM node point corresponding to the speci ed CM logical code address. Syntax cmtonmnode (cmlogaddr [node]) Refer to Appendix C for a discussion of CM Object Code Translation (OCT) node points, and breakpoints in translated CM code. Formal Declaration cmtonmnode:trans (cmlogaddr:lcptr [node:str=PREV]) Parameters cmlogaddr node The CM logical code address of translated code for which the closest NM node point is desired.
func cmtonmnode Examples $nmdebug > wl cmtonmnode(sys(2.%226)) TRANS $21.24024 Print the NM address of the closest CM previous (by default) node point. $nmdebug > wl cmtonmnode(sys(2.%226), "next") TRANS $21.2404c Print the NM address of the closest CM next node point. Limitations, Restrictions none 8-74 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func cmva func cmva Returns the virtual address of a speci ed CM code address. Syntax cmva (cmaddr [pin]) Compatibility mode code may be emulated or translated into NM. This function always returns addresses based on emulated CM object code. Another function (CMTONMNODE) can be used to locate the nearest corresponding NM node point address if the CM object code has been translated into NM.
func cmva Examples $nmdebug > wl cmva(cmpc) $26.0000124c Convert the current CM logical address pointer, for the current PIN, to a NM virtual address and display the result. $nmdebug > wl cmva(SYS(%23.%250,$24)) $3f.00000250 Convert CM logical address SYS %23.%250, for the process associated with PIN $24, to a NM virtual address and display the result. $nmdebug > wl cmva(CST(3.0)) $21.000034c4 Convert absolute CM address CST 3.0, for the current PIN, to a NM virtual address and display the result.
func cst func cst Coerces an expression into a CST absolute code pointer (ACPTR). Syntax cst (value) CM program segments are loaded into the CSTX. CM library segments are loaded into the CST. During the evaluation of the parameter to the CST function, the following CM search path is used for procedure name lookups: GRP, PUB, LGRP, LPUB, SYS Formal Declaration cst:cst (value:any) Parameters value An expression to be coerced. All types are valid. System Debug Standard Functions FINAL TRIM SIZE : 7.
func cst Derivation of the CST Bit Pattern Parameter Type Action BOOL 0.1 if TRUE, 0.0 if FALSE. U16 S16 Set the high-order 32 bits (SID or segment part) to zero. Right justify the original 16-bit value in the low-order 32 bits (o set part) with zero ll. U32 S32 SPTR Set the high-order 32 bits (SID or segment part) to zero. Transfer the original bit pattern into the low-order 32 bits (o set part) unchanged.
func cst Examples %cmdebug > wl cst(12.304) CST %12.304 Coerce the simple long pointer into a CST absolute code pointer. %cmdebug > wl sort PROG %4.3302 %cmdebug > wl grp (sort) GRP %2.1364 %cmdebug > wl cst (sort) CST %73.1364 Print the address of the procedure named sort. The rst lookup uses the standard procedure name lookup search path and nds the procedure sort in the program le. The second lookup restricts the search path to the group library, and another sort procedure is located.
func cstx Coerces an expression into a CSTX absolute code pointer (ACPTR). Syntax cstx (value) CM program segments are loaded into the CSTX. CM library segments are loaded into the CST. During the evaluation of the parameter to the CSTX function, the CM search path is limited to the program le (PROG). Formal Declaration cstx:cstx (value:any) Parameters value 8-80 An expression to be coerced. All types are valid. System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func cstx Derivation of the CSTX Bit Pattern Parameter Type Action BOOL 0.1 if TRUE, 0.0 if FALSE. U16 S16 Set the high-order 32 bits (SID or segment part) to zero. Right justify the original 16-bit value in the low-order 32 bits (o set part) with zero ll. U32 S32 SPTR Set the high-order 32 bits (SID or segment part) to zero. Transfer the original bit pattern into the low-order 32 bits (o set part) unchanged.
func cstx Examples %cmdebug > wl cstx(12.304) CSTX %12.304 Coerce the simple long pointer into a CSTX absolute code pointer. %cmdebug > wl cstx( sort ) CSTX %4.3302 Print the address of the procedure named sort. Note that the search path used for procedure name lookups is restricted to the program le (PROG). %cmdebug > wl cstx(sys(24.630)) CSTX %24.630 The coercion simply changes the associated absolute le. Note that no complicated conversion or range checking is performed.
func dstva func dstva Converts a CM data segment address to a virtual address. Syntax dsvta (dsto ) Formal Declaration dstva:lptr (dsto :lptr) Parameters dsto The CM data segment address which is to be converted to a virtual address. This is speci ed as dst.o set . Examples $nmdebug > = dstva(%20.0) $38.00000000 Convert the data segment address %20.0 to a virtual address and display the result. Limitations, Restrictions none System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func eaddr Coerces an expression into an extended address. Syntax eaddr (value) Formal Declaration eaddr:eaddr (value:any) Parameters value 8-84 An expression to be coerced. All types are valid. System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func eaddr Derivation of the EADDR Bit Pattern Parameter Type Action BOOL 0.1 if TRUE, 0.0 if FALSE. U16 U32 SPTR Set the SID part to zero. Right justify the original value in the low-order 64 bits of the o set part with zero ll. S16 S32 S64 Set the SID part to zero. Right justify the original value in the low-order 64 bits of the o set part with sign extension. LONG Class Transfer the SID part unchanged.
func eaddr $nmdat > wl eaddr( true ) $0.1 $nmdat > wl eaddr( prog(1.2) ) $1.2 Limitations, Restrictions none 8-86 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func errmsg func errmsg Returns an error message string, based on error number and an optional subsystem number. Syntax errmsg (errnum [subsys]) Formal Declaration errmsg:str (errnum:s16 [subsys:u16=$a9]) Parameters errnum subsys The error number, typically negative for errors, positive for warnings. The subsystem number. By default, the Debug subsystem number ($a9) is used.
func errmsg If the error message is not found in the system message catalog, this form of message is returned. Limitations, Restrictions none 8-88 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func grp func grp Coerces an expression into a GRP logical code pointer (LCPTR). Syntax grp (value) During the evaluation of the parameter to this function, the search path used for procedure name lookups is limited to the group library le (GRP). Formal Declaration grp:grp (value:any) Parameters value An expression to be coerced. All types are valid. System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func grp Derivation of the GRP Bit Pattern Parameter Type Action BOOL 0.1 if TRUE, 0.0 if FALSE. U16 U32 SPTR Set the SID part to zero. Right justify the original value in the low-order 32 bits of the o set part with zero ll. S16 S32 S64 Set the SID part to zero. Right justify the original value in the low-order 32 bits of the o set part with sign extension. LONG Class Transfer both parts of the address unchanged. EADDR SADDR Transfer the SID part unchanged.
func grp $nmdat > wl grp( ffff ) GRP $0.ffff $nmdat > wl grp( 1234abcd ) GRP $0.1234abcd $nmdat > wl grp( -1 ) GRP $0.ffffffff $nmdat > wl grp( 1234.5678 ) GRP $1234.5678 $nmdat > wl grp( true ) GRP $0.1 $nmdat > wl grp( "ABCDEFG" ) GRP $414243.44454647 Limitations, Restrictions none System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func hash Hashes a virtual address into a hash table (real) o set. Syntax hash (virtaddr) The hash value can be added to the Hash table base real address (TR1) to determine the real o set to the rst PDIR entry. Formal Declaration hash:s32 (virtaddr:ptr) Parameters virtaddr The virtual address that is to be hashed. Virtaddr can be a short pointer, a long pointer, or a full logical code pointer. Examples nmdat > wl pc SYS $a.
func hash REAL $0061dd00 $ 80000000 0000000a 000d8000 82800000 Hash the virtual address for PC ($a.d87f8) to get real address $103c4. Add the hash value ($103c4) to the base of the Hash table (TR1) to get the o set of the rst PDIR entry ($1b00). Add this o set to the base of the PDIR table (TR0), and display the four-word PDIR entry. Limitations, Restrictions none System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func lgrp Coerces an expression into a LGRP logical code pointer (LCPTR). Syntax lgrp (value) During the evaluation of the parameter to this function, the search path used for procedure name lookups is limited to the logon group library le (LGRP). Formal Declaration lgrp:lgrp (value:any) Parameters value 8-94 An expression to be coerced. All types are valid. System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func lgrp Derivation of the LGRP Bit Pattern Parameter Type Action BOOL 0.1 if TRUE, 0.0 if FALSE. U16 U32 SPTR Set the SID part to zero. Right justify the original value in the low-order 32 bits of the o set part with zero ll. S16 S32 S64 Set the SID part to zero. Right justify the original value in the low-order 32 bits of the o set part with sign extension. LONG Class Transfer both parts of the address unchanged. EADDR SADDR Transfer the SID part unchanged.
func lgrp LGRP $0.1 $nmdat > wl lgrp( ffff ) LGRP $0.ffff $nmdat > wl lgrp( 1234abcd ) LGRP $0.1234abcd $nmdat > wl lgrp( -1 ) LGRP $0.ffffffff $nmdat > wl lgrp( 1234.5678 ) LGRP $1234.5678 $nmdat > wl lgrp( true ) LGRP $0.1 $nmdat > wl lgrp( "ABCDEFG" ) LGRP $414243.44454647 $nmdat > wl lgrp( prog(1.2) ) LGRP $1.2 Limitations, Restrictions none 8-96 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func logtoabs func logtoabs Logical to absolute. Converts a CM logical code address (LCPTR) into a CM absolute code address (ACPTR). Syntax logtoabs (cmlogaddr) Formal Declaration logtoabs:acptr (cmlogaddr:lcptr) Parameters cmlogaddr The CM logical code address to be converted into an absolute code pointer. Cmlogaddr must be a full CM logical code address (LCPTR). For example: CMPC Current CM program counter CMPW+4 Top of CM program window + 4 PROG(2.
func logtoabs Examples %cmdebug > wl logtoabs(prog(0.1273)) CSTX %1.1273 Logical CM address PROG 0.1273 is converted into absolute address CSTX 1.1273. %cmdebug > wl logtoabs(sys(32.304)) CST %43.304 Logical CM address SYS 32.304 is converted into absolute address CST 43.304. %cmdebug > wl logtoabs(grp(4.4274)) CST %103.4274 Logical group library address GRP 4.4274 is converted into absolute address CST 103.4274.
func lptr func lptr Coerces an expression into a long pointer. Syntax lptr (value) Formal Declaration lptr:lptr (value:any) Parameters value An expression to be coerced. All types are valid. System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func lptr Derivation of the LPTR Bit Pattern Parameter Type Action BOOL 0.1 if TRUE, 0.0 if FALSE. U16 U32 SPTR Set the SID part to zero. Right justify the original value in the low-order 32 bits of the o set part with zero ll. S16 S32 S64 Set the SID part to zero. Right justify the original value in the low-order 32 bits of the o set part with sign extension. LONG Class Transfer both parts of the address unchanged. EADDR SADDR Transfer the SID part unchanged.
func lptr $0.1 $nmdat > wl lptr( "ABCDEFG" ) $414243.44454647 $nmdat > wl lptr( prog(1.2) ) $1.2 Limitations, Restrictions none System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func lpub Coerces an expression into a LPUB logical code pointer (LCPTR). Syntax lpub (value) During the evaluation of the parameter to this function, the search path used for procedure name lookups is restricted to the logon account library le (LPUB). Formal Declaration lpub:lpub (value:any) Parameters value 8-102 An expression to be coerced. All types are valid. System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func lpub Derivation of the LPUB Bit Pattern Parameter Type Action BOOL 0.1 if TRUE, 0.0 if FALSE. U16 U32 SPTR Set the SID part to zero. Right justify the original value in the low-order 32 bits of the o set part with zero ll. S16 S32 S64 Set the SID part to zero. Right justify the original value in the low-order 32 bits of the o set part with sign extension. LONG Class Transfer both parts of the address unchanged. EADDR SADDR Transfer the SID part unchanged.
func lpub LPUB $0.1 $nmdat > wl lpub( ffff ) LPUB $0.ffff $nmdat > wl lpub( 1234abcd ) LPUB $0.1234abcd $nmdat > wl lpub( -1 ) LPUB $0.ffffffff $nmdat > wl lpub( 1234.5678 ) LPUB $1234.5678 $nmdat > wl lpub( true ) LPUB $0.1 $nmdat > wl lpub( "ABCDEFG" ) LPUB $414243.44454647 $nmdat > wl lpub( prog(1.2) ) LPUB $1.2 Limitations, Restrictions none 8-104 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func ltolog func ltolog Long to logical. Converts a long pointer into a NM logical code pointer (LCPTR). Syntax ltolog (longptr) The SID of the long pointer (input parameter) is compared with the SID of each of the loaded NM executable libraries for a match. If a SID match is found, then the appropriate logical code pointer is returned.
func ltolog Examples $nmdebug > wl ltolog (a.2034c) SYS $a.2034 The SID $a matches the SID for the system library (SYS) NL.PUB.SYS. The long pointer is converted into the logical code pointer SYS a.2034. $nmdebug > wl ltolog (3c.3208) PROG $3c.3208 The SID $3c matches the SID of the program le. $nmdebug > wl ltolog (20.10264) TRANS $20.10264 The SID $20 does not match any of the loaded NM les. A nal test is applied, in case the virtual address is in translated CM code.
func ltos func ltos Long to short. Converts a virtual address to a short pointer. Syntax ltos (virtaddr) The LTOS function converts a virtual address to a short pointer. If the parameter virtaddr is already a short pointer, it is simply returned. If the parameter virtaddr is a long pointer, or a full logical code address, a special additional test is performed to ensure that the o set portion can be returned as the short pointer value.
func ltos Examples $nmdebug > wl pc PROG $3c.12004 $nmdebug > wl ltos(pc) $12004 $nmdebug > var save 42.40151025 $nmdebug > wl ltos(save) $40151025 $nmdat > dr sr4 SR4=$a $nmdat > wl ltos(22.200) SID in LPTR for LTOS conversion does not match corresponding space reg. Error evaluating a predefined function. (error #4240) function is"ltos" In this example SR4 contains $a.
func macbody func macbody Returns a string that is the macro body for the speci ed macro name. Syntax macbody (macroname) Formal Declaration macbody:str (macroname:str) Parameters macroname The name of the macro whose body is to be returned. Examples $nmdebug > wl macbody("showtime") wl time Display the macro body for the macro command named showtime. $nmdebug > wl macbody("min") if p1 <= p2 then return p1 else return p2 Display the macro body for the macro function named min.
func mapindex Returns the map index number of the speci ed le name which has been previously mapped into virtual space with the MAP command. Syntax mapindex ( lename) Formal Declaration pindex:u16 ( lename:str) Parameters lename The name of the previously mapped le whose index number is to be returned. Examples $nmdebug > maplist 1 DTCDUMP.DUMPUSER.SUPPORT 2 DTCDUMP2.DUMPUSER.SUPPORT 3 MYFILE.MYGROUP.MYACCT 1000.0 1001.0 1005.
func mapsize func mapsize Returns the size in bytes of the speci ed mapped le. Syntax mapsize ( lename) Formal Declaration mapsize:u32 ( lename:str) Parameters lename The name of the previously mapped le whose size is to be returned. Examples $nmdebug > maplist 1 DTCDUMP.DUMPUSER.SUPPORT 2 DTCDUMP2.DUMPUSER.SUPPORT 3 MYFILE.MYGROUP.MYACCT 1000.0 1001.0 1005.0 Bytes = 43dc Bytes = c84 Bytes = 1004 $nmdebug > = mapsize("DTCDUMP2.
func mapva Returns the virtual address of the speci ed mapped le. Syntax mapva ( lename) Formal Declaration mapva:lptr ( lename:str) Parameters lename The name of the mapped le whose virtual address is to be returned. Examples $nmdebug > maplist 1 DTCDUMP.DUMPUSER.SUPPORT 2 DTCDUMP2.DUMPUSER.SUPPORT 3 MYFILE.MYGROUP.MYACCT 1000.0 1001.0 1005.0 Bytes = 43dc Bytes = c84 Bytes = 1004 $nmdebug > = mapva("DTCDUMP") 1000.
func nmaddr func nmaddr Returns the virtual address of the speci ed NM procedure/data path. Syntax nmaddr (path [lookupid]) The values returned by this function are the values as found in the symbol table that is searched. This function does not perform any form of symbol location xups. The address returned for most data symbols must be relocated relative to DP to be useful.
func nmaddr LOCAL NESTED PROCEDURES ALLPROC EXPORTSTUB DATAANY DATAUNIV DATALOCAL LSTPROC LSTEXPORTSTUB ANY 8-114 Search nonexported procedures in the SOM symbols. Search nested procedures in the SOM symbols. Search local or exported procedures in the SOM symbols. Search local/exported/nested procedures in the SOM symbols. Search export stubs in the SOM symbols. Search exported and local data SOM symbols. Search exported data SOM symbols. Search local data SOM symbols.
func nmaddr If a keyword is not given, the default PROCEDURES is used. In all cases, if the path contains a procedure name that appears as a nested procedure (for example: name .name ), the function assumes the caller meant to use the NESTED keyword. The keyword may be abbreviated. The table of keywords (above) is searched from top to bottom. Thus DATA is resolved as DATAANY. Note Searching the SOM symbols is noticeably slower than searching the LST symbols.
func nmaddr The NMADDR function parses the dot in the nested procedure name and nds it's location. 8-116 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func nmaddr $nmdebug > wl nmaddr("highscore") Couldn't translate path to an address. (error #1612) Error evaluating a predefined function. (error #4240) function is"nmaddr" wl nmaddr("highscore") $nmdebug > wl nmaddr("highscore" "nested") PROG $4d5.5b50 In the above example an error occurs because the default lookupid of PROCEDURES is used. Since highscore is a nested procedure, NMADDR fails to locate it. When the NESTED lookupid parameter is speci ed, the search succeeds.
func nmaddr $nmdebug > wl FOPEN SYS $a.3f8140 $nmdebug > wl nmaddr("FOPEN") SYS $a.3f8140 $nmdebug > wl nmaddr("nl.pub.sys/FOPEN") SYS $a.3f8140 $nmdebug > wl nmaddr("FOPEN" "LST") SYS $a.3f8140 $nmdebug > wl ?FOPEN SYS $a.3f80e4 $nmdebug > wl nmaddr("FOPEN" "EXPORTSTUB") SYS $a.3f80e4 The last set of examples show various methods of locating the entry point and export stub for the FOPEN intrinsic. Notice that the question mark is not used in the NMADDR function when referring to stubs.
func nmbpaddr func nmbpaddr Returns the address corresponding to the indicated NM breakpoint index. Syntax %nmbpaddr (bpindex [pin]) This function accepts an index for an existing NM breakpoint and returns the address where the breakpoint is located. The default action is to look for breakpoints set by the current PIN. Breakpoint addresses for other PINs (including the global PIN) may be retrieved by using the optional pin parameter.
func nmbpaddr $nmdebug > wl nmbpaddr(1) PROG $c3.56d80 $nmdebug > l nmbpaddr(1, -1) SYS $a.4b9130 Now use the function to return the address associated with process local breakpoint number one and then with system breakpoint number one. Limitations, Restrictions none 8-120 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func nmbpindex func nmbpindex Returns the NM breakpoint index for the NM breakpoint that has been set at the speci ed NM code address. Syntax nmbpindex (virtaddr [pin]) This function accepts the address of an existing NM breakpoint and returns the logical index number associated with that breakpoint. The default action is to look for breakpoints set by the current PIN. Breakpoint indices for other PINs (including the global PIN) may be retrieved by using the optional pin parameter.
func nmbpindex Examples $nmdebug > bl NM [1] PROG $ c3.56d80 test_screen+$ab3 NM [2] PROG $ c3.4cf18 test_files NM @[1] SYS $ a.004b9130 FOPEN First, list the existing breakpoints. $nmdebug > wl nmbpindex(test_files) $2 Find the NM breakpoint index associated with the address test_files. 8-122 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func nmbpindex $nmdebug > wl nmbpindex(FOPEN) No breakpoint exists in the breakpoint tables with that address. (error #1080) Error evaluating a predefined function. (error #4240) function is"nmbpindex" wl nmbpindex(FOPEN) Now, go nd the breakpoint index for the breakpoint at FOPEN . In this example we get an error. This is because we did not specify pin and thus searched only for process local breakpoints. We do not have a process local breakpoint at FOPEN .
func nmbpinstr Returns the original NM instruction at a speci ed NM code address where a NM breakpoint has been set. Syntax nmbpinstr (virtaddr [pin]) This function accepts the address of an existing NM breakpoint and returns the instruction associated with that breakpoint. The default action is to look for breakpoints set by the current PIN. Breakpoint indices for other PINs (including the global PIN) may be retrieved by using the optional pin parameter.
func nmbpinstr Examples $nmdebug > dc FOPEN,1 SYS $a.4b9130 004b9130 FOPEN 6bc23fd9 STW 2,-20(0,30) Display code at the address of FOPEN so we can see what the current instruction is at that address. $nmdebug > b FOPEN added: NM [1] SYS $a.004b9130 FOPEN $nmdebug > dc FOPEN,1 SYS $a.4b9130 004b9130 FOPEN 0000400e BREAK (nmdebug bp) Now set a breakpoint at FOPEN and display the code there. The old instruction has been replaced with a breakpoint instruction.
func nmbpinstr $nmdebug > wl nmbpinstr(FOPEN) $6bc23fd09 Use the function to look up the actual instruction. The instruction that is stored in the system breakpoint table is returned by the function. Limitations, Restrictions none 8-126 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func nmcall func nmcall Dynamically calls a procedure/function, passing up to four parameters. Syntax nmcall (path) [parm1] [parm2] [parm3] [parm4] This function is used to perform a dynamic procedure call. It is implemented by calling the HPGETPROCPLABEL intrinsic to ensure the desired routine is loaded, and then uses the FCALL routine in the Pascal/XL compiler to invoke the routine.
func nmcall Formal Declaration nmcall:s32 (path:str [parm1:sptr=0][parm2:sptr=0] [parm3:sptr=0] [parm4:sptr=0] Parameters path The code path speci cation for the NM procedure/function to be called. The format of this parameter is: le name/procname The le name part speci es the library to be searched for procname . The le name part is optional. If it is not provided, the current list of loaded les for the process (see the LOADINFO command) will be searched.
func nmcall Examples $nmdat > wl nmcall("nl.pub.sys/CLOCK") $d1f3709 $ nmdat > wl nmcall("CLOCK") $d1f3b00 Call the CLOCK intrinsic which is in the system library. Since that library is part of every process's loaded le list, the library name is optional. Limitations, Restrictions This function is not supported in SAT. Debug only is a ected by the following restrictions. Currently, you must have privileged mode (PM) to call this function.
func nmentry Returns the entry point of the NM procedure containing the indicated address. Syntax nmentry (virtaddr) Formal Declaration nmentry:lptr (virtaddr:ptr) Parameters virtaddr The virtual address for which the entry point of the surrounding (level one) NM procedure is to be returned. Virtaddr can be a short pointer, a long pointer, or a full logical code pointer. Examples $nmdebug > wl average GRP $4d8.15c88 $nmdebug > wl nmentry( average+20 ) GRP $4d8.
func nmentry PROG $4d5.5b50 Print the address for the nested procedure highscore. Given any o set within the nested procedure, the NMENTRY function will return the address of the nested procedure's entry point. Limitations, Restrictions none System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func nmfile Returns the le name corresponding to the indicated NM (code) address. Syntax nmfile (virtaddr [length]) Formal Declaration nmfile:str (virtaddr:ptr [length:u16=$20]) Parameters virtaddr The virtual address (of NM code) for which the le name is to be returned. Virtaddr can be a short pointer, a long pointer, or a full logical code pointer. The maximum length of the le name string to be returned.
func nmfile $nmdebug > wl nmfile( average ) XL.DEMO.TELESUP $nmdebug > wl nmfile ( FOPEN ) NL.PUB.SYS $nmdebug > wl nmfile ( P_NEW_HEAP ) XL.PUB.SYS $nmdebug > wl nmfile( processstudent ) GRADES.DEMO.TELESUP $nmdebug > wl nmfile( processstudent 7 ) GRADES* The above examples show how the NMFILE function, given various addresses (all speci ed as symbolic procedure names), returns the name of the loaded le that contains each address.
func nmmod Returns the NM module name corresponding to the indicated address. Syntax nmmod (virtaddr [length]) Formal Declaration nmmod:str (virtaddr:ptr [length:u16=$20]) Parameters virtaddr The virtual address for which the symbolic module name is to be returned. Virtaddr can be a short pointer, a long pointer, or a full logical code pointer. The maximum length of the module name string to be returned.
func nmmod This example shows a Pascal library routine called P_NEW_HEAP which is contained in the module named p_heap. Limitations, Restrictions none System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func nmnode Returns the NM logical code address (TRANS) of the closest NM node point corresponding to the speci ed NM address. Syntax nmnode (virtaddr [node]) Refer to appendix C for a discussion of CM object code translation, node points, and breakpoints in translated CM code. Formal Declaration nmnode:trans (virtaddr:ptr [node:str="PREV"]) Parameters virtaddr The NM address of translated code for which the closest NM node point is to be returned.
func nmnode Print the NM address of the next NM node point. Limitations, Restrictions none System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func nmpath Returns the full NM code path name corresponding to the indicated address. Syntax nmpath (virtaddr [length]) The string returned by NMPATH is one of the following two formats: le name /module name :parent procname .procname or le name /module name :procname Detailed descriptions of each of the above return strings follow: le name The name of the le containing the procedure. module name The name of the module containing the procedure.
func nmpath length The maximum length of the path name string to be returned. If the path name does not fully t into the space speci ed, it is truncated and terminated with an asterisk (*) to indicate the truncation. System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func nmpath Examples $nmdebug > wl nmpath( processstudent ) GRADES.DEMO.TELESUP/processstudent $nmdebug > wl nmpath( processstudent+30 ) GRADES.DEMO.TELESUP/processstudent+$30 $nmdebug > wl nmpath( processstudent+30, #30 ) GRADES.DEMO.TELESUP/processst* The above examples show how NMPATH is used to print out the full path for the procedure processstudent. Notice in the last example that a maximum length of 30 characters is speci ed, so the full path is truncated and terminated with an asterisk.
func nmproc func nmproc Returns the NM procedure name and o set corresponding to the speci ed virtual address. Syntax nmproc (virtaddr [length]) The string returned by NMPROC is one of the following two formats: parent procname .procedure name +base o set or procedure name +base o set Detailed descriptions of each of the above return strings follow: parent procname The name of the level one procedure containing the nested procedure at the speci ed address. procedure name The name of the procedure.
func nmproc Formal Declaration nmproc:str (virtaddr:ptr [length:u16=$40]) Parameters virtaddr The address for which the symbolic procedure name/o set is to be returned. Virtaddr can be a short pointer, a long pointer, or a full logical code pointer. The maximum length of the procedure name and o set string to be returned. If the name does not fully t into the space speci ed, the procedure name is truncated and is followed by an asterisk (*) to indicate the truncation.
func nmstackbase func nmstackbase Returns the virtual address of the start of the process's NM stack. Syntax nmstackbase (pin) Formal Declaration nmstackbase:lptr (pin:u16) Parameters pin The process identi cation number (PIN) for which the starting virtual address of the NM stack is to be returned. Examples $nmdebug > wl nmstackbase(8) $5e4.4020ea00 Display the virtual address of the NM stack base for PIN 8.
func nmstacklimit Returns the virtual address of the limit of a process's NM stack. Syntax nmstacklimit (pin) Formal Declaration nmstacklimit:lptr (pin:u16) Parameters pin The process identi cation number (PIN) for which the virtual address of the NM stack limit is to be returned. Examples $nmdebug > wl nmstacklimit (8) $5e4.4026ea00 Display the virtual address of the NM stack limit for PIN 8.
func nmtocmnode func nmtocmnode Returns the CM logical code address of the closest CM node point corresponding to the speci ed NM address. Syntax nmtocmnode (virtaddr [node]) Refer to appendix C for a discussion of CM object code translation, node points, and breakpoints in translated CM code. Formal Declaration nmtocmnode:lcptr (virtaddr:lptr [node:str="PREV"]) Parameters virtaddr node The virtual address of NM translated code for which the closest CM node point is to be returned.
func nmtocmnode Print the CM address of the closest NM next node point. Limitations, Restrictions none 8-146 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func off func off Returns the o set portion of a virtual or extended address. Syntax off (virtaddr) Formal Declaration off:u32 (virtaddr:ptr) Parameters virtaddr The virtual address whose o set portion is to be returned. Virtaddr can be a short pointer, a long pointer, or an extended address. Examples $nmdebug > wl pc PROG $2e.213403 $nmdebug > wl off(pc) $213403 $nmdebug > wl off(a.1234) $1234 Limitations, Restrictions none System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func pcb Returns the virtual address (SPTR) of a process's process control block (PCB). Syntax pcb (pin) Formal Declaration pcb:sptr (pin:u16) Parameters pin The process identi cation number (PIN) for which the address of the PCB is to be returned. Note that this is a CM data structure. Examples $nmdebug > wl pcb(8) $80001750 Limitations, Restrictions If the PIN does not exist, the function result is unde ned and an error status is set. 8-148 System Debug Standard Functions FINAL TRIM SIZE : 7.
func pcbx func pcbx Returns the virtual address (SPTR) of a process's process control block extension (PCBX). Syntax pcbx (pin) Formal Declaration pcbx:sptr (pin:u16) Parameters pin The process identi cation number (PIN) for which the address of the PCBX is to be returned. Note that this is a CM data structure. Examples $nmdebug > wl pcbx(8) $40010db0 Limitations, Restrictions If the PIN does not exist, the function result is unde ned and an error status is set.
func phystolog Converts a CM physical segment number and mapping bit to a CM logical code address. Syntax phystolog (physsegnum [mappingbit]) This function is typically used to manually examine CM stack markers, and CM external plabels. The o set part of the returned CM logical code address is always set to zero. Formal Declaration phystolog:lcptr (physsegnum:u16 [mappingbit:bool=FALSE]) Parameters physsegnum mappingbit The CM physical segment number to be converted to a CM logical address.
func phystolog Physical segment number %122 is converted into logical code segment GRP %2. Limitations, Restrictions none System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func pib Returns the virtual address (SPTR) of a process's process information block (PIB). Syntax pib (pin) Formal Declaration pib:sptr (pin:u16) Parameters pin The process identi cation number (PIN) for which the address of the PIB is to be returned. Examples $nmdebug > wl pib(8) $c3583a20 Limitations, Restrictions If the PIN does not exist, the function result is unde ned and an error status is set. 8-152 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func pibx func pibx Returns the virtual address (SPTR) of a process's process information block extension (PIBX). Syntax pibx (pin) Formal Declaration pibx:sptr (pin:u16) Parameters pin The process identi cation number (PIN) for which the address of the PIBX is to be returned. Examples $nmdebug > wl pibx(8) $c4680000 Limitations, Restrictions If the PIN does not exist, the function result is unde ned and an error status is set. System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func prog Coerce an expression into a PROG logical code pointer (LCPTR). Syntax prog (value) During the evaluation of the parameter to this function, the search path used for procedure name lookups is restricted to the program le (PROG). Formal Declaration prog:prog (value:any) Parameters value 8-154 An expression to be coerced. All types are valid. System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func prog Derivation of PROG LGRP Bit Pattern Parameter Type Action BOOL 0.1 if TRUE, 0.0 if FALSE. U16 U32 SPTR Set the SID part to zero. Right justify the original value in the low-order 32 bits of the o set part with zero ll. S16 S32 S64 Set the SID part to zero. Right justify the original value in the low-order 32 bits of the o set part with sign extension. LONG Class Transfer both parts of the address unchanged. EADDR SADDR Transfer the SID part unchanged.
func prog $nmdat > wl prog( ffff ) PROG $0.ffff $nmdat > wl prog( 1234abcd ) PROG $0.1234abcd $nmdat > wl prog( -1 ) PROG $0.ffffffff $nmdat > wl prog( 1234.5678 ) PROG $1234.5678 $nmdat > wl prog( true ) PROG $0.1 $nmdat > wl prog( "ABCDEFG" ) PROG $414243.44454647 $nmdat > wl prog( grp(1.2) ) PROG $1.2 Limitations, Restrictions none 8-156 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func pstate func pstate Returns the process state for the speci ed PIN as a string. Syntax pstate (pin) The following table lists all possible returned process state strings: UNBORN INITIATE ALIVE DYING DEAD UNKNOWN Note that the process state string is always returned in capital letters. Formal Declaration pstate:str (pin:u16) Parameters pin The process identi cation number (PIN) of the process whose process state is to be returned.
func pstate $nmdebug > if pstate(16) = "ALIVE" then formatprocess(16) Limitations, Restrictions none 8-158 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func pub func pub Coerces an expression into a PUB logical code pointer (LCPTR). Syntax pub (value) During the evaluation of the parameter to this function, the search path used for procedure name lookups is limited to the account library le (PUB). Formal Declaration pub:pub (value:any) Parameters value An expression to be coerced. All types are valid. System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func pub Derivation of the PUB Bit Pattern Parameter Type Action BOOL 0.1 if TRUE, 0.0 if FALSE. U16 U32 SPTR Set the SID part to zero. Right justify the original value in the low-order 32 bits of the o set part with zero ll. S16 S32 S64 Set the SID part to zero. Right justify the original value in the low-order 32 bits of the o set part with sign extension. LONG Class Transfer both parts of the address unchanged. EADDR SADDR Transfer the SID part unchanged.
func pub $nmdat > wl pub( ffff ) PUB $0.ffff $nmdat > wl pub( 1234abcd ) PUB $0.1234abcd $nmdat > wl pub( -1 ) PUB $0.ffffffff $nmdat > wl pub( 1234.5678 ) PUB $1234.5678 $nmdat > wl pub( true ) PUB $0.1 $nmdat > wl pub( "ABCDEFG" ) PUB $414243.44454647 $nmdat > wl pub( prog(1.2) ) PUB $1.2 Limitations, Restrictions none System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func rtov Real to virtual. Converts a real address to a virtual address. Syntax rtov (realaddr) Formal Declaration rtov:lptr (realaddr:u32) Parameters realaddr The real address to be converted to a virtual address. Examples $nmdebug > wl pc PROG $741.5934 Display the current logical code address (LCPTR) of the NM program counter. $nmdebug > wl vtor(pc) $1827934 Translate the logical code address (LCPTR) into the corresponding real address. $nmdebug > wl rtov(1827934) $741.
func s16 func s16 Coerces an expression into a signed 16-bit value. Syntax s16 (value) Formal Declaration s16:s16 (value:any) Parameters value An expression to be coerced. All types are valid. Derivation of the S16 Bit Pattern Parameter Type Action BOOL 1 if TRUE, 0 if FALSE. U16 S16 Transfer the original bit pattern unchanged. U32 S32 S64 SPTR Transfer the low-order 16 bits. LONG Class EADDR SADDR Transfer the low-order 16 bits of the o set part.
func s16 Examples $nmdat > wl s16( 1 ) $1 $nmdat > wl s16( ffff ) $ffff $nmdat > wl s16( ffff ):"#" #-1 $nmdat > wl s16( 1234abcd ) $abcd $nmdat > wl s16( -1 ) $ffff $nmdat > wl s16( 1234.5678 ) $5678 $nmdat > wl s16( true ) $1 $nmdat > wl s16( "ABCDEFG" ) $4647 $nmdat > wl s16( prog(1.2) ) $2 Limitations, Restrictions none 8-164 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func s32 func s32 Coerces an expression into a signed 32-bit value. Syntax s32 (value) Formal Declaration s32:s32 (value:any) Parameters value An expression to be coerced. All types are valid. System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func s32 Derivation of the S32 Bit Pattern Parameter Type Action BOOL 1 if TRUE, 0 if FALSE. U16 Right justify the original 16-bit value in 32 bits with zero ll. S16 Right justify the original 16-bit value in 32 bits with sign extension. U32 S32 SPTR Transfer the original bit pattern unchanged. S64 Transfer the low-order 32 bits. LONG Class EADDR SADDR Transfer the low-order 32 bits of the o set part. STR Transfer the ASCII bit pattern for the last four characters in the string.
func s32 $nmdat > wl s32( ffffffff ):"#" $#-1 $nmdat > wl s32( 1234.5678 ) $5678 $nmdat > wl s32( true ) $1 $nmdat > wl s32( "ABCDEFG" ) $44454647 $nmdat > wl s32( prog(1.2) ) $2 Limitations, Restrictions none System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func s64 Coerces an expression into a signed 64-bit value. Syntax s64 (value) Formal Declaration s64:s64 (value:any) Parameters value 8-168 An arbitrary expression to be coerced. System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func s64 Derivation of the S64 Bit Pattern Parameter Type Action BOOL 1 if TRUE, 0 if FALSE. U16 U32 SPTR Right justify the original value in 64 bits with zero ll. S16 S32 S64 Right justify the original value in 64 bits with sign extension. LONG Class Transfer the concatenation of the SID and o set parts. EADDR SADDR Transfer the o set part unchanged. STR Transfer the ASCII bit pattern for the last eight characters in the string.
func saddr Coerces an expression into a secondary address. Syntax saddr (value) Formal Declaration saddr:saddr (value:any) Parameters value 8-170 An expression to be coerced. All types are valid. System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func saddr Derivation of the EADDR Bit Pattern Parameter Type Action BOOL 0.1 if TRUE, 0.0 if FALSE. U16 U32 SPTR Set the SID (LDEV) part to zero. Right justify the original value in the low-order 64 bits of the o set part with zero ll. S16 S32 S64 Set the SID (LDEV) part to zero. Right justify the original value in the low-order 64 bits of the o set part with sign extension. LONG Class Transfer the SID part unchanged.
func saddr $nmdat > wl saddr( true ) SADDR $0.1 $nmdat > wl saddr( prog(1.2) ) SADDR $1.2 Limitations, Restrictions none 8-172 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func sid func sid Returns the space ID (SID) portion of a virtual or extended address. Syntax sid (virtaddr) The SID function returns the space ID portion of a virtual address. If the parameter virtaddr is a short pointer (SPTR) it is internally converted to a long pointer by the STOL function, and the resulting SID portion is returned. If the parameter virtaddr is a long pointer or an extended address, the SID portion is simply extracted and returned.
func sid $nmdebug > wl sid(213403) $2e $nmdebug > wl sid(a.1234) $a Limitations, Restrictions none 8-174 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func sptr func sptr Coerces an expression into a short pointer. Syntax sptr (value) Formal Declaration sptr:sptr (value:any) Parameters value An expression to be coerced. All types are valid. System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func sptr Derivation of the SPTR Bit Pattern Parameter Type Action BOOL 1 if TRUE, 0 if FALSE. U16 S16 Right justify the original 16-bit value in 32 bits with zero ll. U32 S32 SPTR Transfer the original bit pattern unchanged. LONG Class Transfer the low-order 32 bits of the address (o set part) unchanged. The segment number or SID part of the address is discarded. EADDR SADDR Transfer the low-order 32 bits of the address (o set part). All other parts of the address are discarded.
func sptr $nmdat > wl sptr( true ) $1 $nmdat > wl sptr( "ABCDEFG" ) $44454647 $nmdat > wl sptr( prog(1.2) ) $2 Limitations, Restrictions none System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func stol Short to long. Converts a virtual address to a long pointer. Syntax stol (virtaddr) If the parameter virtaddr is a short pointer (SPTR), then it is converted based on the space registers for the current PIN. If the parameter virtaddr is a already a long pointer (LPTR) or a code pointer (ACPTR or LCPTR), then the long pointer (portion) is simply returned. Formal Declaration stol:lptr (virtaddr:ptr) Parameters virtaddr The virtual address to be converted to a long pointer.
func stol $nmdebug > wl stol(1cbb8c) $41.1cbb8c $nmdebug > wl stol(15f.1cbb8c) $15f.1cbb8c Limitations, Restrictions none System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func stolog Short to logical. Converts a NM short pointer (SPTR) to a NM logical code address (LCPTR). Syntax stolog (shortptr [logsel] [userfname]) Based on a logical le selector, logsel , the SID of a loaded NM executable library is used to build a logical code pointer. This conversion is very di erent from the STOL conversion, which uses the current space registers SR4 - SR7 to determine the SID.
func stolog userfname The le name of a user library le. Since multiple NM user libraries can be in use simultaneously, the userfname parameter is required when the logical le selector logsel is 'USER' . If userfname is not fully quali ed, the program le's group and account are used to fully qualify the le name. System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func stolog Examples $nmdebug > wl stolog(104c) PROG $42.104c By default, the logical selector 'PROG' is used to convert short pointer 104c to the logical code pointer PROG 42.104c. $nmdebug > wl stolog(20b34, 'sys') SYS $a.20b34 The logical selector 'SYS' is used to look up the SID for NL.PUB.SYS, and the resulting logical code pointer is SYS a.20b34. $nmdebug > wl stolog(1c68, 'user') Missing required user library filename for USER logical selector.
func str func str Returns a substring of a source string. Syntax str (source position length) Formal Declaration str:str (source:str position:u16 length:u16) Parameters source position length The string from which to extract the substring. The index of the rst character to extract. String indices are 1-based. (That is, indices are 1, 2, 3, . . . rather than 0, 1, 2, . . . ) The number of characters to extract.
func str Limitations, Restrictions none 8-184 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func strapp func strapp String append. Returns the result of concatenating two strings. Syntax strapp (source tail) Formal Declaration strapp:str (source:str tail:str) Parameters source tail The string to which tail is appended. The string to append to the tail of source . Examples $nmdebug > var stuff "Cream" $nmdebug > wl strapp("Ice ", stuff) Ice Cream Append the string contained in the variable stuff to the string \Ice".
func strdel String delete. Returns a string with a substring deleted from the source string. Syntax strdel (source position length) Formal Declaration strdel:str (source:str position:u16 length:u16) Parameters source position length The string from which to delete the substring. The index of the starting character to delete. String indices are 1-based. (That is, indices are 1, 2, 3, . . . rather than 0, 1, 2,. . . . ) The number of characters to delete.
func strdel Limitations, Restrictions none System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func strdown String downshift. Returns a string that is the result of downshifting all alphabetic characters in the source string. Syntax strdown (source) Formal Declaration strdown:str (source:str) Parameters source The string for which to downshift all alphabetic characters. Examples $nmdebug > var list '"CHRIS" "WICKY" "PAT" "HOFMANN" "HELMUT"' $nmdebug > foreach j list wl strdown (j) chris wicky pat hofmann helmut Downshift and print each name in the string variable list.
func strdown Limitations, Restrictions none System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func strextract String extract. Returns a string (extracted) from the speci ed virtual address. Syntax strextract (virtaddr [length]) Formal Declaration strextract:str (virtaddr:ptr [length:u16=$4]) Parameters virtaddr The virtual address of the start of the string. Virtaddr can be a short pointer, a long pointer, or a full logical code pointer. The number of characters to retrieve starting at virtaddr . If this parameter is not speci ed, the string returned will be four characters long.
func strextract The variable tblname is assigned a four-character string which is extracted from the virtual address de ned by the short pointer (b0002c40). Limitations, Restrictions If length is greater than the maximum supported string length (see the STRMAX function), only up to STRMAX characters are returned. System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func strinput Prompts on the input device for user input and returns the user input line as a string. Syntax strinput (prompt) Formal Declaration strinput:str (prompt:str) Parameters prompt The prompt string to be displayed. Examples $nmdebug > wl strinput("input a number>") input a number > 1234 1234 Prompt the user for a number and write it back.
func strins func strins String insert. Returns a string after inserting another string into the source string. Syntax strins (insert source position) Formal Declaration strins:str (insert:str source:str position:u16) Parameters insert source position The string to be inserted into source . The source string into which insert is to be inserted. The position where insert is to be inserted in source . String indices are 1-based. (That is, indices are 1, 2, 3, . . . rather than 0, 1, 2, . . .
func strins Insert \NOW!" into the source at position 100. Since the source is only seven characters long, \NOW!" is appended at the end of the source string. Limitations, Restrictions If the resultant string is larger than the maximum supported string length (see the STRMAX function), it is truncated. 8-194 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func strlen func strlen String length. Returns the current size of a string. Syntax strlen (source) Formal Declaration strlen:u32 (source:str) Parameters source Any string literal or variable. Examples $nmdebug > wl strlen("") $0 Print the length (number of characters) in the empty string. $nmdebug > var company "Hewlett-Packard Co." $nmdebug > = strlen(company),d #19 Limitations, Restrictions none System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func strltrim String left trim. Deletes leading blanks from the source string. Syntax strltrim (source) Formal Declaration strltrim:str (source:str) Parameters source The string from which all leading blanks are to be deleted. Examples $nmdebug > wl strltrim(" A string with extra blanks. "A string with extra blanks. " %cmdebug > = strltrim(strrtrim(" "ABCD" ABCD ")) Delete both leading and trailing blanks.
func strmax func strmax String maximum. Returns the (constant) maximum size of a string. Syntax strmax (source) Formal Declaration strmax:u32 (source:str) Parameters source Any string literal or variable. The result of this function is a constant. All strings have the same maximum length. Examples $nmdebug > wl strmax("date"):"#" #2048 $cmdat > = strmax(""),d #2048 Limitations, Restrictions The maximum number of characters in a string currently is 2048.
func strpos String position. Returns the index of the rst occurrence of one string in another. Syntax strpos (source searchstring [position]) If searchstring is not found in source then zero (0) is returned. Formal Declaration strpos:u32 (source:str searchstring:str [position:u32=1]) Parameters source searchstring The string in which searchstring is to be found. The string to be found in source . It may be either a singleor double-quoted string literal, or a back-quoted regular expression.
func strpos $4 Look for the string \where" in the source string and print the position where it was found. System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func strpos $nmdebug > first = first + strlen(searchstring) $nmdebug > var second = strpos(source, searchstring, first) $nmdebug > wl second $d Look for the next occurrence of \where" in the source string and print the position where it was found. $nmdebug > second = second + strlen(searchstring) $nmdebug > var third = strpos(source, searchstring, second) $nmdebug > wl third #0 Look for another occurrence of \where" in the source string.
func strrpt func strrpt String repeat. Returns a string composed of repeated occurrences of a source string. Syntax strrpt (source count) Formal Declaration strrpt:str (source:str count:u32) Parameters source count The source string to repeat. The number of times to repeat source . Examples $nmdebug > var digits:str "0123456789" $nmdebug > wl strrpt(digits, 7) 0123456789012345678901234567890123456789012345678901234567890123456789 Print out the string of digits \0 .. 9" repeated seven times.
func strrtrim String right trim. Deletes trailing blanks from the source string. Syntax strrtrim (source) Formal Declaration strrtrim:str (source:str) Parameters source The string from which all trailing blanks are to be deleted. Examples $nmdebug > wl strrtrim(" A string with extra blanks. " A string with extra blanks." %cmdebug > = strltrim(strrtrim(" "ABCD" ABCD ")) Delete both leading and trailing blanks.
func strup func strup String upshift. Returns a string which is the result of upshifting all alphabetic characters in the source string. Syntax strup (source) Formal Declaration strup:str (source:str) Parameters source The string whose alphabetic characters are to be upshifted. Examples $nmdebug > var cows "brindle and bessie. jenny and boss." $nmdebug > wl strup(cows) BRINDLE AND BESSIE. JENNY AND BOSS. Upshift the string variable and display the results.
func strwrite Returns a string which is the result of formatting one or more expressions in a manner equivalent to that of the W (WRITE) command. Syntax strwrite (valuelist) Formal Declaration strwrite:str (valuelist:str) Parameters valuelist A list of expressions, in the form of a single string, to be formatted. The expressions can be separated by blanks or commas: value1, value2 value3 ...
func strwrite +< -< $ # % H D O A N Current output base (no pre x) Current input base ($, #, or % pre x displayed) Current input base (no pre x) Hex output base ($ pre x displayed) Decimal output base (# pre x displayed) Octal output base (% pre x displayed) Hex output base (no pre x) Decimal output base (no pre x) Octal output base (no pre x) ASCII base (use \." for non-printable chars) ASCII base (loads actual non-printable chars) System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func strwrite L R Left justi ed Right justi ed B Z Blank lled Zero lled M F Wn Minimum eld width, based on value Fixed eld width, based on the type of value User speci ed eld width n T U Typed (display the type of the value) Untyped (do not display the type of the value) QS QD QO QN Quote single (surround w/ single quotes) Quote double (surround w/ double quotes) Quote original (surround w/ original quote character) Quote none (no quotes) The M directive (minimum eld width) selects the minimum po
func strwrite with an arbitrary expression. If the speci ed width is less than the minimum necessary width to display the value, then the user width is ignored, and the minimum width used instead. All signi cant digits are always printed. For example: number:"w6" or number:"w2*3" System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func strwrite The number of positions speci ed (either by Wn or F) does not include the characters required for the radix indicator (if speci ed) or sign (if negative). Also, the sign and radix indicator will always be positioned just preceding the rst (leftmost) character. Zero versus blank ll applies to leading spaces (for right justi cation) Trailing spaces are always blank lled. In speci cations with quotes, the quotes do not count in the number of positions speci ed.
func strwrite LPTR ACPTR CST CSTX EADDR SADDR LCPTR PROG GRP PUB LGRP LPUB SYS USER TRANS +.+.+.+.+.+.+.+.+.+.+.+.- R.L R.L R.L R.L R.L R.L R.L R.L R.L R.L R.L R.L B.Z B.Z B.Z B.Z B.Z B.Z B.Z B.Z B.Z B.Z B.Z B.Z M.F M.F M.F M.F M.F M.F M.F M.F M.F M.F M.F M.F U T T T T T T T T T U T Note that absolute code pointers, logical code pointers and secondary addresses display their types (T) by default. All other types default to (U) untyped.
func strwrite STRWRITE is similar to the ASC function. The major di erence is that ASC accepts a single expression with an optional format speci cation: wl ASC(1+2, "w4") while STRWRITE accepts a list of expressions, each with optional formatting: var title = strwrite('"Current Pin:" pin:"w4", " PC:", pc') Limitations, Restrictions none 8-210 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func symaddr func symaddr Returns the bit- or byte-relative o set of a component speci ed through the path speci cation, relative to the outer structure. Syntax symaddr (pathspec [units]) Formal Declaration symaddr:u32 (pathspec:str [units:u16=8]) Parameters pathspec units A path speci cation, as described in chapter 5, \Symbolic Formatting/Symbolic Access." Speci es the units (that is, bit width) in which the result is given. 1 means bits, 8 means bytes, 32 means words. The default is bytes.
func symaddr GradeRange GradesArray = MINGRADES .. MAXGRADES; = ARRAY [ GradeRange ] OF integer; Class NameStr = ( SENIOR, JUNIOR, SOPHOMORE, FRESHMAN ); = string[8]; StudentRecord = RECORD Name Id Year NumGrades Grades END; : : : : : NameStr; Integer; Class; GradeRange; GradesArray; $nmdebug > wl SYMADDR("StudentRecord.Name") $0 Print the byte o set of the name eld for StudentRecord. Since it is the rst item in the record, its o set is zero. $nmdebug > wl SYMADDR("StudentRecord.
func symconst func symconst Returns the value of a declared constant. Syntax symconst (pathspec) Formal Declaration symconst:any (pathspec:str) Parameters pathspec A path speci cation, as described in chapter 5, \Symbolic Formatting/ Symbolic Access." Examples $nmdebug > symopen gradtyp.demo Opens the symbolic data type le gradtyp.demo . It is assumed that the Debug variable addr contains the address of a StudentRecord data structure in virtual memory.
func symconst Name Id Year NumGrades Grades END; 8-214 : : : : : NameStr; Integer; Class; GradeRange; GradesArray; System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func symconst $nmdebug > wl "Max Number of students = " Max Number of students = $5 SYMCONST("MAXSTUDENTS") Returns the value of the constant MaxStudents. Limitations, Restrictions none System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func syminset Returns a Boolean value of TRUE if the set member speci ed by the member parameter is in the set speci ed by the virtual address and the path speci cation. Syntax syminset (virtaddr pathspec member) Formal Declaration syminset:bool (virtaddr:ptr pathspec:str member:str) Parameters virtaddr The virtual address of the start of the set. pathspec Virtaddr can be a short pointer, a long pointer, or a full logical code pointer.
func syminset $nmdat > wl syminset(sp-34, 'subjectset', 'math') FALSE $nmdat > wl syminset(sp-34, 'subjectset', 'physed') TRUE In the example above, the symbolic le name is not speci ed. The last symbolic le accessed is, therefore, used by default. Limitations, Restrictions none System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func symlen Returns the length of a data structure in bits or bytes. Syntax symlen (pathspec [units]) Formal Declaration symlen:u32 (pathspec:str [units:u32=$8]) Parameters pathspec units A path speci cation, as described in chapter 5, \Symbolic Formatting/Symbolic Access." Speci es the units (that is, bit width) in which the result is given. 1 means bits, 8 means bytes, 32 means words. The default is bytes. The symbolic length is rounded up to the nearest whole unit.
func symlen GradesArray = ARRAY [ GradeRange ] OF integer; Class NameStr = ( SENIOR, JUNIOR, SOPHOMORE, FRESHMAN ); = string[8]; StudentRecord = RECORD Name Id Year NumGrades Grades END; : : : : : NameStr; Integer; Class; GradeRange; GradesArray; System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func symlen $nmdebug > wl SYMLEN("StudentRecord") $40 Returns the size of a complete StudentRecord in bytes. $nmdebug > wl SYMLEN("StudentRecord" 1) $200 Returns the size of a complete StudentRecord in bits. $nmdebug > wl SYMLEN("StudentRecord.Grades" #32) $a Returns the size of grades eld in a StudentRecord in words. Limitations, Restrictions none 8-220 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func symtype func symtype Returns the type of a component described by the path speci cation. Syntax symtype (pathspec) Formal Declaration symtype:int (pathspec:str) Parameters pathspec The path speci cation as described in chapter 5, \Symbolic Formatting/Symbolic Access." The last element of the path must correspond to a user-de ned type with a name. Elements of type integer, array, or subrange result in an error. Any value returned by this function may be used successfully in the FT command.
func symtype Class NameStr = ( SENIOR, JUNIOR, SOPHOMORE, FRESHMAN ); = string[8]; StudentRecord = RECORD Name Id Year NumGrades Grades END; 8-222 : : : : : NameStr; Integer; Class; GradeRange; GradesArray; System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func symtype $nmdebug > wl symtype("StudentRecord.NumGrades") GRADERANGE Print out the type name of the NumGrades eld of a StudentRecord. Limitations, Restrictions None. System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func symval Returns the value of a simple data type speci ed by a virtual address and a path. Syntax symval (virtaddr pathspec) Formal Declaration symval:any (virtaddr:ptr pathspec:str) Parameters virtaddr pathspec The virtual address of the data structure. Virtaddr can be a short pointer, a long pointer, or a full logical code pointer. A path speci cation, as described in chapter 5, \Symbolic Formatting/Symbolic Access." Examples $nmdebug > symopen gradtyp.
func symval GradesArray = ARRAY [ GradeRange ] OF integer; Class NameStr = ( SENIOR, JUNIOR, SOPHOMORE, FRESHMAN ); = string[8]; StudentRecord = RECORD Name Id Year NumGrades Grades END; : : : : : NameStr; Integer; Class; GradeRange; GradesArray; System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func symval $nmdebug > wl symval(addr "StudentRecord.Name") Bill $nmdebug > wl symval(addr, "StudentRecord.Year") SENIOR $nmdebug > IF symval(addr "StudentRecord.Year") = "SENIOR" THEN wl "GRAD!" GRAD! Refer to the section \Using the Symbolic Formatter" in chapter 5 for more examples including pointers, arrays, and variant/invariant record structures. Limitations, Restrictions The path speci cation used by the SYMVAL function must evaluate to a simple type or a string.
func sys func sys Coerces an expression into a SYS logical code pointer (LCPTR). Syntax sys (value) During the evaluation of the parameter to this function, the search path used for procedure name lookups is limited to the system library le (SYS). Formal Declaration sys:sys (value:any) Parameters value An expression to be coerced. All types are valid. System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func sys Derivation of the SYS Bit Pattern Parameter Type Action BOOL 0.1 if TRUE, 0.0 if FALSE. U16 U32 SPTR Set the SID part to zero. Right justify the original value in the low-order 32 bits of the o set part with zero ll. S16 S32 S64 Set the SID part to zero. Right justify the original value in the low-order 32 bits of the o set part with sign extension. LONG Class Transfer both parts of the address unchanged. EADDR SADDR Transfer the SID part unchanged.
func sys SYS $0.1234abcd $nmdat > wl sys( -1 ) SYS $0.ffffffff $nmdat > wl sys( 1234.5678 ) SYS $1234.5678 $nmdat > wl sys( true ) SYS $0.1 $nmdat > wl sys( "ABCDEFG" ) SYS $414243.44454647 $nmdat > wl sys( prog(1.2) ) SYS $1.2 Limitations, Restrictions none System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func tcb Returns the real address of a process' TCB (task control block). Syntax tcb (pin) Formal Declaration tcb:u32 (pin:u16) Parameters pin The process identi cation number (PIN) for which the real address of the TCB is to be returned. Examples $nmdebug > wl tcb(8) $8b5480 Display the real address of the task control block for process 8. $nmdebug > dz tcb(8),4 REAL $008b5480 $ 40200000 40260000 000000000 00000000 Display real memory for four words at the real address of the task control block.
func tcb Limitations, Restrictions none System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func trans Coerces an expression into a TRANS logical code pointer (LCPTR). Syntax trans (value) Formal Declaration trans:trans (value:any) Parameters value 8-232 An expression to be coerced. All types are acceptable. System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func trans Derivation of the TRANS Bit Pattern Parameter Type Action BOOL 0.1 if TRUE, 0.0 if FALSE. U16 U32 SPTR Set the SID part to zero. Right justify the original value in the low-order 32 bits of the o set part with zero ll. S16 S32 S64 Set the SID part to zero. Right justify the original value in the low-order 32 bits of the o set part with sign extension. LONG Class Transfer both parts of the address unchanged. EADDR SADDR Transfer the SID part unchanged.
func typeof Returns the type of an evaluated expression as a string. Syntax typeof (expr) Formal Declaration typeof:str (expr:any) Parameters expr Any expression for which the resultant type is desired. Examples $nmdebug > wl typeof(1+2+3) U16 $nmdebug > wl typeof(#65535) U16 $nmdebug > wl typeof(#65535+1) U32 $nmdebug > wl typeof (-1) S16 $nmdebug > wl typeof ($1ffff) S32 $nmdebug > wl typeof(true) 8-234 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func typeof Returns the type of an evaluated expression as a string. Syntax typeof (expr) Formal Declaration typeof:str (expr:any) Parameters expr Any expression for which the resultant type is desired. Examples $nmdebug > wl typeof(1+2+3) U16 $nmdebug > wl typeof(#65535) U16 $nmdebug > wl typeof(#65535+1) U32 $nmdebug > wl typeof (-1) S16 $nmdebug > wl typeof ($1ffff) S32 $nmdebug > wl typeof(true) 8-234 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func typeof Returns the type of an evaluated expression as a string. Syntax typeof (expr) Formal Declaration typeof:str (expr:any) Parameters expr Any expression for which the resultant type is desired. Examples $nmdebug > wl typeof(1+2+3) U16 $nmdebug > wl typeof(#65535) U16 $nmdebug > wl typeof(#65535+1) U32 $nmdebug > wl typeof (-1) S16 $nmdebug > wl typeof ($1ffff) S32 $nmdebug > wl typeof(true) 8-234 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func typeof Returns the type of an evaluated expression as a string. Syntax typeof (expr) Formal Declaration typeof:str (expr:any) Parameters expr Any expression for which the resultant type is desired. Examples $nmdebug > wl typeof(1+2+3) U16 $nmdebug > wl typeof(#65535) U16 $nmdebug > wl typeof(#65535+1) U32 $nmdebug > wl typeof (-1) S16 $nmdebug > wl typeof ($1ffff) S32 $nmdebug > wl typeof(true) 8-234 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func typeof Returns the type of an evaluated expression as a string. Syntax typeof (expr) Formal Declaration typeof:str (expr:any) Parameters expr Any expression for which the resultant type is desired. Examples $nmdebug > wl typeof(1+2+3) U16 $nmdebug > wl typeof(#65535) U16 $nmdebug > wl typeof(#65535+1) U32 $nmdebug > wl typeof (-1) S16 $nmdebug > wl typeof ($1ffff) S32 $nmdebug > wl typeof(true) 8-234 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func typeof Returns the type of an evaluated expression as a string. Syntax typeof (expr) Formal Declaration typeof:str (expr:any) Parameters expr Any expression for which the resultant type is desired. Examples $nmdebug > wl typeof(1+2+3) U16 $nmdebug > wl typeof(#65535) U16 $nmdebug > wl typeof(#65535+1) U32 $nmdebug > wl typeof (-1) S16 $nmdebug > wl typeof ($1ffff) S32 $nmdebug > wl typeof(true) 8-234 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func typeof Returns the type of an evaluated expression as a string. Syntax typeof (expr) Formal Declaration typeof:str (expr:any) Parameters expr Any expression for which the resultant type is desired. Examples $nmdebug > wl typeof(1+2+3) U16 $nmdebug > wl typeof(#65535) U16 $nmdebug > wl typeof(#65535+1) U32 $nmdebug > wl typeof (-1) S16 $nmdebug > wl typeof ($1ffff) S32 $nmdebug > wl typeof(true) 8-234 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func typeof Returns the type of an evaluated expression as a string. Syntax typeof (expr) Formal Declaration typeof:str (expr:any) Parameters expr Any expression for which the resultant type is desired. Examples $nmdebug > wl typeof(1+2+3) U16 $nmdebug > wl typeof(#65535) U16 $nmdebug > wl typeof(#65535+1) U32 $nmdebug > wl typeof (-1) S16 $nmdebug > wl typeof ($1ffff) S32 $nmdebug > wl typeof(true) 8-234 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func typeof Returns the type of an evaluated expression as a string. Syntax typeof (expr) Formal Declaration typeof:str (expr:any) Parameters expr Any expression for which the resultant type is desired. Examples $nmdebug > wl typeof(1+2+3) U16 $nmdebug > wl typeof(#65535) U16 $nmdebug > wl typeof(#65535+1) U32 $nmdebug > wl typeof (-1) S16 $nmdebug > wl typeof ($1ffff) S32 $nmdebug > wl typeof(true) 8-234 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func typeof Returns the type of an evaluated expression as a string. Syntax typeof (expr) Formal Declaration typeof:str (expr:any) Parameters expr Any expression for which the resultant type is desired. Examples $nmdebug > wl typeof(1+2+3) U16 $nmdebug > wl typeof(#65535) U16 $nmdebug > wl typeof(#65535+1) U32 $nmdebug > wl typeof (-1) S16 $nmdebug > wl typeof ($1ffff) S32 $nmdebug > wl typeof(true) 8-234 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func typeof Returns the type of an evaluated expression as a string. Syntax typeof (expr) Formal Declaration typeof:str (expr:any) Parameters expr Any expression for which the resultant type is desired. Examples $nmdebug > wl typeof(1+2+3) U16 $nmdebug > wl typeof(#65535) U16 $nmdebug > wl typeof(#65535+1) U32 $nmdebug > wl typeof (-1) S16 $nmdebug > wl typeof ($1ffff) S32 $nmdebug > wl typeof(true) 8-234 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func typeof Returns the type of an evaluated expression as a string. Syntax typeof (expr) Formal Declaration typeof:str (expr:any) Parameters expr Any expression for which the resultant type is desired. Examples $nmdebug > wl typeof(1+2+3) U16 $nmdebug > wl typeof(#65535) U16 $nmdebug > wl typeof(#65535+1) U32 $nmdebug > wl typeof (-1) S16 $nmdebug > wl typeof ($1ffff) S32 $nmdebug > wl typeof(true) 8-234 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func typeof Returns the type of an evaluated expression as a string. Syntax typeof (expr) Formal Declaration typeof:str (expr:any) Parameters expr Any expression for which the resultant type is desired. Examples $nmdebug > wl typeof(1+2+3) U16 $nmdebug > wl typeof(#65535) U16 $nmdebug > wl typeof(#65535+1) U32 $nmdebug > wl typeof (-1) S16 $nmdebug > wl typeof ($1ffff) S32 $nmdebug > wl typeof(true) 8-234 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func typeof Returns the type of an evaluated expression as a string. Syntax typeof (expr) Formal Declaration typeof:str (expr:any) Parameters expr Any expression for which the resultant type is desired. Examples $nmdebug > wl typeof(1+2+3) U16 $nmdebug > wl typeof(#65535) U16 $nmdebug > wl typeof(#65535+1) U32 $nmdebug > wl typeof (-1) S16 $nmdebug > wl typeof ($1ffff) S32 $nmdebug > wl typeof(true) 8-234 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func typeof Returns the type of an evaluated expression as a string. Syntax typeof (expr) Formal Declaration typeof:str (expr:any) Parameters expr Any expression for which the resultant type is desired. Examples $nmdebug > wl typeof(1+2+3) U16 $nmdebug > wl typeof(#65535) U16 $nmdebug > wl typeof(#65535+1) U32 $nmdebug > wl typeof (-1) S16 $nmdebug > wl typeof ($1ffff) S32 $nmdebug > wl typeof(true) 8-234 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func typeof Returns the type of an evaluated expression as a string. Syntax typeof (expr) Formal Declaration typeof:str (expr:any) Parameters expr Any expression for which the resultant type is desired. Examples $nmdebug > wl typeof(1+2+3) U16 $nmdebug > wl typeof(#65535) U16 $nmdebug > wl typeof(#65535+1) U32 $nmdebug > wl typeof (-1) S16 $nmdebug > wl typeof ($1ffff) S32 $nmdebug > wl typeof(true) 8-234 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func typeof Returns the type of an evaluated expression as a string. Syntax typeof (expr) Formal Declaration typeof:str (expr:any) Parameters expr Any expression for which the resultant type is desired. Examples $nmdebug > wl typeof(1+2+3) U16 $nmdebug > wl typeof(#65535) U16 $nmdebug > wl typeof(#65535+1) U32 $nmdebug > wl typeof (-1) S16 $nmdebug > wl typeof ($1ffff) S32 $nmdebug > wl typeof(true) 8-234 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func typeof Returns the type of an evaluated expression as a string. Syntax typeof (expr) Formal Declaration typeof:str (expr:any) Parameters expr Any expression for which the resultant type is desired. Examples $nmdebug > wl typeof(1+2+3) U16 $nmdebug > wl typeof(#65535) U16 $nmdebug > wl typeof(#65535+1) U32 $nmdebug > wl typeof (-1) S16 $nmdebug > wl typeof ($1ffff) S32 $nmdebug > wl typeof(true) 8-234 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func typeof Returns the type of an evaluated expression as a string. Syntax typeof (expr) Formal Declaration typeof:str (expr:any) Parameters expr Any expression for which the resultant type is desired. Examples $nmdebug > wl typeof(1+2+3) U16 $nmdebug > wl typeof(#65535) U16 $nmdebug > wl typeof(#65535+1) U32 $nmdebug > wl typeof (-1) S16 $nmdebug > wl typeof ($1ffff) S32 $nmdebug > wl typeof(true) 8-234 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func typeof Returns the type of an evaluated expression as a string. Syntax typeof (expr) Formal Declaration typeof:str (expr:any) Parameters expr Any expression for which the resultant type is desired. Examples $nmdebug > wl typeof(1+2+3) U16 $nmdebug > wl typeof(#65535) U16 $nmdebug > wl typeof(#65535+1) U32 $nmdebug > wl typeof (-1) S16 $nmdebug > wl typeof ($1ffff) S32 $nmdebug > wl typeof(true) 8-234 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func typeof Returns the type of an evaluated expression as a string. Syntax typeof (expr) Formal Declaration typeof:str (expr:any) Parameters expr Any expression for which the resultant type is desired. Examples $nmdebug > wl typeof(1+2+3) U16 $nmdebug > wl typeof(#65535) U16 $nmdebug > wl typeof(#65535+1) U32 $nmdebug > wl typeof (-1) S16 $nmdebug > wl typeof ($1ffff) S32 $nmdebug > wl typeof(true) 8-234 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func typeof Returns the type of an evaluated expression as a string. Syntax typeof (expr) Formal Declaration typeof:str (expr:any) Parameters expr Any expression for which the resultant type is desired. Examples $nmdebug > wl typeof(1+2+3) U16 $nmdebug > wl typeof(#65535) U16 $nmdebug > wl typeof(#65535+1) U32 $nmdebug > wl typeof (-1) S16 $nmdebug > wl typeof ($1ffff) S32 $nmdebug > wl typeof(true) 8-234 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func typeof Returns the type of an evaluated expression as a string. Syntax typeof (expr) Formal Declaration typeof:str (expr:any) Parameters expr Any expression for which the resultant type is desired. Examples $nmdebug > wl typeof(1+2+3) U16 $nmdebug > wl typeof(#65535) U16 $nmdebug > wl typeof(#65535+1) U32 $nmdebug > wl typeof (-1) S16 $nmdebug > wl typeof ($1ffff) S32 $nmdebug > wl typeof(true) 8-234 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func typeof Returns the type of an evaluated expression as a string. Syntax typeof (expr) Formal Declaration typeof:str (expr:any) Parameters expr Any expression for which the resultant type is desired. Examples $nmdebug > wl typeof(1+2+3) U16 $nmdebug > wl typeof(#65535) U16 $nmdebug > wl typeof(#65535+1) U32 $nmdebug > wl typeof (-1) S16 $nmdebug > wl typeof ($1ffff) S32 $nmdebug > wl typeof(true) 8-234 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func typeof Returns the type of an evaluated expression as a string. Syntax typeof (expr) Formal Declaration typeof:str (expr:any) Parameters expr Any expression for which the resultant type is desired. Examples $nmdebug > wl typeof(1+2+3) U16 $nmdebug > wl typeof(#65535) U16 $nmdebug > wl typeof(#65535+1) U32 $nmdebug > wl typeof (-1) S16 $nmdebug > wl typeof ($1ffff) S32 $nmdebug > wl typeof(true) 8-234 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func typeof Returns the type of an evaluated expression as a string. Syntax typeof (expr) Formal Declaration typeof:str (expr:any) Parameters expr Any expression for which the resultant type is desired. Examples $nmdebug > wl typeof(1+2+3) U16 $nmdebug > wl typeof(#65535) U16 $nmdebug > wl typeof(#65535+1) U32 $nmdebug > wl typeof (-1) S16 $nmdebug > wl typeof ($1ffff) S32 $nmdebug > wl typeof(true) 8-234 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func typeof Returns the type of an evaluated expression as a string. Syntax typeof (expr) Formal Declaration typeof:str (expr:any) Parameters expr Any expression for which the resultant type is desired. Examples $nmdebug > wl typeof(1+2+3) U16 $nmdebug > wl typeof(#65535) U16 $nmdebug > wl typeof(#65535+1) U32 $nmdebug > wl typeof (-1) S16 $nmdebug > wl typeof ($1ffff) S32 $nmdebug > wl typeof(true) 8-234 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func typeof Returns the type of an evaluated expression as a string. Syntax typeof (expr) Formal Declaration typeof:str (expr:any) Parameters expr Any expression for which the resultant type is desired. Examples $nmdebug > wl typeof(1+2+3) U16 $nmdebug > wl typeof(#65535) U16 $nmdebug > wl typeof(#65535+1) U32 $nmdebug > wl typeof (-1) S16 $nmdebug > wl typeof ($1ffff) S32 $nmdebug > wl typeof(true) 8-234 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func typeof Returns the type of an evaluated expression as a string. Syntax typeof (expr) Formal Declaration typeof:str (expr:any) Parameters expr Any expression for which the resultant type is desired. Examples $nmdebug > wl typeof(1+2+3) U16 $nmdebug > wl typeof(#65535) U16 $nmdebug > wl typeof(#65535+1) U32 $nmdebug > wl typeof (-1) S16 $nmdebug > wl typeof ($1ffff) S32 $nmdebug > wl typeof(true) 8-234 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func typeof Returns the type of an evaluated expression as a string. Syntax typeof (expr) Formal Declaration typeof:str (expr:any) Parameters expr Any expression for which the resultant type is desired. Examples $nmdebug > wl typeof(1+2+3) U16 $nmdebug > wl typeof(#65535) U16 $nmdebug > wl typeof(#65535+1) U32 $nmdebug > wl typeof (-1) S16 $nmdebug > wl typeof ($1ffff) S32 $nmdebug > wl typeof(true) 8-234 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func typeof Returns the type of an evaluated expression as a string. Syntax typeof (expr) Formal Declaration typeof:str (expr:any) Parameters expr Any expression for which the resultant type is desired. Examples $nmdebug > wl typeof(1+2+3) U16 $nmdebug > wl typeof(#65535) U16 $nmdebug > wl typeof(#65535+1) U32 $nmdebug > wl typeof (-1) S16 $nmdebug > wl typeof ($1ffff) S32 $nmdebug > wl typeof(true) 8-234 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func typeof Returns the type of an evaluated expression as a string. Syntax typeof (expr) Formal Declaration typeof:str (expr:any) Parameters expr Any expression for which the resultant type is desired. Examples $nmdebug > wl typeof(1+2+3) U16 $nmdebug > wl typeof(#65535) U16 $nmdebug > wl typeof(#65535+1) U32 $nmdebug > wl typeof (-1) S16 $nmdebug > wl typeof ($1ffff) S32 $nmdebug > wl typeof(true) 8-234 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func typeof Returns the type of an evaluated expression as a string. Syntax typeof (expr) Formal Declaration typeof:str (expr:any) Parameters expr Any expression for which the resultant type is desired. Examples $nmdebug > wl typeof(1+2+3) U16 $nmdebug > wl typeof(#65535) U16 $nmdebug > wl typeof(#65535+1) U32 $nmdebug > wl typeof (-1) S16 $nmdebug > wl typeof ($1ffff) S32 $nmdebug > wl typeof(true) 8-234 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func typeof Returns the type of an evaluated expression as a string. Syntax typeof (expr) Formal Declaration typeof:str (expr:any) Parameters expr Any expression for which the resultant type is desired. Examples $nmdebug > wl typeof(1+2+3) U16 $nmdebug > wl typeof(#65535) U16 $nmdebug > wl typeof(#65535+1) U32 $nmdebug > wl typeof (-1) S16 $nmdebug > wl typeof ($1ffff) S32 $nmdebug > wl typeof(true) 8-234 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func typeof Returns the type of an evaluated expression as a string. Syntax typeof (expr) Formal Declaration typeof:str (expr:any) Parameters expr Any expression for which the resultant type is desired. Examples $nmdebug > wl typeof(1+2+3) U16 $nmdebug > wl typeof(#65535) U16 $nmdebug > wl typeof(#65535+1) U32 $nmdebug > wl typeof (-1) S16 $nmdebug > wl typeof ($1ffff) S32 $nmdebug > wl typeof(true) 8-234 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func typeof Returns the type of an evaluated expression as a string. Syntax typeof (expr) Formal Declaration typeof:str (expr:any) Parameters expr Any expression for which the resultant type is desired. Examples $nmdebug > wl typeof(1+2+3) U16 $nmdebug > wl typeof(#65535) U16 $nmdebug > wl typeof(#65535+1) U32 $nmdebug > wl typeof (-1) S16 $nmdebug > wl typeof ($1ffff) S32 $nmdebug > wl typeof(true) 8-234 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func typeof Returns the type of an evaluated expression as a string. Syntax typeof (expr) Formal Declaration typeof:str (expr:any) Parameters expr Any expression for which the resultant type is desired. Examples $nmdebug > wl typeof(1+2+3) U16 $nmdebug > wl typeof(#65535) U16 $nmdebug > wl typeof(#65535+1) U32 $nmdebug > wl typeof (-1) S16 $nmdebug > wl typeof ($1ffff) S32 $nmdebug > wl typeof(true) 8-234 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func typeof Returns the type of an evaluated expression as a string. Syntax typeof (expr) Formal Declaration typeof:str (expr:any) Parameters expr Any expression for which the resultant type is desired. Examples $nmdebug > wl typeof(1+2+3) U16 $nmdebug > wl typeof(#65535) U16 $nmdebug > wl typeof(#65535+1) U32 $nmdebug > wl typeof (-1) S16 $nmdebug > wl typeof ($1ffff) S32 $nmdebug > wl typeof(true) 8-234 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func typeof Returns the type of an evaluated expression as a string. Syntax typeof (expr) Formal Declaration typeof:str (expr:any) Parameters expr Any expression for which the resultant type is desired. Examples $nmdebug > wl typeof(1+2+3) U16 $nmdebug > wl typeof(#65535) U16 $nmdebug > wl typeof(#65535+1) U32 $nmdebug > wl typeof (-1) S16 $nmdebug > wl typeof ($1ffff) S32 $nmdebug > wl typeof(true) 8-234 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func typeof Returns the type of an evaluated expression as a string. Syntax typeof (expr) Formal Declaration typeof:str (expr:any) Parameters expr Any expression for which the resultant type is desired. Examples $nmdebug > wl typeof(1+2+3) U16 $nmdebug > wl typeof(#65535) U16 $nmdebug > wl typeof(#65535+1) U32 $nmdebug > wl typeof (-1) S16 $nmdebug > wl typeof ($1ffff) S32 $nmdebug > wl typeof(true) 8-234 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func typeof Returns the type of an evaluated expression as a string. Syntax typeof (expr) Formal Declaration typeof:str (expr:any) Parameters expr Any expression for which the resultant type is desired. Examples $nmdebug > wl typeof(1+2+3) U16 $nmdebug > wl typeof(#65535) U16 $nmdebug > wl typeof(#65535+1) U32 $nmdebug > wl typeof (-1) S16 $nmdebug > wl typeof ($1ffff) S32 $nmdebug > wl typeof(true) 8-234 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func typeof Returns the type of an evaluated expression as a string. Syntax typeof (expr) Formal Declaration typeof:str (expr:any) Parameters expr Any expression for which the resultant type is desired. Examples $nmdebug > wl typeof(1+2+3) U16 $nmdebug > wl typeof(#65535) U16 $nmdebug > wl typeof(#65535+1) U32 $nmdebug > wl typeof (-1) S16 $nmdebug > wl typeof ($1ffff) S32 $nmdebug > wl typeof(true) 8-234 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func typeof Returns the type of an evaluated expression as a string. Syntax typeof (expr) Formal Declaration typeof:str (expr:any) Parameters expr Any expression for which the resultant type is desired. Examples $nmdebug > wl typeof(1+2+3) U16 $nmdebug > wl typeof(#65535) U16 $nmdebug > wl typeof(#65535+1) U32 $nmdebug > wl typeof (-1) S16 $nmdebug > wl typeof ($1ffff) S32 $nmdebug > wl typeof(true) 8-234 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func typeof Returns the type of an evaluated expression as a string. Syntax typeof (expr) Formal Declaration typeof:str (expr:any) Parameters expr Any expression for which the resultant type is desired. Examples $nmdebug > wl typeof(1+2+3) U16 $nmdebug > wl typeof(#65535) U16 $nmdebug > wl typeof(#65535+1) U32 $nmdebug > wl typeof (-1) S16 $nmdebug > wl typeof ($1ffff) S32 $nmdebug > wl typeof(true) 8-234 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func typeof Returns the type of an evaluated expression as a string. Syntax typeof (expr) Formal Declaration typeof:str (expr:any) Parameters expr Any expression for which the resultant type is desired. Examples $nmdebug > wl typeof(1+2+3) U16 $nmdebug > wl typeof(#65535) U16 $nmdebug > wl typeof(#65535+1) U32 $nmdebug > wl typeof (-1) S16 $nmdebug > wl typeof ($1ffff) S32 $nmdebug > wl typeof(true) 8-234 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func typeof Returns the type of an evaluated expression as a string. Syntax typeof (expr) Formal Declaration typeof:str (expr:any) Parameters expr Any expression for which the resultant type is desired. Examples $nmdebug > wl typeof(1+2+3) U16 $nmdebug > wl typeof(#65535) U16 $nmdebug > wl typeof(#65535+1) U32 $nmdebug > wl typeof (-1) S16 $nmdebug > wl typeof ($1ffff) S32 $nmdebug > wl typeof(true) 8-234 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func typeof Returns the type of an evaluated expression as a string. Syntax typeof (expr) Formal Declaration typeof:str (expr:any) Parameters expr Any expression for which the resultant type is desired. Examples $nmdebug > wl typeof(1+2+3) U16 $nmdebug > wl typeof(#65535) U16 $nmdebug > wl typeof(#65535+1) U32 $nmdebug > wl typeof (-1) S16 $nmdebug > wl typeof ($1ffff) S32 $nmdebug > wl typeof(true) 8-234 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func typeof Returns the type of an evaluated expression as a string. Syntax typeof (expr) Formal Declaration typeof:str (expr:any) Parameters expr Any expression for which the resultant type is desired. Examples $nmdebug > wl typeof(1+2+3) U16 $nmdebug > wl typeof(#65535) U16 $nmdebug > wl typeof(#65535+1) U32 $nmdebug > wl typeof (-1) S16 $nmdebug > wl typeof ($1ffff) S32 $nmdebug > wl typeof(true) 8-234 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func typeof Returns the type of an evaluated expression as a string. Syntax typeof (expr) Formal Declaration typeof:str (expr:any) Parameters expr Any expression for which the resultant type is desired. Examples $nmdebug > wl typeof(1+2+3) U16 $nmdebug > wl typeof(#65535) U16 $nmdebug > wl typeof(#65535+1) U32 $nmdebug > wl typeof (-1) S16 $nmdebug > wl typeof ($1ffff) S32 $nmdebug > wl typeof(true) 8-234 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func typeof Returns the type of an evaluated expression as a string. Syntax typeof (expr) Formal Declaration typeof:str (expr:any) Parameters expr Any expression for which the resultant type is desired. Examples $nmdebug > wl typeof(1+2+3) U16 $nmdebug > wl typeof(#65535) U16 $nmdebug > wl typeof(#65535+1) U32 $nmdebug > wl typeof (-1) S16 $nmdebug > wl typeof ($1ffff) S32 $nmdebug > wl typeof(true) 8-234 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func typeof Returns the type of an evaluated expression as a string. Syntax typeof (expr) Formal Declaration typeof:str (expr:any) Parameters expr Any expression for which the resultant type is desired. Examples $nmdebug > wl typeof(1+2+3) U16 $nmdebug > wl typeof(#65535) U16 $nmdebug > wl typeof(#65535+1) U32 $nmdebug > wl typeof (-1) S16 $nmdebug > wl typeof ($1ffff) S32 $nmdebug > wl typeof(true) 8-234 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func typeof Returns the type of an evaluated expression as a string. Syntax typeof (expr) Formal Declaration typeof:str (expr:any) Parameters expr Any expression for which the resultant type is desired. Examples $nmdebug > wl typeof(1+2+3) U16 $nmdebug > wl typeof(#65535) U16 $nmdebug > wl typeof(#65535+1) U32 $nmdebug > wl typeof (-1) S16 $nmdebug > wl typeof ($1ffff) S32 $nmdebug > wl typeof(true) 8-234 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func typeof Returns the type of an evaluated expression as a string. Syntax typeof (expr) Formal Declaration typeof:str (expr:any) Parameters expr Any expression for which the resultant type is desired. Examples $nmdebug > wl typeof(1+2+3) U16 $nmdebug > wl typeof(#65535) U16 $nmdebug > wl typeof(#65535+1) U32 $nmdebug > wl typeof (-1) S16 $nmdebug > wl typeof ($1ffff) S32 $nmdebug > wl typeof(true) 8-234 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func typeof Returns the type of an evaluated expression as a string. Syntax typeof (expr) Formal Declaration typeof:str (expr:any) Parameters expr Any expression for which the resultant type is desired. Examples $nmdebug > wl typeof(1+2+3) U16 $nmdebug > wl typeof(#65535) U16 $nmdebug > wl typeof(#65535+1) U32 $nmdebug > wl typeof (-1) S16 $nmdebug > wl typeof ($1ffff) S32 $nmdebug > wl typeof(true) 8-234 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func typeof Returns the type of an evaluated expression as a string. Syntax typeof (expr) Formal Declaration typeof:str (expr:any) Parameters expr Any expression for which the resultant type is desired. Examples $nmdebug > wl typeof(1+2+3) U16 $nmdebug > wl typeof(#65535) U16 $nmdebug > wl typeof(#65535+1) U32 $nmdebug > wl typeof (-1) S16 $nmdebug > wl typeof ($1ffff) S32 $nmdebug > wl typeof(true) 8-234 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func typeof Returns the type of an evaluated expression as a string. Syntax typeof (expr) Formal Declaration typeof:str (expr:any) Parameters expr Any expression for which the resultant type is desired. Examples $nmdebug > wl typeof(1+2+3) U16 $nmdebug > wl typeof(#65535) U16 $nmdebug > wl typeof(#65535+1) U32 $nmdebug > wl typeof (-1) S16 $nmdebug > wl typeof ($1ffff) S32 $nmdebug > wl typeof(true) 8-234 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func typeof Returns the type of an evaluated expression as a string. Syntax typeof (expr) Formal Declaration typeof:str (expr:any) Parameters expr Any expression for which the resultant type is desired. Examples $nmdebug > wl typeof(1+2+3) U16 $nmdebug > wl typeof(#65535) U16 $nmdebug > wl typeof(#65535+1) U32 $nmdebug > wl typeof (-1) S16 $nmdebug > wl typeof ($1ffff) S32 $nmdebug > wl typeof(true) 8-234 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func typeof Returns the type of an evaluated expression as a string. Syntax typeof (expr) Formal Declaration typeof:str (expr:any) Parameters expr Any expression for which the resultant type is desired. Examples $nmdebug > wl typeof(1+2+3) U16 $nmdebug > wl typeof(#65535) U16 $nmdebug > wl typeof(#65535+1) U32 $nmdebug > wl typeof (-1) S16 $nmdebug > wl typeof ($1ffff) S32 $nmdebug > wl typeof(true) 8-234 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func typeof Returns the type of an evaluated expression as a string. Syntax typeof (expr) Formal Declaration typeof:str (expr:any) Parameters expr Any expression for which the resultant type is desired. Examples $nmdebug > wl typeof(1+2+3) U16 $nmdebug > wl typeof(#65535) U16 $nmdebug > wl typeof(#65535+1) U32 $nmdebug > wl typeof (-1) S16 $nmdebug > wl typeof ($1ffff) S32 $nmdebug > wl typeof(true) 8-234 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func typeof Returns the type of an evaluated expression as a string. Syntax typeof (expr) Formal Declaration typeof:str (expr:any) Parameters expr Any expression for which the resultant type is desired. Examples $nmdebug > wl typeof(1+2+3) U16 $nmdebug > wl typeof(#65535) U16 $nmdebug > wl typeof(#65535+1) U32 $nmdebug > wl typeof (-1) S16 $nmdebug > wl typeof ($1ffff) S32 $nmdebug > wl typeof(true) 8-234 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func typeof Returns the type of an evaluated expression as a string. Syntax typeof (expr) Formal Declaration typeof:str (expr:any) Parameters expr Any expression for which the resultant type is desired. Examples $nmdebug > wl typeof(1+2+3) U16 $nmdebug > wl typeof(#65535) U16 $nmdebug > wl typeof(#65535+1) U32 $nmdebug > wl typeof (-1) S16 $nmdebug > wl typeof ($1ffff) S32 $nmdebug > wl typeof(true) 8-234 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func typeof Returns the type of an evaluated expression as a string. Syntax typeof (expr) Formal Declaration typeof:str (expr:any) Parameters expr Any expression for which the resultant type is desired. Examples $nmdebug > wl typeof(1+2+3) U16 $nmdebug > wl typeof(#65535) U16 $nmdebug > wl typeof(#65535+1) U32 $nmdebug > wl typeof (-1) S16 $nmdebug > wl typeof ($1ffff) S32 $nmdebug > wl typeof(true) 8-234 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func typeof Returns the type of an evaluated expression as a string. Syntax typeof (expr) Formal Declaration typeof:str (expr:any) Parameters expr Any expression for which the resultant type is desired. Examples $nmdebug > wl typeof(1+2+3) U16 $nmdebug > wl typeof(#65535) U16 $nmdebug > wl typeof(#65535+1) U32 $nmdebug > wl typeof (-1) S16 $nmdebug > wl typeof ($1ffff) S32 $nmdebug > wl typeof(true) 8-234 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func typeof Returns the type of an evaluated expression as a string. Syntax typeof (expr) Formal Declaration typeof:str (expr:any) Parameters expr Any expression for which the resultant type is desired. Examples $nmdebug > wl typeof(1+2+3) U16 $nmdebug > wl typeof(#65535) U16 $nmdebug > wl typeof(#65535+1) U32 $nmdebug > wl typeof (-1) S16 $nmdebug > wl typeof ($1ffff) S32 $nmdebug > wl typeof(true) 8-234 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func typeof Returns the type of an evaluated expression as a string. Syntax typeof (expr) Formal Declaration typeof:str (expr:any) Parameters expr Any expression for which the resultant type is desired. Examples $nmdebug > wl typeof(1+2+3) U16 $nmdebug > wl typeof(#65535) U16 $nmdebug > wl typeof(#65535+1) U32 $nmdebug > wl typeof (-1) S16 $nmdebug > wl typeof ($1ffff) S32 $nmdebug > wl typeof(true) 8-234 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func typeof Returns the type of an evaluated expression as a string. Syntax typeof (expr) Formal Declaration typeof:str (expr:any) Parameters expr Any expression for which the resultant type is desired. Examples $nmdebug > wl typeof(1+2+3) U16 $nmdebug > wl typeof(#65535) U16 $nmdebug > wl typeof(#65535+1) U32 $nmdebug > wl typeof (-1) S16 $nmdebug > wl typeof ($1ffff) S32 $nmdebug > wl typeof(true) 8-234 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func typeof Returns the type of an evaluated expression as a string. Syntax typeof (expr) Formal Declaration typeof:str (expr:any) Parameters expr Any expression for which the resultant type is desired. Examples $nmdebug > wl typeof(1+2+3) U16 $nmdebug > wl typeof(#65535) U16 $nmdebug > wl typeof(#65535+1) U32 $nmdebug > wl typeof (-1) S16 $nmdebug > wl typeof ($1ffff) S32 $nmdebug > wl typeof(true) 8-234 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func typeof Returns the type of an evaluated expression as a string. Syntax typeof (expr) Formal Declaration typeof:str (expr:any) Parameters expr Any expression for which the resultant type is desired. Examples $nmdebug > wl typeof(1+2+3) U16 $nmdebug > wl typeof(#65535) U16 $nmdebug > wl typeof(#65535+1) U32 $nmdebug > wl typeof (-1) S16 $nmdebug > wl typeof ($1ffff) S32 $nmdebug > wl typeof(true) 8-234 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func typeof Returns the type of an evaluated expression as a string. Syntax typeof (expr) Formal Declaration typeof:str (expr:any) Parameters expr Any expression for which the resultant type is desired. Examples $nmdebug > wl typeof(1+2+3) U16 $nmdebug > wl typeof(#65535) U16 $nmdebug > wl typeof(#65535+1) U32 $nmdebug > wl typeof (-1) S16 $nmdebug > wl typeof ($1ffff) S32 $nmdebug > wl typeof(true) 8-234 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func typeof Returns the type of an evaluated expression as a string. Syntax typeof (expr) Formal Declaration typeof:str (expr:any) Parameters expr Any expression for which the resultant type is desired. Examples $nmdebug > wl typeof(1+2+3) U16 $nmdebug > wl typeof(#65535) U16 $nmdebug > wl typeof(#65535+1) U32 $nmdebug > wl typeof (-1) S16 $nmdebug > wl typeof ($1ffff) S32 $nmdebug > wl typeof(true) 8-234 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func typeof Returns the type of an evaluated expression as a string. Syntax typeof (expr) Formal Declaration typeof:str (expr:any) Parameters expr Any expression for which the resultant type is desired. Examples $nmdebug > wl typeof(1+2+3) U16 $nmdebug > wl typeof(#65535) U16 $nmdebug > wl typeof(#65535+1) U32 $nmdebug > wl typeof (-1) S16 $nmdebug > wl typeof ($1ffff) S32 $nmdebug > wl typeof(true) 8-234 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func typeof Returns the type of an evaluated expression as a string. Syntax typeof (expr) Formal Declaration typeof:str (expr:any) Parameters expr Any expression for which the resultant type is desired. Examples $nmdebug > wl typeof(1+2+3) U16 $nmdebug > wl typeof(#65535) U16 $nmdebug > wl typeof(#65535+1) U32 $nmdebug > wl typeof (-1) S16 $nmdebug > wl typeof ($1ffff) S32 $nmdebug > wl typeof(true) 8-234 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func typeof Returns the type of an evaluated expression as a string. Syntax typeof (expr) Formal Declaration typeof:str (expr:any) Parameters expr Any expression for which the resultant type is desired. Examples $nmdebug > wl typeof(1+2+3) U16 $nmdebug > wl typeof(#65535) U16 $nmdebug > wl typeof(#65535+1) U32 $nmdebug > wl typeof (-1) S16 $nmdebug > wl typeof ($1ffff) S32 $nmdebug > wl typeof(true) 8-234 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
func typeof Returns the type of an evaluated expression as a string. Syntax typeof (expr) Formal Declaration typeof:str (expr:any) Parameters expr Any expression for which the resultant type is desired. Examples $nmdebug > wl typeof(1+2+3) U16 $nmdebug > wl typeof(#65535) U16 $nmdebug > wl typeof(#65535+1) U32 $nmdebug > wl typeof (-1) S16 $nmdebug > wl typeof ($1ffff) S32 $nmdebug > wl typeof(true) 8-234 System Debug Standard Functions FINAL TRIM SIZE : 7.5 in x 9.
Table D-1.
Table D-1.
Table D-1. Predefined Environment Variables and Functions (continued) Name Type Description term_ldev env : u16 the ldev used for I/O term_locking env : bool enables disables terminal process queueing term_loud env : bool enables/disables output echoing to screen term_paging env : bool enables/disables =terminal screen paging term_width env : u16 width (in characters) of terminal output time env : str current time of day tr0 .. tr7 env : u32 temp registers tr0, tr1, tr2, ..
E Command Summary Standard Commands Window Commands : = ABORT ALIAS ALIASD[EL] ALIASINIT ALIASL[IST] B BA BAX BD BG BL BLG BLP BP BS BU BV C[ONTINUE] CLOSEDUMP CM CMDL[IST] CMG CMPB CMPD access to the command interpreter calculator, expression evaluation terminate dat/debug session define a user alias delete a command alias restore the pre-defined aliases list current command alias set breakpoint set breakpoint at an absolute CST address set breakpoint at an absolute CSTX address delete breakpoint(s) set
CMPE CMPF CMPH CMPJ CMPJA CMPJAX CMPJG CMPJLG CMPJLP CMPJP CMPJS CMPK CMPL CMPR DA DATAB DATABD DATABL DC DCA DCAX DCG DCLG DCLP DCP DCS DCU DD DDB DELETEALIAS DELETEB DELETEERR DELETEMAC DELETEVAR DEMO DIS DO E-2 enable the CM program window scroll the CM program window forwards home the CM program window jump the CM program window jump the CM program window to a CST segement jump the CM program window to a CSTX segement jump the CM program window to the group library jump the CM program window to the log
DPIB DPTREE DQ DR DS DSEC DUMPINFO DV DZ E[XIT] ENV ENVL[IST] ERR ERRD[EL] ERRL[IST] FC FCA FCAX FCG FCLG FCLP FCP FCS FCU FDA FINDPROC FOREACH FPMAP FT FUNCL[IST] FV FVA GB GD GE GETDUMP display a process's information block display the process tree display CM Q-relative display registers display CM S-relative display secondary storage relative display information about the open dump display virtual memory display real memory exit (predefined alias for C[ONTINUE]) set an environmental variable value displ
GF GH GK GL GR GRD GRE GRK GRL H[ELP] HIST[ORY] IF IGNORE INITCM INITNM KILL LB LD LE LEV LIST LISTREDO LF LH LJ LK LL LOADINFO LOADPROC LOC LOCL[IST] LOG LR LW MA MAC[RO] scroll group window forward home the group window kill the group window change the size of the group window change the radix for the group window disable the NM general registers window enable the NM general registers window kill the NM general registers window change the size of the NM general registers window print help print histor
MACD[EL] MACECHO MACL[IST] MACREF MACTRACE MAP MAPL[IST] MC MCA MCAX MCG MCLG MCLP MCP MCS MCU MD MDB MODD MODL MPEXL MPSW MQ MR MS MSEC MV MZ NM delete macro definition(s) enable echoing of each line of macro(s) list the macro definition(s) reset macro reference counts enable tracing for macro(s) open and map a file into virtual space list files opened by the MAP command modify code modify code in a CST segement modify code in a CSTX segement modify code in the group library modify code in the logon group
NMPJS NMPJU NMPK NMPL NMPR OPENDUMP PAUSE PIN jump the NM program window to the system library jump the NM program window to any (user) NM library kill the NM program window change the size of the CM program window change the radix of the CM program window open dump disc files for analysis pause (sleep) for seconds scroll the program window backwards disable the program window enable the program window scroll the program window forwards home the program window switch context to a specified process ju
QR RD RE RED change the radix of the CM frame window disable the CM register window enable the CM register window redraw the screen REDO REGLIST RESTORE RET[URN] S[S] SET SETALIAS SETENV SETERR SETLOC SETMAC SETVAR SB SD SE SF SH SHOWALIAS SHOWB SHOWCMD SHOWDATAB SHOWENV SHOWERR SHOWFUNC SHOWLOC SHOWMAC SHOWSET SHOWSYM RH RK RL RR redo a command after (optionally) editing it writes NM register values to a file in USE format restore macros or variables from a file return an optional value from a macro
SHOWVAR SYMCLOSE SYMF[ILES] SYMINFO SYML[IST] SYMOPEN SYMPREP predefined alias for VARL jump the CM stack window to a new location kill the CM stack window change the size of the CM stack window store macros or variables to a file change the radix of the CM stack window enable the NM special registers window disable the NM special registers window home the NM special registers window kill the NM special registers window change the size of the NM special registers window close a symbolic data file list the
UFC UFCA UFCAX UFCG UFCLG UFCLP UFCP UFCS UFCU UFDA UFVA UNMAP UNWIND UPD USE USENEXT TXE TXF TXH TXI TXJ TXK TXL TXS TXW UB UC UD UE UF UH UK UL UN UR UWA UWCA UWCAX enable the text window scroll text window forward home the text window information about the text window jump the text window kill the text window change the size of the text window shift text window to left or right allocate a new text window scroll user window backward mark the user window as current un-freeze code in the program file u
UWD UWDB UWL UWS UWQ UWV UWZ define define define define define define define a a a a a a a user user user user user user user window window window window window window window VAR VARD[EL] VARL[IST] VB VC VD VE VF VH VJ VI VK VL VN VR VW W WCOL WDEF WGRP WHELP WHILE WL WOFF WON WP WPAGE XL XLD XLL data segment relative CM DB-relative LDEV relative CM S-relative CM Q-relative Precision Architecture virtual address Precision Architecture real address define/list a user variable delete a user variable l
ZB ZD ZE ZF ZH ZJ ZK ZL ZR ZW scroll real memory window backward disable real memory window enable real memory window scroll real memory window forward home the real memory window jump the real memory window kill the real memory window change the size of the real memory window change the radix of the real memory window aim the real memory window Command Summary FINAL TRIM SIZE : 7.5 in x 9.
FINAL TRIM SIZE : 7.5 in x 9.
Index Special characters ! ? in variable names, 2-32 use, 2-37, 2-38 use, 2-38 fg use, 2-3 A Abbreviated Stack Trace, 3-6 Abbreviations for Radix, 2-2 ABORT Command, 4-9 Abort Current Process, 4-9 Absolute Code Pointers, 2-6 Absolute Code Segment Numbers relation to logical, 2-7 Absolute CST Segments, 2-7 Absolute CSTX Segments, 2-7 Absolute Memory Addressing, 2-26 abstolog Function, 8-7 Access to DEBUG XL, 4-94 ACPTR, 8-80 coerce to, 8-77 Address conversion, 8-29 entry, 2-35 of closest NM node point
IPSW, 4-164 list current, 4-19 maximum number of, 4-18 prede ned, full listing of, 4-16 prede ned, restoring, 4-16 PSW, 4-164 R28, 4-165 R29, 4-165, 4-167 R30, 4-167 RCTR, 4-165 recursive, 4-12 RET0, 4-165 RET1, 4-165 SR11, 4-166 ALIASINIT Command, 4-16 ALIASL[IST] Command, 4-19 Analyzing the dump, 9-3 AND Operator, 2-20 ARGn Environment Variable, 4-132 Argument Registers Native Mode, 4-132 Arithmetic Operands, 2-18 INT class, 2-18 pointers, 2-18 Arithmetic Operators, 2-15, 2-16 operands, 2-18 Arming Calls
address of NM, 8-119 cases where ignored, 4-42 CM breakpoint index, 8-42 CM, examples, C-16 CM instruction at breakpoint, 8-45 CM in translated code, C-12 data, deleting, 4-88 data, list, 4-91 data, on process stacks, 4-87 data, setting, 4-84 data, warning, 4-87 deleting, 4-43 global, 4-22 ignored, cases where, 4-87 listing, 4-50 NM breakpoint index, 8-121 NM instruction at breakpoint, 8-124 NM in translated code, C-14 process-local, 4-22 setting, 4-22 btow Function, 8-29 Building the dump, 9-2 Byte to Word
CMPJA Window Jump Command, 7-23 CMPJAX Window Jump Command, 7-23 CMPJG Window Jump Command, 7-23 CMPJLG Window Jump Command, 7-23 CMPJLP Window Jump Command, 7-23 CMPJP Window Jump Command, 7-23 CMPJS Window Jump Command, 7-23 CMPJ Window Jump Command, 7-23 CMPK Window Kill Command, 7-30 CMPL Window Lines Command, 7-33 cmproc Function, 8-54 cmproclen Function, 8-58 CMPR Window Set Radix Command, 7-38 CMPW Environment Variable, 4-134 CM Register Window, 6-8 cmseg Function, 8-63 cmstackbase Function, 8-65 cms
ALIASL[IST], 4-19 automatic repetition of, 4-132 B (Break), 4-22 BD, 4-43 BL, 4-50 Break, see B, 4-22 Calculator, 4-5 = (calculator), 4-5 : (CI), 4-3 CLOSEDUMP, 4-54 CM, 4-55 CMDL[IST], 4-57 CMG, 4-64 command list, 2-3 continuation character (&), 2-3 C[ONTINUE], 4-66 DATAB, 4-84 DATABD, 4-88 DATABL, 4-91 D (Display), 4-68 :DEBUG, 3-4 DEBUG, 4-94 de ning an alias for, 4-10 DELETExxx , 4-95 DEMO, 4-96 DIS, 4-99 DO, 2-45, 4-105 DPTREE, 4-109 DR, 4-111 DUMPINFO, 4-119 echoing of, 4-141, 4-142 ENV, 4-124 ENVL[IS
PIN, 4-347 PROCLIST, 4-349 PSEUDOMAP, 4-359 PURGEDUMP, 4-365 REDO, 2-45, 4-366 re-executing, 4-366 re-executing commands, 4-105 REGLIST, 4-368 :RESETDUMP, 3-12 RESTORE, 4-369 RETURN, 4-371 :RUN, 2-36 SET, 4-373 SETALIAS, 4-378 :SETDUMP, 3-7, 3-13 SETENV, 4-378 SETERR, 4-378 SETLOC, 4-378 SETMAC, 4-378 SETVAR, 4-378 SHOWALIAS, 4-379 SHOWB, 4-379 SHOWCMD, 4-379 SHOWDATAB, 4-379 SHOWENV, 4-379 SHOWERR, 4-379 SHOWFUNC, 4-379 SHOWLOC, 4-379 SHOWMAC, 4-379 SHOWMAP, 4-379 SHOWSET, 4-379 SHOWSYM, 4-379 SHOWVAR, 4-3
window, 7-1.
Continue Execution, 4-66 Control Registers, 4-114, 4-337 NM, 4-136 Control-Y, 2-44 Control-Y Handler, 4-3 Conversion Base Native Mode, 4-159 Conversions logical to absolute, 8-97 Converting Real to Virtual Addresses, 8-162 Converting String to Binary, 8-18 Coprocessor Con guration Register NM, 4-133 CPU Environment Variable, 4-136 Create a dump le, 4-212 Creating dump le set, 9-2 Critical Processes, 4-9 CRn Environment Variable, 4-136 CSTBASE Environment Variable, 4-138 CST De ned, 2-6 cst Function, 8-77 CS
DAT (Dump Analysis Tool), 1-2, 9-1 DATE Environment Variable, 4-138 DAT, nishing, 9-3 DAT, getting started, 9-2 DATINIT Files, 9-4 DAT Macros, 9-6 DAT Program where stored, 9-6 DAT restrictions, 9-5 DBDST Environment Variable, 4-139 DB DST Number, 4-139 DB Environment Variable, 4-139 DB Register DM, 4-139 DBUGINIT Initialization Files, 2-47 DCA Display Command, 4-68 DCAX Display Command, 4-68 DC Display Command, 4-68 DCG Display Command, 4-68 DCLG Display Command, 4-68 DCLP Display Command, 4-68 DCP Display
Delete Data Breakpoint, 4-88 delete modi cation, 4-313 Delete User De ned Variables, 4-438 DELETExxx Command, 4-95 Deleting an Alias, 4-14 Deleting Breakpoints, 4-43 deleting dump le set, 9-3 Deleting Items, 4-95 DEMO Command, 4-96 Demonstration Command, 4-96 Demonstrations of Debug, 4-96 di erences in DAT, 9-5 Direct Calls, 3-4 Disarming a Debug Call, 3-6, 3-12, 3-19, 3-24 Disassemble Assembly Instructions, 4-99 Disassembled Code listing to a le, 4-82 Disassembler NM, 4-164 Disc Data Display, 6-27 DIS Comm
DYING DEBUG Environment Variable, 4-140 Dynamic Loads, 4-244 Dynamic Procedure Calling, 8-127 DZ Display Command, 4-68 E EADDR (Extended Address), 2-9 eaddr Function, 8-84 ECHO CMDS Environment Variable, 4-141 Echoing of commands, 4-141 USE le commands, 4-142 Echoing of Macros, 4-279 ECHO SUBS Environment Variable, 4-142 ECHO USE Environment Variable, 4-142 EIEM Environment Variable, 4-142 EIRR Environment Variable, 4-142 Emulated Code, C-1 debugging, C-3 Emulation Mode, C-1 ending DAT, 9-3 Entering Compat
FPn, 4-146 FPSTATUS, 4-146 GETDUMP COMP ALGO, 4-146 HEXUPSHIFT, 4-146 ICSNEST, 4-147 ICSVA, 4-147 IIR, 4-147 INBASE, 4-148 IOR, 4-148 IPSW, 4-149 ISR, 4-151 ITMR, 4-151 IVA, 4-151 JOB DEBUG, 4-151 JUSTIFY, 4-151 LAST PIN, 4-151 LIST INPUT, 4-151 list of, 4-125 LIST PAGELEN, 4-153 LIST PAGENUM, 4-153 LIST PAGING, 4-153 LIST TITLE, 4-153 LIST WIDTH, 4-153 LOOKUP ID, 4-155 LW, 4-156 MACRO DEPTH, 4-157 MACRO LIMIT, 4-157 MACROS, 4-156 MAPDST, 4-157 MAPFLAG, 4-157 MARKERS, 4-157 MODE, 4-157 MONARCHCPU, 4-157 MPE
TERM WIDTH, 4-172 TIME, 4-172 TRACE FUNC, 4-173 TRn, 4-172 TRUE, 4-173 VARS, 4-173 VARS LIMIT, 4-173 VARS LOC, 4-173 VARS TABLE, 4-174 VERSION, 4-174 VPEn, 4-146 VW, 4-175 VWO, 4-175 VWS, 4-175 WIN LENGTH, 4-175 WIN WIDTH, 4-175 X, 4-175 ZW, 4-175 ENVL[IST] Command, 4-177 ERR Command, 2-44, 4-181 ERRD[EL] Command, 2-43, 4-182 ERRL[IST] Command, 4-183 ERRLIST Command, 2-43 errmsg Function, 8-87 Error Bailout, 4-224 Error Command Stack, 4-181 ERROR Environment Variable, 2-43, 4-142 Error Handling, 2-43 Error
coerce to string, 8-16 coerce to SYS pointer, 8-227 coerce to TRANS pointer, 8-232 coerce to unsigned 16-bit, 8-237 coerce to unsigned 32-bit, 8-239 coerce to USER library pointer, 8-242 conversion to ASCII, 8-9 evaluated, type of, 8-234 examples, 2-30 extract bits from, 8-22 Extended Address coerce expression to, 8-84 External Interrupt Enable Mask, 4-142 External Interrupt Request Register, 4-142 Extract Bits, 8-22 F Failures analysing with DAT, 9-1 analysing with SAT, 10-1 FALSE Environment Variable, 4-
bound, 8-26 btow, 8-29 cisetvar, 8-32 civar, 8-34 cmaddr, 8-37 cmbpaddr, 8-40 cmbpindex, 8-42 cmbpinstr, 8-45 cmentry, 8-47 cmg, 8-51 cmnode, 8-52, C-10 cmproc, 8-54 cmproclen, 8-58 cmseg, 8-63 cmstackbase, 8-65 cmstackdst, 8-66 cmstacklimit, 8-67 cmstart, 8-69 cmtonmnode, 8-73, C-10 cmva, 8-75 coercion, 8-1 cst, 8-77 cstx, 8-80 displaying, 4-208 dstva, 8-83 eaddr, 8-84 errmsg, 8-87 for nodes, C-10 grp, 8-89 hash, 8-92 lgrp, 8-94 listing, 4-208 logtoabs, 8-97 lptr, 8-99 lpub, 8-102 ltolog, 8-105 ltos, 8-107
GETDUMP COMP ALGO Environment Variable, 4-146 GE Window Enable Command, 7-14 GF Window Forward Command, 7-16 GH Window Home Command, 7-18 GK Window Kill Command, 7-30 Global Breakpoints, 4-22 Global Values changing, 2-32 Global Variables, 2-31 GL Window Lines Command, 7-33 GRD Window Disable Command, 7-12 GRE Window Enable Command, 7-14 GRH Window Home Command, 7-18 GRK Window Kill Command, 7-30 GRL Window Lines Command, 7-33 Group (of User) Window, 6-20 GRP De ned, 2-6 grp Function, 8-89 GR Window Set Radi
HISTORY Command, 4-220 History Command Stack, 2-45, 4-220, 4-240, 4-366 History Stack Index, 4-105 How to Debug a CM Program, 1-3 How to Debug a NM Program, 1-4 How to use DAT, 9-2 How to use SAT, 10-2 HPCICOMMAND Intrinsic, 4-3 HPDEBUG Intrinsic, 3-16 HPGETPROCPLABEL Intrinsic, 4-202 HPRESETDUMP Intrinsic, 3-19 HPSETDUMP Intrinsic, 3-21 HPSTACKDUMP Intrinsic, 3-2 I IA Register, 4-115, 4-338 ICS Base Virtual Address, 4-147 ICS Nest Count, 4-147 ICSNEST Environment Variable, 4-147 ICSVA Environment Variable
Justi cation windows and display, 4-151 JUSTIFY Environment Variable, 4-151 K KILL Command, 4-230 L LAST PIN Environment Variable, 4-151 LB Window Back Command, 7-9 LCPTR Type Class, 2-35 LDEV for I/O, 4-169 ldev.
LOADINFO Command, 2-8, 4-202, 4-241 Loading dump tapes, 9-2 Loading Libraries, 2-6 Loading Procedures (NM), 4-202 LOADPROC Command, 4-244 LOADPROC Intrinsic, 2-6 Local Variables, 2-31 list, 4-249 macros, 4-246 referencing from macros, 4-159 Locating NM Breakpoints, 8-119 LOC Command, 2-31, 4-246 LOCLIST Command, 4-249 LOG Command, 4-251 Log le Control, 4-251 Log les in SAT, 10-7 Logical AND, 2-20 Logical Code Address for CM, 4-134 Logical Code Pointers di erences between CM and NM, 2-8 Logical Code Pointer
as commands, 4-275 as functions, 4-274 current nested call level, 4-157 DAT, 9-6 de ne local variable, 4-246 de ning, 4-262 de ning an alias for, 4-10 deleting, 4-277 echoing of, 4-279 examples, 4-268 exit from, 4-371 limitations, 4-276 listing, 4-286 listing to a le, 4-297 list local variables, 4-249 macro body for name, 8-109 parameters, 4-274 referencing variables, 2-32, 4-159 reset reference count, 4-299 restoring from a le, 4-369, 4-382 tracing execution of, 4-304 MACROS Environment Variable, 4-156 Mac
nding address of, 4-157 MPEXL TABLE VA Environment Variable, 4-157 MPE XL X-Traps, 4-413 MPSW Command, 4-331 MQ Modify Command, 4-253 MR Command, 4-334 MSEC Modify Command, 4-253 MS Modify Command, 4-253 MULTI LINE ERRS Environment Variable, 4-158 Multiple Commands on Same Line, 2-3 Multiple Debug Processes, 4-402 multi Prompt, 2-4 MV Modify Command, 4-253 MZ Modify Command, 4-253 N Names of Variables, 2-31 Native Mode argument registers, 4-132 breakpoints in translated code, C-14 code path for an address,
nmentry Function, 8-130 nm le addresses, 9-5 nm le Function, 8-132 nm le in SAT, 10-7 NM INBASE Environment Variable, 4-159 NM library les, 9-5 nmmod Function, 8-134 nmnode Function, 8-136, C-10 NM OUTBASE Environment Variable, 4-159 nmpath Function, 8-138 NMPB Window Back Command, 7-9 NMPD Window Disable Command, 7-12 NMPE Window Enable Command, 7-14 NMPF Window Forward Command, 7-16 NMPH Window Home Command, 7-18 NMPJG Window Jump Command, 7-23 NMPJLG Window Jump Command, 7-23 NMPJLP Window Jump Command,
>> Operator, 2-22 Operator Precedence, 2-30 Operators, 2-15 boolean, 2-19 concatenation, 2-29 relational, 2-22 table of, 2-15 OR Operator, 2-20 OUTBASE Environment Variable, 4-160 Output paging, 4-171 terminal, suppressing, 4-171 Output Conversion Base Native Mode, 4-159 Output Display, 2-1 Output Display Base, 4-135 Output Filtering, 4-144 Output Line length of, 4-172 P Page Length list le, 4-153 Page Number of List File, 4-153 Paging for List File, 4-153 Paging Output, 4-171 Pascal Data Types, 5-1 Path
PJ Window Jump Command, 7-23 PK Window Kill Command, 7-30 PL Window Lines Command, 7-33 Pointer coerce expression to USER library, 8-242 Pointer Arithmetic, 2-18 Pointer Comparisons, 2-22 Pointer Data Types, 2-5 logical code, 2-6 Pointer Literals, 2-13 examples, 2-14 Pointers absolute code, 2-6 coerce expression to long, 8-99 coerce expression to LPUB, 8-102 coerce expression to PROG pointer, 8-154 coerce expression to PUB pointer, 8-159 coerce expression to SYS, 8-227 coerce expression to TRANS, 8-232 comp
Processor Status Word modify, 4-331 Process Related Information, 4-347 Process Stacks breakpoints on, 4-87 Process State for PIN, 8-157 Process Termination Abort, 4-9 Process Tree printing, 4-109 PROCLIST Command, 4-349 PROG De ned, 2-6 prog Function, 8-154 PROGNAME Environment Variable, 4-163 Program Counter CM, 6-13 NM, 6-15 Program Counter O set NM, 4-161 Program Counter Register, 4-115, 4-338 as logical code address, 4-161 Program Counter SID NM, 4-161 Program Counter sid.
QH Window Home Command, 7-18 QJ Window Jump Command, 7-23 QK Window Kill Command, 7-30 QL Window Lines Command, 7-33 QM Window Address Mode Command, 7-35 Q Register (CM), 4-165 QR Window Set Radix Command, 7-38 Question Mark, 2-37, 2-38 for entry address, 2-35 QUIET Environment Variable, 4-165 Quote Marks, 2-14 within quoted strings, 2-14 Q Window, 6-18 R R0 Environment Variable, 4-165 Radix abbreviations, 2-2 input conversion, 4-148 RCTR Environment Variable, 4-165 RD Window Disable Command, 7-12 Real Add
Reset Reference Count, 4-299 Resetting the Error Stack, 2-43 RESTORE Command, 2-46, 4-369 Restore Prede ned Aliases, 4-16 Restoring saved macros and variables, 4-369 Restricting Search Path, 2-36 restrictions DAT, 9-5 SAT, 10-5 Resume User Program, 4-185 RET0 Environment Variable, 4-165 RET1 Environment Variable, 4-165 RETURN Command, 4-371 Return Pointer (NM), 4-165 Return Register 1 (NM), 4-165 Return Register Zero (NM), 4-165 RE Window Enable Command, 7-14 RH Window Home Command, 7-18 Right-Justi ed Data
to separate commands, 4-3 S Environment Variable, 4-166 Set a Breakpoint, 4-22 SETALIAS Command, 4-378 SET Command, 4-373 Setdump Attribute inheriting, 3-6 :SETDUMP CI Command, 3-7 :SETDUMP Command, 3-13 SETDUMP Intrinsic, 3-7, 3-26 SETENV Command, 4-378 SETERR Command, 4-378 SETLOC Command, 4-378 SETMAC Command, 4-378 Set Membership, 8-216 Set Values user options, 4-373 SETVAR Command, 4-378 SE Window Enable Command, 7-14 SF Window Forward Command, 7-16 Shift Amount Register (NM), 4-166 Shift Operand, 2-22
STACKDUMPs le system error Intrinsic, 3-29 Stack Frame Window, 6-18 Stack Limit CM, 8-67 Stack Marker Level, 4-232 Stack Pointer Register (NM), 4-167 Stack Starting Address (NM), 8-143 Stack Starting Virtual Address CM, 8-65 Stack Trace abbreviated, 3-6 display, 4-405 full dual, 3-7 producing a full, 3-29 writing to a le, 3-33 stack traces in NM, 9-5 Stack Unwind Information for return pointer, 4-165 Stack Window, 6-19 Standalone Analysis Tool, 10-1.
strrpt Function, 8-201 strrtrim Function, 8-202 strup Function, 8-203 strwrite Function, 8-204 Substitutions command line, 2-38, 4-134, 4-142 Substring Delete, 8-186 Substring of Source String, 8-183 Suppressing Terminal Output, 4-171 S Window, 6-19 Switch Pointers/Registers, 4-347 symaddr Function, 8-211 symbol access in DAT, 9-5 Symbol De nitions accessing, 5-5 creating, 5-5 Symbolic Access, 5-1, 5-24 examples, 5-1 Symbolic Access Facility, 4-395 Symbolic Data Type File close, 4-385 debugging, 4-387 dump
TCA Command, 4-397 TCAX Command, 4-397 TCB, 4-143 tcb Function, 8-230 TCB (Task Control Block), 4-347 real address of, 8-230 TC Command, 4-397 TCG Command, 4-397 TCLG Command, 4-397 TCLP Command, 4-397 TCP Command, 4-397 TCS Command, 4-397 TDB Command, 4-397 TD Command, 4-397 TELESUP Account, 9-6 Temporary Registers (NM), 4-172 TERM Command, 4-402 Terminal Display Features, 4-133 Terminal Locking via semaphore, 4-171 Terminal Output, 2-46 paging, 4-171 suppressing, 4-171 Terminals for demonstrations, 4-96 T
TXF Window Forward Command, 7-16 TXH Window Home Command, 7-18 TXI Window Information Command, 7-21 TXJ Window Jump Command, 7-23 TXK Window Kill Command, 7-30 TXL Window Lines Command, 7-33 TXS Window Shift Command, 7-41 TX Window, 6-28 TXW Window Command, 7-45 Type Classes for Data Types, 2-9 Type of Component, 8-221 Type of Evaluated Expression, 8-234 typeof Function, 8-234 Type of Variables, 2-31 U U16 De ned, 2-4 u16 Function, 8-237 U32 De ned, 2-4 u32 Function, 8-239 UB Window Back Command, 7-9 UC Wi
DUMP, 9-1 UWA Window Allocate Command, 7-42 UWCA Window Allocate Command, 7-42 UWCAX Window Allocate Command, 7-42 UWDB Window Allocate Command, 7-42 UWD Window Allocate Command, 7-42 U Window, 6-23 UWm Window Allocate Command, 7-42 UWQ Window Allocate Command, 7-42 UWS Window Allocate Command, 7-42 UWV Window Allocate Command, 7-42 UWZ Window Allocate Command, 7-42 V vainfo Function, 8-245 VAR Command, 2-31, 4-434 VARD Command, 2-31 VARDEL Command, 4-438 Variable Delete, 4-438 Variable List, 4-440 Variabl
Virtual to Real Conversion, 8-248 Virtual Window Address, 4-175 o set portion, 4-175 sid portion, 4-175 VI Window Information Command, 7-21 VJ Window Jump Command, 7-23 VK Window Kill Command, 7-30 VL Window Lines Command, 7-33 VN Window Rename Command, 7-37 VR Window Set Radix Command, 7-38 vtor Function, 8-248 VW Environment Variable, 4-175 V Window, 6-24 VWO Environment Variable, 4-175 VWS Environment Variable, 4-175 VW Window De ne New Command, 7-45 W w B Window Back Command, 7-9 WCOL, 4-442 w C Window
NMPE, 7-14 NMPF, 7-16 NMPH, 7-18 NMPJ, 7-23 NMPJG, 7-23 NMPJLG, 7-23 NMPJLP, 7-23 NMPJP, 7-23 NMPJS, 7-23 NMPJU, 7-23 NMPK, 7-30 NMPL, 7-33 NMPR, 7-38 on-line help, 4-453 PB, 7-9 PD, 7-12 PE, 7-14 PF, 7-16 PH, 7-18 PJ, 7-23 PJA, 7-23 PJAX, 7-23 PJG, 7-23 PJLG, 7-23 PJLP, 7-23 PJP, 7-23 PJS, 7-23 PJU, 7-23 PJV, 7-23 PK, 7-30 PL, 7-33 PR, 7-38 QB, 7-9 QD, 7-12 QE, 7-14 QF, 7-16 QH, 7-18 QJ, 7-23 QK, 7-30 QL, 7-33 QM, 7-35 QR, 7-38 RD, 7-12 RE, 7-14 RED, 7-4 RH, 7-18 RK, 7-30 RL, 7-33 RR, 7-38 SB, 7-9 SD, 7-1
UL, 7-33 UN, 7-37 UR, 7-38 UWA, 7-42 UWCA, 7-42 UWCAX, 7-42 UWD, 7-42 UWDB, 7-42 UWm , 7-42 UWQ, 7-42 UWS, 7-42 UWV, 7-42 UWZ, 7-42 VB, 7-9 VC, 7-11 VD, 7-12 VE, 7-14 VF, 7-16 VH, 7-18 VI, 7-21 VJ, 7-23 VK, 7-30 VL, 7-33 VN, 7-37 VR, 7-38 VW, 7-45 w B, 7-9 w C, 7-11 w D, 7-12 WDEF, 7-5 w E, 7-14 w F, 7-16 WGRP, 7-6 w H, 7-18 w I, 7-21 w J, 7-23 w K, 7-30 w L, 7-33 w M, 7-35 WM, 7-35 w N, 7-37 WOFF, 7-7 WON, 7-8 w R, 7-38 w W, 7-45 ZB, 7-9 ZD, 7-12 ZE, 7-14 ZF, 7-16 ZH, 7-18 ZJ, 7-23 ZK, 7-30 ZL, 7-33 ZR, 7
general register (GR), 6-1 group, 6-20 group (G), 6-1 home, return to, 7-18 information, 7-21 jump to address, 7-23 kill window, 7-30 ldev, 6-27 LDEV, address where aimed, 4-156 ldev (L), 6-1 lines, setting, 7-33 memory, 6-26 memory (Z), 6-1 NM program, address where aimed, 4-158 program, 6-13 Program, 6-15 program (OCT), 6-17 program (P), 6-1 radix set, 7-38 real, 6-7 redraw, 7-8 register, 6-8 register (R), 6-1 rename, 7-37 scroll back, 7-9 scroll forward, 7-16 shift left/right, 7-41 special registers, 6-1
XLIBRARY Trace Trap, 4-420 XLL Command, 4-458 XSYSTEM Trace Trap, 4-420 Z ZB Window Back Command, 7-9 ZD Window Disable Command, 7-12 Zero Register (NM), 4-165 ZE Window Enable Command, 7-14 ZF Window Forward Command, 7-16 ZH Window Home Command, 7-18 ZJ Window Jump Command, 7-23 ZK Window Kill Command, 7-30 ZL Window Lines Command, 7-33 ZR Window Set Radix Command, 7-38 ZW Environment Variable, 4-175 Z Window, 6-26 Z Window Address, 4-175 ZW Window Command, 7-45 Index-38 FINAL TRIM SIZE : 7.5 in x 9.