DRA --> Program Logic Manual

Profile Events

When LE runtime option PROFILE is "ON" then LE attempts to load the Profile tool.

Runtime option PROFILE is incompatible with runtime option TEST, which is used to invoke the Debug Tool. This means, the Profile tool and the Debug tool can not run together. If runtime option TEST is specified then the Debug tool will be loaded and option PROFILE is ignored.

The load module name of the Profile tool is CEEEVPRF. It will be loaded at completion of Enclave Initialization (event 18). CEEEVPRF must be accessible by STEPLIB or through the installation's Link list. If CEEEVPRF could not be loaded (not found) then LE will issue following message in the MSGFILE:
CEE3645I Profiler not loaded; module CEEEVPRF not accessible.

If CEEEVPRF is successfully loaded then its entry point address is saved in a reserved field in the PCB, which is an internal LE control block. The name of the reserved field is CEEPCBPRFEH. LE uses this pointer to notify the Profile tool of certain events.

Profile events fired by Language Environment:
101 Condition raised
103 unhandled Condition
118 enclave init
119 enclave term
120 thread init
121 profile tool term
122 thread term
123 external entry
127 Condition promote
133 execution hook invocation
160 initial thread create
161 initial thread exit
162 Pthread create
163 Pthread created
164 Pthread exit
171 POSIX fork() imminent
172 in child process
173 POSIX exec() imminent
174 Process cleanup imminent
175 Spawn is imminent
178 in parent process
179 after spwan()

When any of these events occur Language Environment calls CEEEVPRF with the appropriate event code. However DRA does not handle all profile events. The module (DRAPH) that gets control at the entry point of CEEEVPRF only accepts the following events:

Profile events at initialization:
123 external entry handled by DRAPH123
118 enclave init handled by DRAPH118
120 thread init handled by DRAPH120
Profile events during execution of the application program:
101 condition raised handled by DRAPH101
103 unhandled condition handled by DRAPH103
127 condition promote handled by DRAPH127
133 execution hook invocation handled by DRAPH133
Profile events at termination:
122 thread term handled by DRAPH122
119 enclave term handled by DRAPH119