MODE (Set Mode)

The MODE command enables you to control the mode in which words are expanded in the MIX (Mix Number) and STACK (Format Stack Contents) commands. The PV (Print Value) command also has a mode option that you can use to control the way simple values are expanded. Some of the mode options might not be available depending on whether the area was included in the memory dump. For example, if the contents of an array have not been dumped, the command MODE + ARRAY cannot display the contents of the array.

Syntax

── MODE ─┬─────────────────────┬───────────────────────────────────────┤
         ├─ ? ─────────────────┤
         ├─ + ─┬─<mode option>─┘
         └─ ─ ─┘

<mode option>

──┬─ ALL ─────────────┬────────────────────────────────────────────────┤
  ├─ ARRAY ───────────┤
  ├─ ASC ─────────────┤
  ├─ ASDUSAGE ────────┤
  ├─ CB ──────────────┤
  ├─ CC ──────────────┤
  ├─ CODE ────────────┤
  ├─ DEC ─────────────┤
  ├─ EBC ─────────────┤
  ├─ EVENT ───────────┤
  ├─ FIB ─────────────┤
  ├─ IDNAMES ─────────┤
  ├─ IOCB ────────────┤
  ├─ IOCD ────────────┤
  ├─ LIB ─────────────┤
  ├─ LOCK ────────────┤
  ├─ MCB ─────────────┤
  ├─ MULTIareabuffer ─┤
  ├─ OCT ─────────────┤
  ├─ PCW ─────────────┤
  ├─ PIB ─────────────┤
  ├─ SB ──────────────┤
  ├─ TAB ─────────────┤
  └─ UNCompressed ────┘

Explanation

The following text describes the meaning of each construct:

MODE?

Displays the current mode or modes.

MODE+ <mode option>

Adds the specified mode.

MODE- <mode option>

Deletes the specified mode.

<mode option>

Mode Option Descriptions explains the purpose of the various mode options.

Table 11. Mode Option Descriptions

Mode Option

Description

ALL

Includes all the mode options in the analysis except for UNCompressed.

ARRAY

Expands mom descriptors subject to the limit established by the ARRAYLIMIT command. If the array is multidimensional, each dimension is expanded as it is encountered. Information concerning the current level is printed in the left margin when multidimensional arrays are expanded.

ASC

EBC mode takes precedence over ASC mode. When ASC is set and EBC is reset, hexadecimal representation is shown and characters are translated using ASCIITOEBCDIC.

ASDUSAGE

Provides additional analysis of ASD table entries. Refer to the information about ASDUSAGE following this table for details on the use of this mode option.

CB

Expands descriptors referencing connection blocks.

CC

Attempts to resolve ambiguous local environments through code segment analysis.

CODE

Expands and lists code areas and read-only data areas. When analyzing a stack, the code for return control words (RCWs) is expanded into mnemonics for the operators and names of items at the D[0] level.

Op-codes for all systems are recognized. An op-code that is not defined for any of the systems is displayed in the form m*hh, where hh (hex) is the code syllable and m is a letter indicating the context in which the syllable was encountered:

P: Primary (normal context)

V: Variant (right after code 95)

E: Edit (right after EXSD, EXSU, EXPU)

DEC

Expands all operands (Tag 0 words) to show both the hexadecimal representation and the decimal representation of the operand.

EBC

Expands all operands (Tag 0 words) to show both the hexadecimal representation and the EBCDIC representation of the operand.

EVENT

Expands and analyzes event structures.

FIB

Expands the FIBs in the stack. Buffers are dumped and analyzed.

IDNAMES

Displays identifier name and compiler class information along with stack variables. Refer to the information about IDNAMES following this table for details on the use of this mode option.

IOCB

Expands descriptors in the stack referencing an IOCB.

IOCD

Expands any IOCD descriptors encountered. If IOCB mode also is used, the direct IOCB is expanded.

LIB

Expands and analyzes library structures. This applies to both library templates and library directories.(Refer to the LIB command.)

LOCK

Analyzes the word as a hard lock (tag of 0) or a soft lock (tag of 2).

OCT

Expands all operands (Tag 0 words) to show both the hexadecimal representation and the octal representation of the operand.

PCW

Analyzes a word as if it were a program control word (PCW). The expansion of PCWs in stacks is optional; normally, PCWs are not expanded, but they are expanded if PCW is set.

PIB

Displays as PIBs the arrays that have a spaceusage field of PIB in their memory links.

SB

Provides structure block analysis.

TAB

Displays arrays that have a spaceusage field of task attribute block (TAB) in their memory links.

UNCOMPRESSED

Enables array expansion without combining adjacent words of the same value in the output. UNCompressed must be explicitly set or reset.


ASDUSAGE Mode Option

A mode of ASDUSAGE may be set or reset affecting the analysis of descriptors. When the ASDUSAGE mode is set and the descriptor being analyzed is for a multi-dimensioned or segmented array, additional information is collected for display. The segment for the ASD for the descriptor being analyzed is searched recursively, and the total number of ASDs allocated for the array and the total memory these ASDs represent are added to the descriptor analysis.

