UDUMP - Conversational Dump Display Utility

The Com-plete utility UDUMP allows you to access dumps in the online dump library and display them at the terminal. You can generate a hard copy printout of a specific UDUMP dump using either the UDUMP PRINT command or the Com-plete batch utility program TUDUMP.

This document covers the following topics:


Overview

Online programs running under Com-plete occupy main storage areas called threads. When a program executing in a thread terminates abnormally, the contents of both the thread and the registers are written to the online dump data set residing in the SD library. Other information added to each dump as it is written to the dump or data set includes:

Contents of the following control blocks: UPCB, COMREG, THCB, TIB, CUOW;

  • The program name;

  • The date and time of the dump;

  • The Terminal Identification number (TID) of the terminal from which the program was executing;

  • The number assigned to the dump in the dump library;

  • The error message associated with the abnormal termination;

    The maximum number of dumps kept on the dump library is 32. The dump library is a wraparound library; that is, generated dumps are numbered sequentially beginning with one. The 33rd dump generated replaces the first dump generated.

    The display features available with UDUMP allow you to:

  • Display different portions of a dump;

  • Alter the display format;

  • Relocate addresses used within the dump;

  • Display all dumps in the dump library.

Command Format

The primary command format for invoking UDUMP is:

*UDUMP argument  

where argument can be one of the following:

ALL A constant specifying a summary display of all dumps residing in the dump library (see the following figure).
n An integer from 1 to 32 designating the specific dump to be displayed.
-n A negative integer. This number is added to the number of the most recent dump in the dump library and the dump with the resulting number assignment is displayed.
name The name of the abnormally terminated online program that created a dump. If multiple dumps exist in the dump library for the same program, the most recent dump is displayed.
null Specifies a display of the dump most recently written to the dump data set.

If you request the ALL argument, a list of all dumps in the dump library is displayed, for example:

# User      Program         Date Time     Dump title                                  
01*COK      UDIRMEM         3/13  9:41:41 COMABS0006-* Program UDIRMEM Abend S0C1 PSW=
02 COK      NAT42           3/04  9:14:08 USR9999    NATURAL ABEND SAG , ILC=2        
03 COK      NAT42           3/04  9:14:54 COMABS0006-* Program NAT42 Abend S0C1 PSW=07
04 COK      CANCEL          3/06 11:25:33 COMABS0006-* Program CANCEL Abend S0C4 PSW=0
05 COK      UQ              3/06 11:26:25 COMABS0007-* Program UQ Abend U3001         
06 COK      COKNAT5         3/06 13:24:38 COMABS0006-* Program COKNAT5 Abend S0C1 PSW=
07 COK      UCTRL           3/06 14:10:59 COMMAP0005-* UCT1F2 is an invalid map name  
08 COK      COKNAT4         3/06 14:57:12 COMABS0006-* Program COKNAT4 Abend S0C1 PSW=
09 COK      UPDS            3/10 10:06:10 COMABS0006-* Program UPDS Abend S0C4 PSW=078

This menu display is used to identify the specific dump to be selected. Note that the most recent dump is marked with an asterisk.

Once you have identified the dump you wish to display, select the specific dump by entering the appropriate dump number in the input field top left. When a specific dump is displayed, two primary formats result. The first format is the register summary and dump contents display as illustrated in the following figure:

NAME=UDS       DATE= 11/04  TIME= 163648  DUMP=   5 TID=     8
COMABS0006-* PROGRAM UDS ABEND S0C4 PSW=078C1000800284CC

    PSW  078C1000 800284CC
R 0- 7   00000000 00039A48 0000F000 0A8A6000 0001F000 008B9C50 00000002 00F3B2E0
R 8-15   00039A00 00FD4B18 800284BE 0001238C 00028318 00053840 00000322 00000000

FR0- 6   00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

UPCB     0A8A6000-0A8A7000
SQA2     001F5000-001F6000
REGION1  0022B000-00233B30
REGION2  0A8A7000-0A8A7B00
COMREG   0000F000-00010000
THCB     0001F000-0001F400
TIB      09FCE600-09FCE6C0
CUOW     09C29000-09C29290

Program  EntryPnt LoadPnt  End      Length   Location PSW

UDS      8022B000 0022B000 002333A8 000083A8 thread

Further in this section, this display will be referred to as "the REGS page". Along with the register contents, the address ranges of the storage areas (sections) contained in the dump are displayed. These represent the Com-plete control blocks and user region(s) related to the program that has terminated abnormally. In this display, you can either position the cursor on the line indicating the area you want to be displayed, or use the commands described below in this section to specify the address to be displayed, as well as additional options.

The following figure illustrates a display of storage contents at a given address:

PSW  078C1000 800284CC RELOC=COMREG   NAME=UDS      DUMP=   5 TID=    8
R 0- 7   00000000 00039A48 0000F000 0A8A6000 0001F000 008B9C50 00000002 00F3B2E0
R 8-15   00039A00 00FD4B18 800284BE 0001238C 00028318 00053840 00000322 00000000
Absolute Relative   COMREG  +00000000
0000F000 00000000   09FCE000 006400C0 09C1E300 008D5808    *..Ö–  . äAT  ...*
0000F010 00000010   008F95C0 89BFE5D0 09C19FC0 00010004    * .näi.Vü.A.ä . .*
0000F020 00000020   00000004 00010020 00010007 0A031F11    *   . . . . .....*
0000F030 00000030   0AC80000 4C000A0E 0000F03E 00000001    *.H  < ..  0.   .*
0000F040 00000040   61404040 40404040 40404040 40404040    */               *
0000F050 00000050   09C19040 89BFA990 000000E5 F5F1F024    *.A. i.z.   V510.*
0000F060 00000060   808C3020 00780000 00000000 89C0F138    *.... .      iä1.*
0000F070 00000070   B20A0000 89B2A008 89BFE040 00000000    *..  i...i.Ö     *
0000F080 00000080   89B08320 005C0000 B20A0080 00015F50    *i.c. *  .. . .^&*
0000F090 00000090   09FD2BC0 00017000 1997307F 00343A45    *...ä .. .p.” ...*
0000F0A0 000000A0   D6E24040 D4F6F0F3 96720004 89B0A2E8    *OS  M603o. .i.sY*
0000F0B0 000000B0   09FACCD8 00000000 89B0B020 89B06038    *...Q    i...i.-.*
0000F0C0 000000C0   89BEE1E8 00000000 89BE61E8 89C004F8    *i..Y    i./Yiä.8*
0000F0D0 000000D0   89BF9508 89C102F8 89B2A7E0 808C3678    *i.n.iA.8i.xÖ....*
0000F0E0 000000E0   00016190 89C0E0C0 89BFAEB0 89BAD000    * ./.iäÖäi...i.ü *
0000F0F0 000000F0   00008938 89BF3578 89B29D50 89BF8040    *  i.i...i..&i.. *
0000F100 00000100   89BEE9E0 89EC04A8 89B2B000 89B2C0B0    *i.ZÖi..yi.. i.ä.*
0000F110 00000110   00000000 89B106B0 89C00030 00012240    *    i...iä . .. *
0000F120 00000120   89B79018 00012478 89BE2D50 89B43020    *i... ...i..&i...*
0000F130 00000130   89B930A8 89B100B8 89C062B8 89C030C8    *i..yi. .iä..iä.H*

To view subsequent pages within a specific dump display, press ENTER.

UDUMP Commands

Dumps displayed by UDUMP are similar in content and format to SYSUDUMP dumps produced by batch programs. Three categories of display commands are available to examine a dump:

  • Commands to address (examine) portions of the dump;

  • Commands to change the display format;

  • Commands to change the relative addresses in the left margin of the display.

These categories and the command functions within each category are summarized in the following tables.

Command/Function Description
address Displays the location beginning at the specified address.
C* / X* Displays the location specified by the 24/31 bit address stored in the current location.
CRn / XRn Displays memory at the 24/31 bit address in general register n.
cursor placement Displays the location beginning at the location indicated by the cursor.
displacement Displays the location at the specified number of bytes from the current location.
null entry Displays the next page.
P Displays the beginning of the program area.
PSW Displays the location addressed in word 2 of the PSW.
S nnnnnnnn Scans for the specified hexadecimal digits (maximum of eight).
T Displays the beginning of the thread.
section name Displays the beginning of the section as indicated on the REGS page.
Command Description
HEX Displays the dump in hexadecimal format only.
INT Displays the dump in both character and hexadecimal format.
REGS Displays the REGS page.
PGMS Displays the programs that were loaded at the time of the error.
Command Description
R=M Sets the addresses relative to the beginning of the machine.
R=P Sets the addresses relative to the beginning of the program, if this is in the dump.
R=* Sets the addresses relative to the current location being displayed.
R=section name Sets the addresses relative to the beginning of the specified section.
R=T Sets the addresses relative to the beginning of the thread, that is, of the UPCB.

These commands are described in the following subsections.

In addition, the PRINT command is described, which allows you to spool the currently displayed dump to a terminal printer.

Addressing Command Options

The addressing command options enable you to request dump displays either beginning at specific addresses within the dump or relative to specific locations.

ADDRESS Command

Specific addressing enables you to display the online dump beginning at a specified address.

The command format is:

address  

where address is any string of up to eight characters representing the hexadecimal address to be used as the beginning address for the next display.

Note:
The address must refer to a location within the area available for display under the relocation option in effect; otherwise, an addressing error will occur.

C* and X* Commands

The C* and X* commands enable you to display the online dump beginning at the address specified by the first fullword in the current display. The contents of this fullword are treated as a 24 or 31 bit address respectively.

The command format is:

C*  or
X*

The contents of the first fullword in the current display (current at the time you enter the command) are used as the beginning address for the next display.

Note:
The address must refer to a location within the area available for display under the relocation option in effect; otherwise, an addressing error will occur.

CRn and XRn Commands

The CRn and XRn commands enable you to display the online dump beginning at the address contained in a general register. The register contents are treated as a 24 or 31 bit address respectively.

The command format is:

CRn  or
XRn

where the variable n must be a hexadecimal number from 0 to F. The value you select designates the general register whose content is to be used as the starting point in the dump display.

Cursor Placement Function

By positioning the cursor to any byte displayed on the screen and pressing ENTER, you can scroll the display forward so that the indicated byte moves to the top of the screen.

DISPLACEMENT Command

Displacement addressing enables you to display the online dump beginning at an address relative to the address of the currently displayed area.

The command format is:

displacement

where displacement represents the number of bytes before the current address (-displacement) or after the current address (+displacement) at which the next display is to begin.

Note:
The displacement must refer to a location within the area available for display under the relocation option in effect; otherwise, an addressing error will occur.

The displacement value can be a decimal or hexadecimal number. Note that if you use a hexadecimal number, the number must be preceded by the character X.

Typical addressing commands relative to the currently displayed address are:

Decimal: +50, -28
Hexadecimal: +X25C, -XD3F

You can also request displacement addressing relative to an address other than the current address. For example:

Relative to PSW: PSW-50
Relative to program: P+X5C3
Relative to user region 2 REGION2 + 64
Null Entry Function

Null entry refers to the pressing of ENTER without providing a command function. This is the primary paging function of UDUMP: it displays successive pages of dump memory (a page is 23 lines of output). Addresses displayed are in increments of X'20' if the HEX display format is in effect, or increments of X'10' if the INT display format is in effect.

P Command

The P command enables you to display the online dump beginning at the load address of the application program, if this is in the dump.

The command format is:

P

Note that the display begins at the load address of the application program regardless of the relocation option in effect.

PSW Command

