System-level debugging with CODB

Start of changeThe CODB debugging transaction allows you to display and modify memory. It is menu-driven and allows you to choose various CICSplex data areas using PF keys or command line keywords.End of change

After logging onto CICS®, enter the CODB transaction ID to display the main menu, as shown in Figure 44. (CODB can also be entered from the DUMP command of the COD0 transaction.)

Start of changeFigure 44. CODB debugging transaction menu
 COMMAND==>            COMP ID==>      ADDR==>           ALET==> 00000000
 
          1.  XLWA
          2.  MODB
          3.  MOEB
          4.  OPB
          5.  EIS
          6.  EIB
          7.  STAKSTRT
          8.  STAKEND
          9.  MODD
         10.  MAL
         11.  PFKON
         12.  PFKOFF
         13.  END
         14.  CMASSTOP
         15.  TRACE
         16   QUES
         17   MENU
 
 P1=TOP  P2=BOTM  P3=END  P4=PREV  P5=NEXT  P6=TOKEN  P7=BACK  P8=FRWD
 P9=JUMP  P10=DSJUMP  P11=ALTER  P12=ALET/OFFSET
 MSG==>
End of change

The first field is for the command, the second is for a component ID (which is required for some commands), the third is for the address (or AR mode offset), and the last is for an ALET or zeros.

Note:
The CODB menu can be redisplayed at any time by issuing the MENU command.

CODB commands

Any CODB command shown on the menu, or its associated number, is valid at any time. Some commands (such as MODB and MOEB) display a submenu listing the component ID and the address of the requested control block, if it can be located. The command name remains displayed until it is replaced by a new command, or a memory display is requested.

Command
Description
XLWA
Sets the ADDR==> field to the CMAS or MAS external linkage work area (XLWA) and the ALET==> field to zero, and displays the CICSplex anchor block.
MODB
Displays the major object descriptor block (MODB) for the specified component.
MOEB
Displays the major object environment block (MOEB) for the specified component.
OPB
Displays the first object process block (OPB) for the specified component.
EIS
Displays the CICS EXEC interface storage (EIS) block for the specified component.
EIB
Displays the CICS EXEC interface block (EIB) for the specified component.
STAKSTRT
Displays the first stack of the first transaction running for the specified component.
STAKEND
Displays the current stack of the first transaction running for the specified component.
MODD
Displays the major object director descriptor (MODD) block for the specified component.
MAL
Displays the MAL currently initialized in the first transaction running for the specified component.
PFKON
Turns on the PF key prompts at the bottom of the screen.
PFKOFF
Turns off the PF key prompts at the bottom of the screen.
END
Exits the CODB transaction.
CMASSTOP
Shuts down the CMAS by posting the termination ECB.
Start of changeTRACEEnd of change
Start of changeDisplays unformatted CICS internal trace table.End of change
Start of changeQUESEnd of change
Start of changeDisplays the queue token anchor block.End of change
Start of changeMENUEnd of change
Start of changeRedisplays CODB menu.End of change
Note:
The MODB, MOEB, OPB, EIS, EIB, STAKSTRT, STAKEND, MODD, and MAL commands require a component ID, as described in The COMP ID field.

The MENU command can be issued at any time to redisplay the CODB menu.

The COMP ID field

CODB commands that display CICSPlex® SM control blocks (such as MODB and MOEB) require you to specify a three-character component ID in the COMP ID field. For a list of valid component IDs, see Major components of CICSPlex SM.

When you have specified a component ID, it remains displayed until one of the following occurs:

So it is possible to display various control blocks belonging to a single component by establishing the component ID and then issuing different commands.

The ADDR field

Entering a value in the ADDR field produces a display of memory at the specified address, using the current ALET. If the address cannot be accessed, a message appears in the MSG field at the bottom of the display.

Relative addressing is also supported in the ADDR field. You can enter a scroll amount, in bytes, as a signed (+ or -) hexadecimal number. For example:

ADDR==> +2D0

The ALET field

Entering a value in the ALET field sets the ALET value to be used for memory displays. This field is normally filled in; it has an initial value of hexadecimal zeros.

