HPlogo System Debug Reference Manual > Chapter 6 System Debug Command Specifications M-X

UF

MPE documents

Complete PDF
Table of Contents
Index

E0201 Edition 4 ♥
E0300 Edition 3
E0692 Edition 3

Debug only

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

Syntax



   UFC   logaddr  [bytelength]         Program file
   UFCG  logaddr  [bytelength]         Group library
   UFCP  logaddr  [bytelength]         Account library
   UFCLG logaddr                       Logon group library
   UFCLP logaddr                       Logon account library
   UFCS  logaddr  [bytelength]         System library
   UFCU  fname   logaddr [bytelength]  User library

   UFCA  cmabsaddr                     Absolute CST
   UFCAX cmabsaddr                     Absolute CSTX

   UFDA  dst.off                       CM data segment

   UFVA  virtaddr [bytelength]         Virtual address

These unfreeze commands actually decrement a system freeze count. The segment or pages may remain frozen if their freeze count is still positive.

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

    UFC procname+20

    Procedure name lookups return LCPTRs.

    UFC pw+4

    Predefined ENV variables of type LCPTR.

    UFC SYS(2.200)

    Explicit coercion to a LCPTR type.

  • As a long pointer (LPTR):

    UFC 23.2644

    sid.offset or seg.offset

    The logical file is determined based on the command suffix. For example:
    • UFC implies PROG.

    • UFCG implies GRP.

    • UFCS implies SYS, and so on.

  • As a short pointer (SPTR):

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

UFC

Full search path:

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

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

UFCG

Search GRP, the group library.

UFCP

Search PUB, the account library.

UFCLG

Search LGRP, the logon group library.

UFCLP

Search LPUB, the logon account library.

UFCS

Search SYS, the system library.

UFCU

Search USER, the user library.

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

fname

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:

   UFCU lib1 204c
   UFCU 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.

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

    UC 2644

    Implicit CST 23.2644

    UCAX 5.3204

    Implicit CSTX 5.3204

  • As a full absolute code pointer (ACPTR):

    UCA CST(2.200)

    Explicit CST coercion.

    UCAX CSTX(2.200)

    Explicit CSTX coercion.

    UCAX logtoabs(prog(1.20))

    Explicit absolute conversion.

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

GRP, PUB, LGRP, LPUB, SYS

UCAX

PROG

dst.off

A data segment address (specified as dst.offset) of the data segment to be unfrozen in memory (see the FDA command).

virtaddr

The starting virtual address of the page(s) that are to be unfrozen in memory. (Refer to the FVA command.) Virtaddr can be a short pointer, a long pointer, or a full logical code pointer.

bytelength

This parameter is valid only for nmdebug. It is the desired number of bytes to be unfrozen. Based on the starting virtual address and the specified bytelength, the appropriate number of virtual pages are unfrozen. If omitted, four bytes is used as a default. 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 one byte, the whole page on which that byte resides is made resident.

Examples



   %cmdebug > ufc sys(12.0)

Unfreeze CM logical code segment SYS %12.

   $nmdebug > ufva 22.104, 1000

Unfreeze 1000 bytes starting at virtual address 22.104.

Limitations, Restrictions


none




TRAP


UNMAP