The PSW command enables you to display the online dump beginning at the address specified by the second fullword in the current PSW.

The command format is:

PSW  

The second fullword in the current PSW is used as the beginning address for the next display.

Note:
he address must refer to a location within the area available for display under the relocation option in effect; otherwise, an addressing error will occur.

S Command

The S command enables you to display the online dump beginning at the address of a specified character string.

The command format is:

S nnnnnnnn 

where nnnnnnnn is a string of hexadecimal digits representing the hexadecimal internal machine format of the characters whose address will be the beginning address for the next display. Note that nnnnnnnn can be a maximum of eight hex digits.

Note:
The characters to be scanned must be within the area available for display under the relocation option in effect; otherwise, a scan failure will occur.

The scan proceeds beginning with the address currently displayed. A comparison is made with each successive set of internal hexadecimal digits, left to right, until either an equal condition is met or the end of the dump is found. If an equal condition is met, the address of the character string is used as the current address in the next display.

Note that because internal hexadecimal digits are scanned,nnnnnnnnmust be an even number of hexadecimal digits (0 through F).

For example, the command:

S F1F0  

is correct, while the command:

S F1F  

is incorrect and generates an error message.

T Command

The T command enables you to display the online dump beginning at the address >of the thread, that is, the UPCB.

The command format is:

T 

The address of the beginning of the thread is used as the beginning address for the next display.

Section Name Command

The section name command allows you to display the dump from the start of any of the sections indictated on the REGS page.

The command format is:

Section Name

The starting address of the section specified is used as the beginning address for the next display.

Display Format Options

The display format options enable you to change the display format to the following formats:

  • Hexadecimal format only;

  • Decimal and hexadecimal format.

HEX Command

The HEX command enables you to change the display format to hexadecimal character format only.

The command format is:

HEX  

The format of the current display is changed to reflect a one-column format. The column is displayed in internal hexadecimal format. Note that all addresses, regardless of the relocation option in effect, are in increments of 32 (X'20').

The following figure illustrates a typical hex display format.

PSW  07EC2000 0020DA64 RELOC=COMREG   NAME=UDS      DUMP=  20 TID=   12
R 0- 7   00000001 00000000 0000F000 00203000 000130C8 00096900 A020D92A 00211F14
R 8-15   00211660 0020F2D8 5006EDBC 0006FDBB 0020CFB0 0020D670 00211868 00000000
COMREG  +00000000
00000000 00096000 006400C0 000162E8 008EE468 008FF2E0 00000000 05D40B40 00010004
00000020 00000004 00010058 00060007 0A031F11 0AC80000 4C000A0E 0000F03E 00000001
00000040 61404040 40404040 40404040 40404040 000050C8 00030001 000000E5 F4F6F024
00000060 808DB808 00780000 00000000 85DF8000 B20A0000 85D26008 85DEB930 0001C610
00000080 85D07068 005C0080 B20A0080 0001FF50 0009ABC0 00017EE8 0094251F 0034292A
000000A0 C5E2C140 F0F3F840 30900004 85D07BD8 0603EAD0 00000000 85D09F20 85D021D0
000000C0 85DE7050 00000000 85DE9058 0001B0A0 0001B0A0 0001B9B4 0001BD8A 85D25CA0
000000E0 0001A010 85DF60B0 85DE6020 85D5F730 85D061F8 85DEFA40 85D0D7F0 0001596C
00000100 85DE79E0 86072898 85DE3038 85D3D080 00000000 85DDB0E0 85DEA078 00015D18
00000120 00000000 00015F50 85D09838 85DEB018 05DFF000 85DDC028 85DE5220 85DF32B8
00000140 85DE6C30 85DE36F8 85D06CD8 05D0B000 00005978 00000000 85D0DCF8 85DF7830
00000160 85D09B60 85D0CC18 85D276E0 85D76098 85D3E0F0 85D02068 85DE8110 85D92000
00000180 00000000 85D0D038 0000F9C0 00000000 00000000 0000D500 85DF7020 0000C600
000001A0 0603EE80 00000000 00000000 8009BA60 8009C610 0009000A 000B000C 000A0000
000001C0 860AE240 00000000 860AD730 00000000 00004E20 00000000 860AF980 00000000
000001E0 85DC3000 00000000 00000000 86072280 85E2E168 05D42180 05D42380 00000000
00000200 C4000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000220 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000240 000007F8 00000000 0000057C 00000000 00000000 00000000 00043300 00001000
00000260 002BC000 00190000 060536D0 00014628 00000000 00110012 00014C7E 6C6E0009

INT Command

The INT command enables you to change the display format to both internal hexadecimal and external decimal format.

The command format is:

INT  

The format of the current display is changed to reflect a two-column format. The leftmost column is internal hexadecimal format, whereas the rightmost column is external decimal format. Note that all addresses, regardless of the relocation option in effect, are in increments of 16 (X'10').

The following figure illustrates a typical INT display format.

PSW  07EC2000 0020DA64 RELOC=COMREG   NAME=UDS      DUMP=  20 TID=   12
R 0- 7   00000001 00000000 0000F000 00203000 000130C8 00096900 A020D92A 00211F14
R 8-15   00211660 0020F2D8 5006EDBC 0006FDBB 0020CFB0 0020D670 00211868 00000000
COMREG  +00000000
00000000 00096000 006400C0 000162E8 008EE468      * .-  . ä ..Y .U.*
00000010 008FF2E0 00000000 05D40B40 00010004      * .2Ö    .M.  . .*
00000020 00000004 00010058 00060007 0A031F11      *   . . . . .....*
00000030 0AC80000 4C000A0E 0000F03E 00000001      *.H  < ..  0.   .*
00000040 61404040 40404040 40404040 40404040      */               *
00000050 000050C8 00030001 000000E5 F4F6F024      *  &H . .   V460.*
00000060 808DB808 00780000 00000000 85DF8000      *.... .      e.. *
00000070 B20A0000 85D26008 85DEB930 0001C610      *..  eK-.e... .F.*
00000080 85D07068 005C0080 B20A0080 0001FF50      *eü.. * ... . ..&*
00000090 0009ABC0 00017EE8 0094251F 0034292A      * ..ä .=Y m.. ...*
000000A0 C5E2C140 F0F3F840 30900004 85D07BD8      *ESA 038 .. .eü#Q*
000000B0 0603EAD0 00000000 85D09F20 85D021D0      *...ü    eü..eü.ü*
000000C0 85DE7050 00000000 85DE9058 0001B0A0      *e..&    e... ...*
000000D0 0001B0A0 0001B9B4 0001BD8A 85D25CA0      * ... ... .¨.eK*.*
000000E0 0001A010 85DF60B0 85DE6020 85D5F730      * ...e.-.e.-.eN7.*
000000F0 85D061F8 85DEFA40 85D0D7F0 0001596C      *eü/8e.. eüP0 ..%*
00000100 85DE79E0 86072898 85DE3038 85D3D080      *e.'Öf..qe...eLü.*
00000110 00000000 85DDB0E0 85DEA078 00015D18      *    e..Öe... .).*
00000120 00000000 00015F50 85D09838 85DEB018      *     .^&eüq.e...*
00000130 05DFF000 85DDC028 85DE5220 85DF32B8      *..0 e.ä.e...e...*

REGS Command

The REGS command enables you to display the general registers and PSW at the time of program failure.

The command format is:

REGS  

The information displayed includes:

  • The general registers;

  • The current PSW;

  • UDUMP header information;

  • The floating point registers;

  • An overview of the sections of storage contained in the dump.

The following figure illustrates a typical REGS display format.

NAME=UDS       DATE= 11/04  TIME= 163648  DUMP=   5 TID=     8
COMABS0006-* PROGRAM UDS ABEND S0C4 PSW=078C1000800284CC

    PSW  078C1000 800284CC
