Requesting a Language Environment trace for debugging

Language Environment provides an in-storage, wrapping trace facility that can reconstruct the events leading to the point where a dump is taken. The trace facility can record two types of events: entry and exit library calls and, if the POSIX runtime option is set to ON, user mutex and condition variable activity such as init, lock/unlock, and wait. Language Environment produces a trace table in its dump report under the following conditions:

For more information about the CEE3DMP callable service, the TERMTHDACT runtime option, or the TRACE runtime option, see z/OS Language Environment Programming Reference.

The TRACE runtime option activates Language Environment runtime library tracing and controls the size of the trace buffer, the type of trace events to record, and it determines whether a dump containing only the trace table should be unconditionally taken when the application (enclave) terminates. The trace table contents can be written out either upon demand or at the termination of an enclave.

The contents of the Language Environment dump depend on the values set in the TERMTHDACT runtime option. Table 1 summarizes the dump contents that are generated under abnormal termination.
Table 1. TERMTHDACT runtime option settings and dump contents produced
TERMTHDACT value Type of dump generated
TERMTHDACT(QUIET) Language Environment dump containing the trace table only
TERMTHDACT(MSG) Language Environment dump containing the trace table only
TERMTHDACT(TRACE) Language Environment dump containing the trace table and the traceback
TERMTHDACT(DUMP) Language Environment dump containing thread/enclave/process storage and control blocks (the trace table is included as an enclave control block)
TERMTHDACT(UAONLY) System dump of the user address space and a Language Environment® dump that contains the trace table
TERMTHDACT(UATRACE) Language Environment dump that contains traceback information, and a system dump of the user address space
TERMTHDACT(UADUMP) Language Environment dump containing thread/enclave/process storage and control blocks (the trace table is included as an enclave control block), and a user address space dump
TERMTHDACT(UAIMM) System dump of the user address space of the original abend or program interrupt that occurred before the Language Environment condition manager processing the condition. Also contains a Language Environment dump, which contains the trace table.

Under CICS®, UAIMM yields UAONLY behavior. Under non-CICS, TRAP(ON,NOSPIE) must be in effect. When TRAP(ON,SPIE) is in effect, UAIMM yields UAONLY behavior. For software raised conditions or signals, UAIMM behaves the same as UAONLY.

Under normal termination, independent of the TERMTHDACT setting, Language Environment generates a dump containing the trace table only based on the TRACE runtime option

Language Environment quiesces all threads that are currently running except for the thread that issued the call to CEE3DMP. When you call CEE3DMP in a multithread environment, only the current thread is dumped. Enclave- and process-related storage could have changed from the time the dump request was issued.