The mode setting affects the output of several commands. The following is an example showing the output from the STACK and PV commands.

Example

INPUT: PV M[G SPIB] ASDUSAGE
C 200000 000421 Desc [Present-mom] : ASD=002109, 
                   Address=00146360, Length=4092 (DOPEVECT)
                ASD 002109 Usage : 80 Asds (13528 Words)
INPUT: MODE + ASDUSAGE
MODES: SET: ASDUSAGE
RESET: EBC ASC DEC OCT PCW LOCK CODE FIB ARRAY LIB IOCB MCB
       MULTIareabuffer IOCD CC PIB TAB IDNAMES CB SB
INPUT: STACK 12 OFFSET 3B9 - 3B9

     STACKDUMP FOR STACK 0012 MIX NUMBER 0/0

           Name: *SYSTEM/EPSILONIOA/MCP ON DISK00
Job Messages: (null)                               
    Stack Kind: MCP              
     STACKINFO:   0 000098 740001  
   STACKSTATUS:   0 FFFC00 700001                    
      Priority: 0                                    
Visible Status: FROZEN                               
 SoftPS Status: Active, In Limbo                     
      Language: NEWP 0.0                             
 Compiler Info: IPC Capable 
BOSR=000051FE50  LOSR=0000521743  LENGTH=018F3 (6387)
03B9 (00,03B1) C 200000 000421 Desc [Present-mom] : ASD=
                     002109, Address=00146360, Length=4092

IDNAMES Mode Option

When you specify the IDNAMES mode, DUMPANALYZER checks the code file corresponding to a return control word (RCW) to determine if BINDINFO information is present. Complete BINDINFO information must be present to get a display. Creating BINDINFO Information explains the way you can get complete BINDINFO information for each type of compiler that supports complete BINDINFO information. Currently, only ALGOL and COBOL74 support complete BINDINFO.

If you have both the CC option and the IDNAMES option set when you use the STACK command to analyze a stack, DUMPANALYZER will attempt to resolve ambiguous local environments, and it will use tables available in a code file (compiled with the __PDUMPINFO compiler control option) to describe any heap address variables. For further information about the __PDUMPINFO option, see the C Programming Reference Manual, Volume 1.

Table 12. Creating BINDINFO Information

To create BINDINFO information in . . .

Use this Method

COBOL or COBOL74

Declare an external procedure.

ALGOL

No action needed. The ALGOL compiler generates complete BINDINFO information, unless you compile the program with the compiler control option NOBINDINFO set.

If ALGOL is compiled with the BEGINSEGMENT/ENDSEGMENT compiler control options set, an incorrect environment results. When DUMPANALYZER cannot find a correct environment, it cannot display identifier name or class information.

FORTRAN77

Set the compiler control option BINDINFO. This compiler generates only partial BINDINFO information.


You cannot use the IDNAMES mode for MCP environments. Use the LOADXREF command instead. No mechanism exists for getting identifier names for environments that are bound into the MCP.

If DUMPANALYZER cannot find a code file that corresponds to an RCW, the system displays a NO FILE message. RSVP Responses for a NO FILE Condition with the Mode Command describes RSVP responses.

Table 13. RSVP Responses for a NO FILE Condition with the Mode Command

Enter . . .

To . . .

OF

Cancel the IDNAMES option. The following message appears:

CODEFILE NOT AVAILABLE.

FA

Change the file attribute of the code file. You can use this response to direct DUMPANALYZER to the correct code file, by specifying attributes such as TITLE and FAMILYNAME.


If DUMPANALYZER finds a code file with a creation time or date that is different than the code file that was running at the time the dump was created, the following messages appear:

WRONG CODE FILE:  <code file title>
HEADER CREATION: <creation timestamp from header>
FILE CREATION:   <creation timestamp from file>

DUMPANALYZER does not use a codefile with the wrong timestamp in determining a sequence number from an RCW, regardless of the setting of MODE IDNAMES. In cases where this mismatch occurs and IDNAMES is not set, the file is not used, and sequence number is not displayed. However, an indication that the wrong version of the codefile is present will be displayed instead of an incorrect sequence number. After the codefile is skipped, you might have to reset and set MODE IDNAMES, use the CODEFILE command, or display a stack with a different segment dictionary so that DUMPANALYZER considers the mismatched file again.

Response to a WRONG CODE FILE Messageexplains the ways you can respond to a WRONG CODE FILE message.

Table 14. Response to a WRONG CODE FILE Message

Enter . . .

To . . .

OK

Cause the code file to be used anyway.

RESTART

Cause the file specified in the CODEFILE command to be used as the code file. If you have not used the CODEFILE command, a NO FILE message appears. The way you can respond to a NO FILE message is explained in RSVP Responses for a NO FILE Condition with the Mode Command.


Example

The following shows an example of the response to a MODE command.

INPUT: MODE + ALL
MODES: SET: EBC DEC OCT PCW LOCK CODE FIB ARRAY LIB IOCB IOCD PIB
            TAB IDNAMES CC CB
       RESET: