[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).
- 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.
|
[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 C/C++ 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 C,
use TEST(SYM).
- For 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(DWARF).
- 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. |