HPlogo System Debug Reference Manual: HP 3000 MPE/iX Computer Systems > Chapter 7 System Debug Window Commands

wJ

» 

Technical documentation

Complete book in PDF
» Feedback

 » Table of Contents

 » Index

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

Feedback to webmaster