-->
Program Logic Manual
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 |