| [1] Page Heading |
The page heading section appears on
the top of each page of the dump and contains the following information:
- CEE3DMP identifier
- Title: For dumps
generated as a result of an unhandled condition, the title is
Condition processing resulted in
the Unhandled condition.
- Product abbreviation of Language Environment
- Version number
- Release number
- Date
- Time
- Page number
The contents of the second line of the page heading vary depending on the environment in which
the CEEDUMP is issued.
For CEEDUMPs produced under a batch environment, the following items are displayed:
- ASID: Describes the address space ID.
- Job ID: Describes the JES Job ID.
- Job name: Describes the job name.
- Step name: Describes the job's step name in which the CEEDUMP was produced.
- UserID: Describes the TSO userid who issued the job.
For jobs running with POSIX(ON), the following additional items are displayed:
- PID: Displays the associated process ID.
- Parent PID: Displays the associated parent PID.
For CEEDUMPs produced under the z/OS®
UNIX shell, the
following items are displayed:
- ASID: Describes the address space ID.
- PID: Displays the associated process ID.
- Parent PID: Displays the associated parent PID.
- User name: Contains the user ID associated to the CEEDUMP.
For CEEDUMPs produced under CICS®, the following items
are displayed:
- Transaction ID and task number.
|
| [2] CEE3845I CEEDUMP Processing started. |
Identifies the start of the Language Environment® dump processing. Similarly, message CEE3846I identifies the end of the
dump processing. Message number CEE3845I can be used to locate the start of the next CEEDUMP report
when scanning forward in a data set that contains several CEEDUMP reports. |
| [3] Caller Program Unit and Offset |
Identifies the routine name and offset in the calling routine of the call to
the dump service. |
| [4] Registers on Entry to CEE3DMP |
Shows data at the time of the call to the dump service.
- Program mask: The program mask contains the bits for the fixed-point overflow mask, decimal
overflow mask, exponent underflow mask, and significance mask.
- General purpose registers (GPRs) 0–15: On entry to CEE3DMP, the GPRs contain:
- GPR 0
- Working register
- GPR 1
- Pointer to the argument list
- GPR 2–11
- Working registers
- GPR 12
- Address of CAA
- GPR 13
- Pointer to caller's stack frame
- GPR 14
- Address of next instruction to run if the ALL31 runtime option is set to ON
- GPR 15
- Entry point of CEE3DMP
- Floating point registers (FPRs) 0 through 15
- Vector registers (VRs) 0 through 31.
- Storage pointed to by General Purpose Registers. Treating the contents of each register as an
address, 32 bytes before and 64 bytes after the address are shown.
|
| [5] - [17] Enclave Information. These sections show information
that is specific to an enclave. When multiple enclaves are dumped, these sections will appear for
each enclave. If multiple CEEPIPI main-DP environments exist, the dump service generates data and
storage information for the most current Main-DP environment, followed by the previous (parent)
Main-DP environments in a last-in-first-out (LIFO) order. Sections [5] - [17] will appear for
each enclave in the most current Main-DP environment, and sections [5]-[7] will appear for
enclaves in the previous (parent) Main-DP environments. When multiple nested Main-DP environments
are present in the dump output, a line displaying the CEEPIPI token value for each dumped Main-DP
environment will appear before the output for that environment.
|
| [5] Enclave Identifier |
Names the enclave for which information in the dump is provided. If multiple
enclaves exist, the dump service generates data and storage information for the most current
enclave, followed by previous enclaves in a last-in-first-out (LIFO) order. For more information
about dumps for multiple enclaves, see Multiple enclave dumps. |
| [6] - [12] Thread Information. These sections show information
that is specific to a thread. When multiple threads are dumped, these sections will appear for each
thread. |
| [6] Information for thread |
Shows the system identifier for the thread. Each thread has a unique
identifier. |
| [7] Traceback |
In a multithread case, the traceback reflects only the current thread. For all
active routines, the traceback section shows routine information in three parts. The first part
contains:
- DSA number: A number assigned to the information for this active routine by dump processing. The
number is used to associate information from the first part of the traceback with information in the
second and third parts of the traceback.
- Entry: For COBOL, Fortran, PL/I, and Enterprise PL/I for z/OS routines, this is the entry point name. For C/C++ routines, this is the function name. If
a function name or entry point was not specified for a particular routine, the string
'**
NoName **' will appear.
- Entry point offset
- Statement number: Refers to the line number in the source code (program unit) in which a call
was made or an exception took place (see Status column). The statement number appears only if your
routine was compiled with the options required to generate statement numbers.
- Load module: The load module name displayed can be a partitioned data set member or an UNIX executable file.
The load module name is also displayed in the third part of the traceback.
- Program unit: For COBOL programs, program unit is the PROGRAM-ID name. For C, Fortran, and PL/I
routines, program unit is the compile unit name. For Language Environment-conforming assemblers,
program unit is either the EPNAME = value on the CEEPPA macro, or a fully qualified path name.
If
the program unit name is available to Language
Environment (for example, for C/C++, the routine was compiled with TEST(SYM)), the program unit
name will appear under this column, according to the following rules:
- If your compiled routine is in a partitioned data set, only the member will be output.
- If your compiled routine is in a sequential data set, only the last qualifier will be shown.
- If your compiled routine is in an UNIX filename, only what
fits of the filename will be displayed in a line.
- Service level: The latest service level applied to the compile unit (for example, for IBM® products, it would be the PTF number).

