HPlogo System Debug Reference Manual: HP 3000 MPE/iX Computer Systems > Chapter 4 System Debug Command Specifications

Fmm (freeze)

» 

Technical documentation

Complete book in PDF
» Feedback

 » Table of Contents

 » Index

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

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.
Feedback to webmaster