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.
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.