- If the service level string is equal or less than 7 bytes, all of the string will be
output.
- If the service level string is longer than 7 bytes, the Service column will only show the first
7 bytes of the service string, and the full service string will be shown in section of Full Service
Level with max length of 64 bytes.
- Status: Routine status can be 'call' or 'exception'.
|
| [7] Traceback (continued) |
The second part contains:
- DSA number: A number assigned to the information for this active routine by dump processing. The
number is used to associate information from the first part of the traceback with information in the
second and third parts of the traceback.
- Stack frame (DSA) address
- Entry point address
- Program unit address
- Program unit offset: The offset of the last instruction to run in the routine. If the offset is
a negative number, zero, or a very large positive number, the routine associated with the offset
probably did not allocate a save area or could have been called using SVC-assisted linkage. Adding
the program unit address to the offset gives the location of the current instruction in the routine.
This offset is from the starting address of the routine.
- Compile Date: Contains the year, month and day in which the routine was compiled.
- Attributes: The available compilation attributes of the compile unit including:
- A label identifying the LE-supported language such as COBOL, ENT PL/I, C/C++, and so on.
- Compilation attributes such as EBCDIC, ASCII, IEEE or hexadecimal floating point (HFP). The
compilation attributes will only be displayed if there is enough information available.
- If the CEEDUMP was created under a POSIX environment, POSIX will be displayed.
The third part of the traceback, which is also referred to as the Fully Qualified Names
section, contains the following:
- DSA number
- Entry
- Program unit: Similar to the Program Unit column in part 1 except that the server name and the
complete program unit (PU) name will be displayed. A PU name will appear here only if it is
available to Language Environment.
- Load Module: The complete pathname of a load module name residing in an UNIX filename will be displayed here if available. The load module's full
pathname will be displayed if the PATH environment variable is set such that the pathname of the
load module's directory appears before the current directory (.). For load modules found in data
sets, the same output shown in the traceback part 1 will also be displayed here.
The fourth part of the traceback, which is also referred to as
the Full Service Level section, contains the following:  
- DSA number
- Entry
- Service: The full service level string with max length of 64 bytes will be displayed here.
|
| [8] Condition Information for Active Routines
|
Displays the following information for all conditions currently active on the
call chain:
- Statement showing failing routine and stack frame address of routine
- Condition information block (CIB) address
- Current® condition, in the form of a Language Environment message for the condition raised or a Language Environment abend code, if the condition was caused by an
abend
- Location: For the failing routine, this is the program unit, entry routine, statement number,
and offset.
- Machine state,
which shows:
- Instruction length counter (ILC)
- Interruption code
- Program status word (PSW)
- Contents of 64-bit GPRs 0–15. Note that when the high halves of the registers are not
known, they are shown as
********.
- Storage dump near condition (2 hex-bytes of storage near the PSW)
- Storage pointed to by General Purpose Registers
- Contents of access registers, if available
This information shows the current values at the time the condition was raised. The high halves
of the general registers are dumped, in case they are useful for debugging some applications.
If the PSW associated with the condition indicates AMODE 24, the register content will be treated
as 24-bit address.
|
| [9] Parameters, Registers, and Variables for Active Routines
|
For each active routine, this section shows:
- Routine name and stack frame address
- Arguments: For COBOL and Fortran, arguments are shown here rather than with the local variables.
For COBOL, arguments are shown as part of
local variables. PL/I arguments are not
displayed in the Language Environment dump.
- Saved registers: This lists the contents of GPRs 0–15 at the time the routine transferred
control.
- Storage pointed to by the saved registers: Treating the saved contents of each register as an
address, 32 bytes before and 64 bytes after the address shown.
- Local variables: This section
displays the local variables and arguments for the routine. This section also shows the variable
type. Variables are displayed only if the symbol tables are available. To generate a symbol table
and display variables, use the following compile options:
- For COBOL, use TEST(SYM).
- For C/C++, use TEST.
- For VS COBOL II, use FDUMP.
- For COBOL/370, use TEST(SYM).
- For COBOL for OS/390 & VM, use TEST(SYM).
- For Enterprise COBOL for z/OS V4R2 and prior releases,
use TEST(SYM).
- For Enterprise COBOL for z/OS V5R1 and later releases,
use TEST with any sub options or NOTEST(DWARF).
Note:
- LOW-VALUES (x'00') is the NUL character in EBCDIC, which is an unprintable character that cannot
be displayed properly.
- A NUL character in a data item in the "Local Variables" section is replaced by a double-quote
when displayed in the CEEDUMP.