The PF Key prompts

The PF key prompt area contains a two-line list of the PF keys supported and a brief description of their values. This prompt can be turned off by the PFKOFF (12) command and turned back on by the PFKON (11) command.

The following PF keys are in effect while the CODB transaction is running:

Key
Description
PF1
TOP (valid only for control block displays). Repositions the display to the beginning of the control block. If the display was produced by a value in the ADDR field, a warning message appears in the MSG field.
PF2
BOTTOM (valid only for control block displays). Repositions the display to the end of the control block. If the display was produced by a value in the ADDR field, a warning message appears in the MSG field.
PF3
END. Exits the CODB transaction.
PF4
PREV. Depending on the contents of the current display, displays the previous control block of the same type or the previous cache list or queue record.

For a control block display, PREV is both command (control block) and component sensitive. If a submenu from a control block command is displayed, PREV displays the last component’s control block, if it exists; if it does not exist, a warning message appears in the MSG field. If a component’s control block is displayed, the previous component’s control block is displayed.

For a cache list or queue record display, if you issue PREV when the first record is displayed, a warning message appears in the MSG field.

PF5
NEXT. Depending on the contents of the current display, displays the next control block of the same type or the next cache list or queue record.

For a control block display, NEXT is both command (control block) and component sensitive. If a submenu from a control block command is displayed, NEXT displays the Kernel Linkage control block, if it exists; if it does not exist, a warning message appears in the MSG field. If a component’s control block is displayed, the next component’s control block is displayed. When displaying OPBs, NEXT runs down each component’s OPB chain, if it exists, before going on to the next component.

For a cache list or queue record display, if you issue NEXT when the last record is displayed, a warning message appears in the MSG field.

PF6
TOKEN. Displays either the first record of the queue whose QTOKEN is pointed to by the cursor, or the first cache list element whose EPOINTER is pointed to by the cursor. The NEXT and PREV commands can be used to scroll forward and backward through the queue or cache list.
PF7
BACKWARD. Scrolls the memory display backward one full page.
PF8
FORWARD. Scrolls the memory display forward one full page.
PF9
JUMP. Produces a display that starts at the address pointed to by the cursor, using an ALET of zero. The address pointed to can be the address field, the relative address field, the EBCDIC field, or an address in the hexadecimal data display. If the specified memory cannot be accessed, a warning message appears in the MSG field.

If a control block was being displayed, JUMP erases the current command and component ID and establishes the ADDR mode. After a JUMP command, it is possible to scroll beyond the bounds of the control block, even if the address selected is within the block. To reestablish control block mode, the desired command and component ID must be reentered.

PF10
DSJUMP. Produces a display that starts at the address pointed to by the cursor, using the displayed ALET. The address pointed to can be the address field, the relative address field, the EBCDIC field, or an address in the hexadecimal data display. If the specified memory cannot be accessed, a warning message appears in the MSG field.
PF11
ALTER. Allows you to alter memory.
PF12
ALET/OFFSET. Produces a display that starts at the ALET/ADDRESS pair pointed to by the cursor. The ALET/ADDRESS pair must be in the hexadecimal data display and the cursor must be on the ALET portion of the pair. If the specified memory cannot be accessed, a warning message appears in the MSG field.

The MSG field

This is a one line area headed by: MSG==> that appears on all screens. The MSG field is used for warning, informational, and error messages. For a list of these messages and their meanings, refer to the CICSPlex System Manager Messages and Codes.

The memory display area

The memory display area contains hexadecimal and EBCDIC representations of the requested memory ALET/ADDRESS, or the requested control block. Each line of the display contains an address, its offset from the beginning of the area (either the start of the control block or the address entered in the ADDR field), four full words of data in hexadecimal format, and the EBCDIC representation of those sixteen bytes. Figure 45 is a sample CODB memory display.

