Fmm (freeze) [ System Debug Reference Manual ] MPE/iX 5.0 Documentation
System Debug Reference Manual
Fmm (freeze)
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 Explicit absolute conversion
logtoabs(prog(1.20))
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
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