Dump services

Language Environment provides the following dump services. The dumps generated by these services are designed to be easier to read than a system dump, which can often minimize the need to examine a system dump. The first service, CEE3DMP, is a callable service. The remaining are CWIs and are not intended to be called by the application writer.
CEE3DMP
CEE3DMP is a callable service. It dumps the runtime environment of Language Environment and the member language libraries in an easily understandable form. CEE3DMP is the only dump service that can be called directly by an application program. It produces a dump report that is formatted into pages for printing. When providing a multithread dump, Language Environment must quiesce all other threads within the application. When the dump option THREAD(CURRENT) is specified, only the current thread is dumped. When the dump option THREAD(ALL) is specified, the current thread is dumped first and then, starting with the IPT, all remaining threads are dumped one at a time.
CEESDMP
CEESDMP is a CWI. It symbolically dumps the variables of one routine. The format is similar to the symbolic dump of variables in the CEE3DMP report.
CEETRCB
CEETRCB is a CWI. This low-level service assists in tracing the call chain backwards. It identifies the language, program unit, entry point, current location, caller's DSA, and other information from the address of a DSA or save area for a program unit.
CEETBCK
CEETBCK is a CWI which will replace CEETRCB. It assists in tracing the call chain backwards. It identifies the language, program unit, entry point, current location, caller's DSA, and other information from the address of a DSA or save area for a program unit.
To perform language-specific processing for CEE3DMP, CEESDMP, and CEETRCB, each HLL must provide utility and dump exit routines in their libraries. These exit routines are called with the member event handler using event codes 6 and 7. For a description of the calling method, see Language Environment member list and event handler. The following CWI dump services can only be used in dump exits. They format information that is placed in the dump report or written to the message file:
CEELDMP
Writes a single line message into the dump report.
CEEVDMP
Formats the name, type, value, and other information about a variable and writes it to the dump report.
CEEHDMP
Dumps a section of storage in hexadecimal and character.
CEEBDMP
Dumps a control block.

Figure 1 shows possible transfers of control among an application program, a member language library, and Language Environment for dump processing.

Figure 1. Transferring control between application program, member language library, and Language Environment
Transferring control between application program, member language library, and
CEE3DMP, CEESDMP, CEETBCK or CEETRCB can be called:
  • By a member language library as part of member language dump services
  • By a member language library as part of language-specific error handling
  • By Language Environment exception handling

In addition, CEE3DMP can be called directly by the application program. These dump utilities then call member language library dump exits and utility exits, which in turn call CEELDMP, CEEVDMP, CEEBDMP, and CEEHDMP.

Output from CEE3DMP is written to a file whose DDNAME is specified on the call to CEE3DMP using Language Environment message services. All output from CEESDMP is written to the message file.

The remainder of this section describes the dump services, and their linkage to a dump exit routine. Linkage to the utility exit is described in Event code 6 — event handler utilities event.