Figure 45. Sample CODB memory display
 COMMAND==> XLWA       COMP ID==>      ADDR==>           ALET==> 00000000
 
 00077368  00000000  020C6EC5  E8E4E7D3  D2D5D3C3  E6C1C1C2  ..>EYUXLKNLCWAAB
 00077378  00000010  01000200  000773E0  00000000  006B2F20  .......\.....,..
 00077388  00000020  00000000  0000000E  0000E888  00097820  ..........Yh....
 00077398  00000030  00077470  0000A81C  0008D000  000003B6  ......y...}.....
 000773A8  00000040  00084E90  00040000  043E0000  00000020  ..+.............
 000773B8  00000050  043E0000  FFFFF34E  8A680940  006B2F20  ......3+... .,..
 000773C8  00000060  00000000  D2D3D7C2  00085310  00085828  ....KLPB........
 000773D8  00000070  0A62AD40  0093D154  00077384  000773C4  ... .lJ....d...D
 000773E8  00000080  00000000  00000000  00000000  00346EC5  ..............>E
 000773F8  00000090  E8E4E7C5  C5E8E4D9  E7C5D3E2  01030000  YUXEEYURXELS....
 00077408  000000A0  009AFC38  03C6B150  0093D140  0093D154  .....F.&;lJ .lJ.
 00077418  000000B0  00FAB580  006C1258  A458C562  09D66631  .....%..u.E..O..
 00077428  000000C0  D7D9D4C2  000774B8  00077528  0007752C  PRMB............
 00077438  000000D0  00077530  00077534  00077548  00077544  ................
 00077448  000000E0  00077558  0007755C  0007756C  00077560  .......*...%...-
 00077458  000000F0  00077568  00077564  00077570  00000000  ................
 00077468  00000100  00000000  00000000  00000000  00097820  ................
 00077478  00000110  000988BC  00099958  0009A9F4  0009BA90  ..h...r...z4....
 00077488  00000120  0009CB2C  0009DBC8  0009EC64  0009FD00  .......H........
 00077498  00000130  000A0D9C  000A1E38  000A2ED4  000A3F70  ...........M....
 000774A8  00000140  000A500C  00000000  00000000  00000000  ..&;............
 000774B8  00000150  A458C562  09D66631  006C1258  00FAB580  u.E..O...%......
 000774C8  00000160  000000D4  00000002  E2E8E2C3  C3E5D4C3  ...M....SYSCCVMC
 000774D8  00000170  E3E2D6F1  C3E5D4C3  E6404040  C3E6E6F1  TSO1CVMCW   CWW1
 000774E8  00000180  DF80FCA0  00800000  00000000  00000000  ................
 000774F8  00000190  00000000  00000000  00000000  00000002  ................
 00077508  000001A0  04375000  00000000  00000000  00000000  ..&;............
 00077518  000001B0  00000000  00000000  00000000  00000000  ................
 00077528  000001C0  00000000  00000000  00000000  00000400  ................
 00077538  000001D0  00040000  00000002  0000001C  00000000  ................
 00077548  000001E0  C5E8E4C4  D9C5D740  00000000  00000000  EYUDREP ........
 00077558  000001F0  00000000  00000000  00000000  00000000  ................
 00077568  00000200  00000000  00000000  00000000            ............
 
 P1=TOP  P2=BOTM  P3=END  P4=PREV  P5=NEXT  P6=TOKEN  P7=BACK  P8=FRWD
 P9=JUMP  P10=DSJUMP  P11=ALTER  P12=ALET/OFFSET

CODB altering memory

The hexadecimal and EBCDIC data portions of the display can be modified. You can overtype hexadecimal data using valid hexadecimal digits, or EBCDIC data using any keyboard character except the period. After overtyping the data, press PF11 (ALTER).

Note:
The CODB alter memory function should be used only at the request of customer support personnel.

A warning message appears in the MSG field if:

Trying to modify protected storage causes an abend. The CODB recovery routine issues a message describing the abend to the console.

Accessing CODB from COD0

CODB can be entered from the COD0 transaction by:

When you exit CODB (by issuing the END command) you are returned to the COD0 transaction.

There are some advantages to using COD0 to enter CODB:

[[ Contents Previous Page | Next Page Index ]]