UF [ System Debug Reference Manual ] MPE/iX 5.0 Documentation
System Debug Reference Manual
UF
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
CAUTION The output format of all System Debug commands is subject to
change without notice. Programs that are developed to
postprocess System Debug output should not depend on the exact
format (spacing, alignment, number of lines, uppercase or
lowercase, or spelling) of any System Debug command output.
MPE/iX 5.0 Documentation