HP 3000 Manuals

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