wJ [ System Debug Reference Manual ] MPE/iX 5.0 Documentation
System Debug Reference Manual
wJ
Window jump. Jumps window to the specified address.
Syntax
PJ [logaddr] Program file
PJG [logaddr] Group library
PJP [logaddr] Account library
PJLG [logaddr] Logon group library
PJLP [logaddr] Logon account library
PJS [logaddr] System library
PJU [fname logaddr] User library
PJV [virtaddr] Any virtual address
PJA [absaddr] Absolute CST
PJAX [absaddr] Absolute CSTX
CMPJ [logaddr] Program file
CMPJG [logaddr] Group library
CMPJP [logaddr] Account library
CMPJLG [logaddr] Logon group library
CMPJLP [logaddr] Logon account library
CMPJS [logaddr] System library
CMPJA [absaddr] Absolute CST
CMPJAX [absaddr] Absolute CSTX
NMPJ [logaddr] Program file
NMPJG [logaddr] Group library
NMPJP [logaddr] Account library
NMPJLG [logaddr] Logon group library
NMPJLP [logaddr] Logon account library
NMPJS [logaddr] System library
NMPJU [fname logaddr] User library
QJ [dst.off] CM Frame, Q relative
SJ [dst.off] CM Stack, S relative
VJ [virtaddr] [win_number] Virtual window
ZJ [realaddr] Real memory window
LJ [Ldev.off] LDEV window
TXJ [record_number] Text window
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) specifies three
necessary items:
1. The logical code file (PROG, GRP, SYS, and so
on).
2. NM: the virtual space ID number (SID).
CM: the logical segment number.
3. NM: the virtual byte offset within the space.
CM: the word offset within the code segment.
Logical code addresses can be specified in various
levels of detail:
* As a full logical code pointer (LCPTR)
PJ procname+20 Procedure name lookups return
LCPTRs.
PJ pw+4 Predefined ENV variables of type
LCPTR.
PJ SYS(2.200) Explicit coercion to a LCPTR type.
* As a long pointer (LPTR)
PJ 23.2644 sid.offset or seg.offset
The logical file is determined based on the command
suffix:
PJ implies PROG
PJG implies GRP
PJS implies SYS, and so on.
* As a short pointer (SPTR)
PJ 1024 offset only
For NM, the short pointer offset is converted to a
long pointer using the function STOLOG, which looks
up the SID of the loaded logical file. This is
different 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 file are used to
build an LCPTR.
The search path used for procedure name lookups is based
on the command suffix letter:
PJ Full search path:
NM: PROG, GRP, PUB, USER(s), SYS
CM: PROG, GRP, PUB, LGRP, LPUB, SYS
PJG Search GRP, the group library.
PJP Search PUB, the account library.
PJLG Search LGRP, the logon group library.
PJLP Search LPUB, the logon account library.
PJS Search SYS, the system library.
PJU Search USER, the user library.
For a full description of logical code addresses, refer
to the section "Logical Code Addresses" in chapter 2.
fname PJU, CMPJU, and NMPJU only. The file name of the NM
USER library. Multiple NM libraries can be bound with
the XL= option on a RUN command. For example:
:RUN NMPROG; XL=LIB1,LIB2.TESTGRP,LIB3
In this case it is necessary to specify the desired NM
USER library. For example:
PJU lib1 204c
PJU lib2.testgrp test20+1c0
If the file name is not fully qualified, then the
following defaults are used:
Default account: the account of the program file.
Default group: the group of the program file.
virtaddr The virtual window (V) can be aimed at any Precision
Architecture space and offset address. Virtaddr can be
a short pointer, a long pointer, or a full logical code
pointer.
absaddr PJA, PJAX, CMPJA, CMPJAX control the CM program window.
A full CM absolute code address specifies three
necessary items:
Either the CST or the CSTX
The absolute code segment number
The CM word offset within the code segment
Absolute code addresses can be specified in two ways:
* As a long pointer (LPTR)
PJA 23.2644 Implicit CST 23.2644
PJAX 5.3204 Implicit CSTX 5.3204
* As a full absolute code pointer (ACPTR)
PJA CST(2.200) Explicit CST
coercion
PJAX CSTX(2.200) Explicit CSTX
coercion
PJAX logtoabs(prog(1.20)) Explicit absolute
conversion
The search path used for procedure name lookups is based
on the command suffix letter:
PJA GRP, PUB, LGRP, LPUB, SYS
PJAX PROG
dst.off The stack frame (Q) and top of stack (S) windows can be
aimed at any data segment and offset.
ldev.off The LDEV window can be aimed at a disk ldev.byte-offset.
win_number You may specify which virtual window is the jump window,
if there is more than one window.
realaddr The real memory window (Z) can be aimed at any real
address. If no address is given, the address used is
the address to which the window previously was pointed
(if any).
record_number The text file record number.
Examples
$nmdebug > pj 200
Jump to the program file at offset 200. A logical address is expected as
the value for this command. Remember that when only an offset is
specified 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 file at the offset indicated by register R2. As in
the above example, when only an offset is given for a logical address,
the space (SID) for the program file is assumed.
$nmdebug > pjv r2
Jump to the offset indicated by register R2. The space is determined by
using the appropriate space register. A STOL conversion is performed to
accomplish this.
$nmdebug > pjs r2
Jump to the system library (NL.PUB.SYS) at the offset indicated by
register R2.
%cmdebug > pjg 2.200
Jump to the group library at logical segment 2 at an offset of 200.
$nmdebug > cmpj cmaddr("?fopen")
Jump the CM program window to the entry point for the fopen procedure.
Note that since we are in native mode, the CMADDR function must be used
to look up the address of CM procedures.
%cmdebug > nmpj cmtonmnode(?fopen)
Jump the NM program window to the nearest translated code node point
associated with the CM procedure fopen. Refer to appendix C for a
discussion of CM object code translation, node points, and breakpoints in
translated CM code.
%cmdebug > SJ 12.200
Jump the stack window to data segment 12 at an offset of 200.
$nmdebug > vw c0.100 /* Create a new virtual window at c0.100
$nmdebug > vj c0.200 /* Jump the window to c0.200
$nmdebug > vj c0.300 /* Jump the window to c0.300
$nmdebug > vj /* Jump to previous location (c0.200)
$nmdebug > vh /* Jump to home location (c0.100)
The end result is to place the current virtual window at 100 (its "home"
location).
Limitations, Restrictions
none
MPE/iX 5.0 Documentation