R 0- 7   00000000 00039A48 0000F000 0A8A6000 0001F000 008B9C50 00000002 00F3B2E0
R 8-15   00039A00 00FD4B18 800284BE 0001238C 00028318 00053840 00000322 00000000

FR0- 6   00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

UPCB     0A8A6000-0A8A7000
SQA2     001F5000-001F6000
REGION1  0022B000-00233B30
REGION2  0A8A7000-0A8A7B00
COMREG   0000F000-00010000
THCB     0001F000-0001F400
TIB      09FCE600-09FCE6C0
CUOW     09C29000-09C29290

Program  EntryPnt LoadPnt  End      Length   Location PSW

UDS      8022B000 0022B000 002333A8 000083A8 thread

Address Relocation Options

The address relocation options enable you to set the addresses used in the display relative to either:

  • The machine

  • The thread

  • The program

  • The current address

  • A specified dump section

When you specify a relocation command, the current display remains the same, but Com-plete adjusts the addresses displayed in the left margin according to the command specified.

R=M Command

The machine address relocation command enables you to display the addresses relative to absolute zero (machine addresses).

The command format is:

R=M  
R=P Command

The program address relocation command enables you to display the addresses relative to the program load address, if this is the dump.

The command format is:

R=P  
R=* Command

The specific address relocation command enables you to display the addresses relative to the address that is current when you enter this command.

The command format is:

R=* 
R=T Command

The thread address relocation command enables you to display the addresses relative to the beginning of the thread, that is, of the UPCB.

The command format is:

R=T 
R=section name

The dump section relocation command enables you to display the addresses relative to the beginning of the specified dump sections.

Functional Considerations

Com-plete interprets the various addressing commands available with UDUMP relative to the relocation option in effect. For example, when program relocation is in effect, you can only display addresses located within the program area. The address you specify may be either an actual machine address or an address relative to the program load point. The location you address, however, must be within the bounds of the program.

For example, if the thread address is X'E0000' and the program load address is X'E4000', the display returned is the same whether you specify X'4A0' or X'E44A0'. A request for address X'E3480' is not honored because it precedes the program load point, but a request for address X'3480' displays that relative location in the program (actual machine address X'E7480').

When a specific address relocation is in effect, you can only display address locations greater than the specified address. Thus, if the specific starting address was X'A48' when you requested specific address relocation, only locations from X'A48' to the end of the thread will be available for display.

Note:
Display requests using the CRn, XRn or PSW commands require that the address is in the register specified, or that the PSW is within the area under the relocation option in effect; otherwise, an addressing error will result.

PGMS command

This command displays a list of the programs that were loaded on behalf of the application when the error occurred. For each program, its name, location and size are indicated. If the error PSW points into one of these modules, the displacement is shown.

PSW  078C1000 800284CC                NAME=UDS      DUMP=   5 TID=    8
R 0- 7   00000000 00039A48 0000F000 0A8A6000 0001F000 008B9C50 00000002 00F3B2E0
R 8-15   00039A00 00FD4B18 800284BE 0001238C 00028318 00053840 00000322 00000000

Program  EntryPnt LoadPnt  End      Length   Location PSW

UDS      8022B000 0022B000 002333A8 000083A8 thread

Print Dumps

The PRINT command enables you to spool the currently displayed dump to a terminal printer. The device is typically a printer, but can be any device in the Com-plete network. Note that the receiving device must be able to print a 132-character line in order to format the dump properly.

The command format is:

PRINT [destination]  

where destination is the one- to eight-character destination code of the device(s) on which the dump is to be printed.

The destination code can be a Terminal ID (TID) or groupname to which one or more devices are assigned. If you specify an invalid destination code, an error message is issued and you are prompted to reenter the PRINT command. If you do not specify a destination, the default screen-to-hardcopy device defined for the terminal is used. This default terminal is defined for each terminal in the Terminal Information Block Table (TIBTAB) but can be altered by using the HC function of the UUTIL utility.