- For Fortran, use SDUMP.
- For PL/I, arguments and variables are not displayed.
|
| [10] Control Blocks for Active Routines |
For each active routine controlled by the STACKFRAME option, this section
lists contents of related control blocks. The Language Environment-conforming language determines which
language-specific control blocks appear. The possible control blocks are:
- Stack frame
- Condition information block
- Language-specific control blocks
|
| [11] Storage for Active Routines |
Displays local storage for each active routine. The storage is dumped in
hexadecimal, with EBCDIC translations on the right side of the page. There can be other information,
depending on the language used. For C/C++
routines, this is the stack frame storage. For COBOL programs, this is language-specific
information, WORKING-STORAGE, and LOCAL-STORAGE. |
| [12] Control Blocks Associated with the Thread |
Lists the contents of the Language Environment common anchor area (CAA), thread synchronization
queue element (SQEL), DLL failure data, and dummy stack frame. Other language-specific control
blocks can appear in this section. DLL failure data is described in Using the DLL failure control block. |
| [13] Enclave variables: |
Displays language specific global variables. This section also shows the
variable type. Variables are displayed only if the symbol tables are available. |
| [14] Enclave Control Blocks |
Lists the contents of the
Language Environment enclave data block (EDB) and enclave
member list (MEML). The information presented may vary depending on which runtime options are set.
- If the POSIX runtime option is set to ON, this section lists the contents of the mutex and
condition variable control blocks, the enclave level latch table, and the thread synchronization
trace block and trace table.
- If DLLs have been loaded, this section shows information for each DLL including the DLL name,
load address, use count, writeable static area (WSA) address, and the thread id of the thread that
loaded the DLL.
- If the HEAPCHK runtime option is set to ON, this section shows the contents of the HEAPCHK
options control block (HCOP) and the HEAPCHK element tables (HCEL). A HEAPCHK element table contains
the location and length of all allocated storage elements for a heap in the order that they were
allocated.
- When the call-level suboption of the HEAPHCK runtime option is set,
any unfreed storage, which would indicate a storage leak, would be displayed in this area. The traceback could then be used
to identify the program which did not free the storage.
- If the TRACE runtime option is set to ON, this section shows the contents of the Language Environment trace table.
Other language-specific control blocks can appear in this section. |
| [15] Enclave Storage
|
Shows
the Language Environment heap storage. For C/C++ and PL/I routines, heap storage is the dynamically
allocated storage. For COBOL programs, it
is the storage used for WORKING-STORAGE data items. This section also shows the writeable static
area (WSA) storage for program objects. Other language-specific storage can appear in this
section. |
| [16] File Status and Attributes |
Contains additional information about the file. |
| [17] Runtime Options Report |
Lists the Language Environment runtime
options in effect when the routine was executed. |
| [18] Process Control Blocks |
Lists the contents for the Language Environment process control block (PCB), process member list
(MEML), and if the POSIX runtime option is set to ON, the process level latch table. Other
language-specific control blocks can appear in this section. |
| [19] Additional Language Specific Information |
Displays any additional information not included in other sections. For C/C++,
it shows the thread ID of the thread that generated the dump and the settings of the errno and
errnojr variables for that thread. |
| [20] CEE3846I CEEDUMP Processing completed. |
Identifies the end of the Language Environment dump processing. Similarly, message CEE3845I identifies the start of the
dump processing. Message CEE3846I can be used to locate the end of the previous CEEDUMP report when
scanning backward in a data set that contains several CEEDUMP reports. |