HPlogo System Debug Reference Manual > Chapter 5 System Debug Command Specifications Fx-LOG

Fmm (freeze)

MPE documents

Complete PDF
Table of Contents
Index

E0201 Edition 4 ♥
E0300 Edition 3
E0692 Edition 3

Debug only

Privileged Mode

Freezes a code segment, data segment, or virtual address (range) in memory.

Syntax



   FC     logaddr   [bytelength]         Program file
   FCG    logaddr   [bytelength]         Group library
   FCP    logaddr   [bytelength]         Account library
   FCLG   logaddr   [bytelength]         Logon group library
   FCLP   logaddr   [bytelength]         Logon account library
   FCS    logaddr   [bytelength]         System library
   FCU    fname logaddr   [bytelength]   User library

   FCA    cmabsaddr                   CM absolute CST
   FCAX   cmabsaddr                   CM absolute CST

   FDA    dstoff                      CM data segment

   FVA    virtaddr   [bytelength]        Virtual address

Parameters


logaddr

A full logical code address (LCPTR) specifies three necessary items:

  • the logical code file (PROG, GRP, SYS, and so on).

  • NM: the virtual space ID number (SID).

    CM: the logical segment number.

  • 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):

    FC procname+20

    Procedure name lookups return LCPTRs.

    FC pw+4

    Predefined ENV variables of type LCPTR.

    FC SYS(2.200)

    Explicit coercion to a LCPTR type.

  • As a long pointer (LPTR):

    FC 23.2644

    sid.offset or seg.offset

    The logical file is determined based on the command suffix:
    • FC implies PROG.

    • FCG implies GRP.

    • FCS implies SYS, and so on.

  • As a short pointer (SPTR):

    FC 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 a LCPTR.

The search path used for procedure name lookups is based on the command suffix letter:

FC

Full search path:

  • NM: PROG, GRP, PUB, USER(s), SYS.

  • CM: PROG, GRP, PUB, LGRP, LPUB, SYS.

FCG

Search GRP, the group library.

FCP

Search PUB, the account library.

FCLG

Search LGRP, the logon group library.

FCLP

Search LPUB, the logon account library.

FCS

Search SYS, the system library.

FCU

Search USER, the user library.

For a full description of logical code addresses, refer to the section "Logical Code Addresses" in chapter 2.

cmabsaddr

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):

    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

    FCAX logtoabs(prog(1.20))

    Explicit absolute conversion

The search path used for procedure name lookups is based on the command suffix letter:

FCA

GRP, PUB, LGRP, LPUB, SYS

FCAX

PROG

fname

The file 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,

   FCU lib1 204c
   FCU lib2.testgrp test20+1c0

If the file name is not fully qualified, the following defaults are used:
  • Default account: the account of the program file.

  • Default group: the group of the program file.

dstoff

A data segment address (specified as DST.OFFSET) of the data segment to be frozen in memory. The segment remains frozen until it is explicitly unfrozen (see UDA command).

virtaddr

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.

bytelength

This parameter is valid only when in nmdebug. It indicates the desired number of bytes to be frozen. Based on the starting virtual address and the specified bytelength, the appropriate number of virtual pages are frozen. If omitted, the default is four bytes. The implementation of this command dictates that the smallest unit that is actually frozen is one page of virtual memory. That is, if you say 1 byte, the whole page on which that byte resides is made resident.

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




Fx (format)


FINDPROC