ENV (continued) [ System Debug Reference Manual ] MPE/iX 5.0 Documentation
System Debug Reference Manual
ENV (continued)
ISR U32 (nmreg) r dM
NM interrupt space register. (Alias for CR20)
ITMR U32 (nmreg) r dM
NM interval timer register. (Alias for CR16)
IVA U32 (nmreg) r dM
NM interrupt vector address. (Alias for CR14)
JOB_DEBUG BOOL (system) rW
A system wide flag 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). If this variable
is set, and a job does call Debug, upon entry the
CONSOLE_IO variable is set to TRUE and the TERM_LDEV
variable is set to the console port (LDEV 20).
This variable is available only in Debug.
JUSTIFY STR (io) rw *
This variable controls the form justification used when
numeric values are displayed in the windows or from the
Display commands. This variable may take on one of two
quoted literal values: "LEFT" or "RIGHT". When
right-justified, values can be blank or zero filled
(refer to the FILL variable). Decimal values are always
left-justified in windows, despite this setting. The
default value is "RIGHT".
LAST_PIN U16 (misc) r
For DAT, this is the last PIN that was running at dump
time (as found in SYSGLOB). For Debug, this variable is
the PIN on whose stack the debugger is running.
LIST_INPUT U16 (io) rw
When LIST_INPUT is set, all user input lines are written
into any currently opened list file (refer to the LIST
command). When ECHO_USE is set, those lines that are
input from the USE file are always displayed to the list
file, even if LIST_INPUT is disabled. The default value
is TRUE.
LIST_PAGELEN U16 (io) rw *
The page length (in lines) of the list file (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.
LIST_PAGENUM U16 (io) r
The current page number of the list file (refer to the
LIST command). When a list file 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.
LIST_PAGING BOOL (io) r *
When LIST_PAGING is set, output to the list file (refer
to the LIST command) is paged (based on LIST_PAGELEN).
In addition, the LIST_TITLE is written at the top of
each new page. The default value for this variable is
TRUE.
LIST_TITLE STR (io) rw *
When the LIST_PAGING variable is enabled, this
LIST_TITLE is written to the top of each new page in the
list file (refer to the LIST command). The default
LIST_TITLE is displayed below, followed by the output it
produces:
'"Page: " list_pagenum:"d" " " version " " date " " time'
Page: 1 DAT-XL 9.00.00 FRI, FEB 13, 1987 2:22 PM
The variables in the title are evaluated each time the
title is written to the list file.
LIST_WIDTH U16 (io) rw *
The width (in number of characters) to be used for the
list file (refer to the LIST command). This number must
be in the range 1-132, and is 80 characters by default.
Lines written to the list file that are longer than the
LIST_WIDTH length are not truncated; instead they are
split, with the extra data placed on the following line.
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.
PROCEDURES Search local or exported procedures
in the System Object Module symbols.
ALLPROC Search local/exported/nested
procedures in the System Object
Module symbols.
EXPORTSTUB Search export stubs in the System
Object Module symbols.
DATAANY Search exported or local data System
Object Module symbols.
DATAUNIV Search exported data System Object
Module symbols.
DATALOCAL Search local data System Object
Module symbols.
LSTPROC Search exported level 1 procedures
in the LST.
LSTEXPORTSTUB Search export stubs in the LST.
ANY Search for any type of symbol in the
System Object Module symbols.
The default is LSTPROC. Note that it is noticeably
slower to look up symbols from the System Object Module
symbol table. For additional information, see the
section "Procedure Names" in chapter 2, the PROCLIST
command, and the NMADDR function.
LW LPTR (win) r
The address (as a long pointer) where the LDEV window is
aimed. The value returned is interpreted as
ldev.offset.
MACROS 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.
MACROS_LIMIT U16 (limits) r
MACROS_LIMIT is a compile time constant that defines the
absolute maximum size of the macro table. The product
must be recompiled and redistributed to increase this
absolute capacity.
MACRO_DEPTH U16 (cmd) r
MACRO_DEPTH tracks the current nested call level for
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.
MAPDST U16 (cmreg) r
This variable contains the mapping DST number for CM CST
expansion.
MAPFLAG U16 (cmreg) r
MAPFLAG indicates the mapping of the current CM segment,
running under CST expansion. If MAPFLAG = 0, the
current CM segment is logically mapped. If MAPFLAG = 1,
the current CM segment is physically mapped.
MARKERS STR (win) rw *
The MARKERS variable selects the type of video
enhancement which is used to flag stack markers in the
CM Q (frame) and S (stack) windows. The following
string literals are valid: "INVERSE", "HALFINV",
"BLINK", "ULINE", and "FEABLE". The default is "ULINE".
MODE STR (misc) r This variable contains either "NM" if you
are in NMDebug, or "CM" if in cmdebug.
MONARCHCPU U16 (misc) r d
This variable contains the number of the Monarch
processor.
MULTI_LINE_ERRS U16 (cmd) rw *
When a user's multiple line input contains an error, it
is sometimes desirable to limit the quantity of error
output generated. In particular this variable controls
how much of the user's original input line is displayed
in the error message:
1 Display the single input line that contains the
error.
2 Display all lines up to and including the line
with the error.
3 Display all input lines (up to, including and
after) the error.
The default value is 2. Any value larger than 3 is
interpreted as a 3.
NMPW LCPTR (win) r
The logical code address where the NM program window is
aimed.
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 specified. The following values are allowed:
% or OCTAL
# or DECIMAL
$ or HEXADECIMAL
The names may be abbreviated to as little as a single
character.
The default value is $ (hex). Refer to the SET command
for an alternate method of setting this variable.
NM_OUTBASE STR (io) rw *
When in NM (nmdat or nmdebug), all numbers printed will
be this base, unless otherwise indicated (refer to the
SET command). The following values are allowed:
% or OCTAL
# or DECIMAL
$ or HEXADECIMAL
The names may be abbreviated to as little as a single
character.
The default value is $ (hex). Refer to the SET command
for an alternate method of setting this variable.
NONLOCALVARS BOOL (cmd) rw
When NONLOCALVARS is FALSE (default), macro bodies can
only reference local variables that are declared locally
within the current macro. When NONLOCALVARS is TRUE, a
macro body can reference a local variable within another
macro that called it. Setting this variable is useful
when a macro is too large for the current macro size
restrictions and must be broken into several pieces.
The first piece can call the subsequent pieces without
passing all of the local variables as parameters.
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.
PC LPTR (nmreg) r dm
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).
PCOB U32 (nmreg) r dm
NM program counter offset (next in pipeline queue).
PCOF U32 (nmreg) r dm
NM program counter offset (first in pipeline queue).
PCQB LPTR (nmreg) r dm
NM program counter sid.offset (next in pipeline queue).
(Alias for CR18)
PCQF LPTR (nmreg) r dm
NM program counter sid.offset (first in pipeline queue).
(Alias for CR17)
PCSB U32 (nmreg) r dm
NM program counter sid (next in pipeline queue).
PCSF U32 (nmreg) r dm
NM program counter sid (first in pipeline queue).
PID1 - PID4 U16 (nmreg) r dM
NM protection ID registers. (Alias for CR8, CR9, CR12,
CR13.) The format of the PID registers is as follows:
1 1 3
0 5 6 1
----------------------------------------------------------------
| <reserved> | Protection ID |WD|
----------------------------------------------------------------
<reserved> The top 16 bits are undefined for
this register.
Protection ID The protection ID number.
WD Write disable bit (1 = read only, 0
= write enabled)
System Debug displays these registers in two formats:
PID1=030e=0187(W)
The first 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 off. That
is, write capability is enabled. When the WD bit is on,
an (R) is displayed indicating Read access.
PIN U16 (misc) r
The current process identification 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.)
PRIV U16 (nmreg) r dM
Current privilege level (low two bits of PCOF).
PRIV_USER 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.
Privileged users may alter the value of this variable if
desired to supply a "safe" environment.
In DAT, this variable is always TRUE.
PROGNAME STR (misc) r
This variable contains the name of the tool that is
being run. It is either 'dat' or 'debug'.
PROMPT STR (io) rw
Current user prompt. It is defined as a quoted string
with the same syntax and options as the WL command. The
default prompt is:
'cmdnum " (" pin ") " mode progname " " filter "> "'
The variables in the prompt are evaluated each time the
prompt is displayed.
PSP U32 (nmreg) r d
Previous SP. This is not really a register; it is
computed based on the current SP and size of the current
frame.
PSTMT BOOL (misc) rw *
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.
PSW U32 (nmreg) r dM
Processor status register (alias for IPSW and CR22).
Refer to the IPSW environment variable for a complete
description of this variable.
PW LCPTR (win) r
The address (as a logical code address) where the
(current) program window is aimed.
PWO SPTR (win) r
The offset where the (current) program window is aimed.
PWS U32 (win) r
The SID (NM) or SEG (CM) where the (current) program
window is aimed.
Q U16 (cmreg) r dm
This is the CM Q register. The value in this register
is relative to the CM DB register.
QUIET_MODIFY U16 (io) rw *
When this variable is FALSE (the default value), all
modifications to registers and memory cause the current
value of the item to be displayed. If the variable is
set to TRUE, all modifications are performed quietly.
Quiet modifications are useful in macros and breakpoint
command lists.
R0 U32 (nmreg) r d
NM register 0; the constant 0 (zero).
R1 - R31 U32 (nmreg) rwdm
NM general registers. Many of these registers have
aliases. Refer to the DR command for a complete list.
RCTR U32 (nmreg) r dM
NM recovery counter register. (Alias for CR0)
RET0 U32 (nmreg) r dm
NM return register 0 (alias for R28). This register is
used by the language compilers to return function
results.
RET1 U32 (nmreg) r dm
NM return register 1 (alias for R29). This register is
used by the language compilers to return function
results.
RP U32 (nmreg) r d
NM return pointer. This value is determined based on
stack unwind information. It may be the contents of R2
or it may be the return address stored somewhere in the
NM stack. Note that RP is not an alias for R2.
S U16 (cmreg) r dm
CM S (stack) register. The value in this register is
relative to the CM DB register.
SAR U16 (nmreg) r dm
NM shift amount register. (Alias for SR11)
SDST U16 (cmreg) r dm
DST number of the CM stack.
SL U32 (nmreg) r dm
NM static link register. (Alias for R29)
SP U32 (nmreg) r dm
NM stack pointer register. (Alias for R30)
SR0 - SR7 U32 (nmreg) r dM
NM space registers 0 - 7.
STATUS U16 (cmreg) r dm
CM status register. This register has the following
format:
1 1 1 1 1 1
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
---------------------------------
|M|I|T|R|O|C|CC | Segment # |
---------------------------------
M bit 1 if program is privileged
0 if program is in user mode
I bit 1 if external Interrupts are enabled
0 if not
T bit 1 if user Traps are enabled
0 if not
R bit 1 if right stack operation pending
0 if left stack operation pending
O bit 1 if Overflow bit set (not set if user
traps enabled)
0 if not
C bit 1 if Carry bit set
0 if not
CC bits 01 if CCL (This is the condition code
value)
10 if CCE
00 if CCG
System Debug display this register with two formats:
STATUS=%100030=(Mitroc CCG 030)
The first 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 off.
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.
SYSVERSION STR (nmreg) r
The version of the operating system (as found in
SYSGLOB).
This variable is currently a null string in DAT.
TERM_KEEPLOCK BOOL (io) rw
If this variable is set, the terminal semaphore is not
released when the process is resumed by Debug. The
default for this variable is FALSE. If the process dies,
the terminal semaphore is automatically released. If
the TERM NEXT command is issued or the value of
TERM_LOCKING is changed, this variable is reset to
FALSE.
This variable is available only in Debug.
TERM_LDEV U16 (io) rW
This variable contains the logical device number (LDEV)
to use for I/O. Debug determines this value by looking
up the LDEV for the session.
If the ENV command is used to alter this value, Debug
attempts to allocate the indicated LDEV. If the LDEV is
already allocated (that is, in use by another session),
an error status is returned. If the user has privileged
mode (PM) capabilities, the allocation check may be
bypassed by specifying a negative LDEV. In this case,
all security and validity checking is bypassed.
Non-Preemptive send_io calls are done to the specified
LDEV without question.
When Debug is entered from a job (this is possible when
the HPDEBUG intrinsic is used), this variable is not
used. Rather, Debug performs I/O to the job's standard
list file ($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. It takes one parameter, the LDEV.
_______________________________________________________
This variable is not available in DAT.
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.
The TERM_LDEV variable is not used to determine which
semaphore to attempt to lock; rather, the session number
is used for this purpose. There is one semaphore per
session. If a process enters Debug with its I/O from
the system console (that is, the CONSOLE_IO variable was
set to TRUE at entry), a single console semaphore is
used.
Altering the value of the CONSOLE_IO variable or the
TERM_LDEV variable does _not affect which semaphore is
used for terminal locking.
This variable is not available in DAT.
TERM_LOUD BOOL (io) rw *
If this variable is clear, all output to the terminal is
suppressed with the exception of prompts and error
messages. This is useful when listing large amounts of
data to a list file so that you do not see it on your
screen. The default for this variable is TRUE.
TERM_PAGING BOOL (io) rw *
If this variable is set, all output is paged. That is,
after each full screen of output, System Debug pauses.
At that point the user is prompted with the question
"MORE?". Any response that does not begin with the
letter "Y" or "y" will cause the user to be returned to
the System Debug prompt (any pending output is flushed).
This variable may also be set with the SET MOREON/SET
MOREOFF commands. The default value is FALSE.
TERM_WIDTH U16 (io) rw *
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.
TIME STR (misc) r
The current time of day in the format: "5:25 PM".
TR0 - TR7 U32 (n*eg) r dM
NM "temp" registers (alias for CR24..CR31).
TRACE_FUNC U16 (cmd) rw
Setting this variable allows you to observe function
calls and their parameters. The current values and
meanings are:
0 Trace is off.
1 Trace EXIT from functions.
2 Trace ENTRY and EXIT from functions.
3 Trace function PARAMETERS as well as ENTRY and
EXIT.
TRUE BOOL (const) r
The constant "TRUE".
VARS U16 (limits) rw
The VARS limit determines the maximum number of
variables that can be defined by the VAR command. The
VARS limit must be set (changed from the default) before
the first variable is defined. The VARS limit is
automatically increased to the nearest prime number.
The combined sum of the VARS and VARS_LOC limits must be
less than or equal to the value of VARS_LIMIT.
VARS_LIMIT U16 (limits) r
VARS_LIMIT is the compile time constant that defines the
absolute maximum size of the variable table. The
product must be recompiled and redistributed to increase
this absolute capacity. The combined sum of the VARS
and VARS_LOC limits must be less than or equal to the
value VARS_LIMIT.
VARS_LOC U16 (limits) rw
The VARS_LOC limit determines the maximum number of
local variables that can be defined. Local variables
are explicitly defined by the LOC command, and are
implicitly defined for macro parameters. The VARS_LOC
limit must be set before any local variable is defined.
The combined sum of the VARS and VARS_LOC limits must be
less than the value VARS_LIMIT.
VARS_TABLE U16 (limits) rw
VARS_TABLE tracks the total number of entries in the
variable table, which is defined to be the sum of
variables VARS plus VARS_LOC. The VARS_TABLE size must
always be less than or equal to VARS_LIMIT.
VERSION STR (misc) r
The version ID of the program, for example, "DAT XL
A.00.00".
VW LPTR (win) r
The virtual address where the current virtual window is
aimed.
VWO SPTR (win) r
The offset portion for the virtual address where the
current virtual window is aimed.
VWS U32 (win) r
The sid portion for the virtual address where the
current virtual window is aimed.
WIN_LENGTH U32 (io) rw *
Specifies the number of lines available on the display
terminal. The default value is #24. Values grater than
or less than the actual number of terminal lines may
cause unpredictable screen output.
WIN_WIDTH U32 (io) rw *
Specifies the number of columns available on the display
terminal. The default value is #80. Modification of
this value is permitted, but the value is ignored.
X U16 (c*eg) r dm
The CM X (index) register.
ZW U32 (win) r
The real address where the Z window is aimed.
Examples
%cmdebug > env autoignore true
Set the environment variable AUTOIGNORE to TRUE.
$nmdebug > env cmdlinesubs true
Set the variable CMDLINESUBS to TRUE. This enables command line
substitutions, that may have been disabled while macros were being read
in from a file.
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.
MPE/iX 5.0 Documentation