A fix is available
APAR status
Closed as new function.
Error description
NEW FUNCTION
Local fix
Problem summary
**************************************************************** * USERS AFFECTED: Users of debuggers that have a Language * * Environment debugger event handler * **************************************************************** * PROBLEM DESCRIPTION: z/OS Language Environment does not * * allow debuggers, such as Debug Tool, * * to defer a debug session until a * * specific AMODE 31 C/C++ function is * * entered. * **************************************************************** * RECOMMENDATION: * **************************************************************** See problem description.
Problem conclusion
Temporary fix
Comments
Language Environment now provides three new CWIs which can be used to implement a delayed start up of a debug session until a specific AMODE 31 C/C++ function is entered. The following publications must be updated. ================================================================ z/OS Language Environment Vendor Interfaces (SA38-0688-00) In Chapter 9. Debugging and performance analysis, section "Language Environment-Provided CWIs for the debug tool", add the following subsections: CEL4RGSR - Enable service routine --------------------------------- Language Environment provides the following CWI service to a debugging tool, such as Debug Tool, to enable or disable a service routine which will be called in either CEL4CASR or CELHCASR. +--- Syntax --------------------------------------------------+ | | | CEL4RGSR ( func_code, sr_addr, sr_workarea, fc ) | | INT4 *func_code; | | POINTER *sr_addr; | | POINTER *sr_workarea; | | FEED_BACK *fc; | | | +-------------------------------------------------------------+ Call this CWI interface as follows: L R15,CEECAALEOV-CEECAA(,R12) L R15,104(,R15) BALR R14,R15 func_code (input) The function code that is used to indicate the service routine should be enabled or disabled for either CEL4CASR, or CELHCASR. Possible values are: 0 Enable a service routine with specified work area for CEL4CASR if it is never enabled or has already been disabled. 1 Disable a service routine with specified work area for CEL4CASR. 2 Enable a XPLINK service routine with specified work area for CELHCASR if it is never enabled or has already been disabled. 3 Disable a XPLINK service routine with specified work area for CELHCASR. sr_addr (input) The address of a service routine that is to be enabled. Language Environment does not check the value of this parameter. This routine is called whenever a function or program calls the corresponding CEL4CASR or CELHCASR CWI in its prolog code. A common use case for this is for logging purposes or for deferred debugging functionality. The service routine can be a non-XPLINK or XPLINK, AMODE 31 routine, with no writable static. Non-XPLINK service routine(s) will only be called by CEL4CASR, and XPLINK service routine(s) will only be called by CELHCASR. The parameters to the service routine are: Parameter 1 Entry point address of the routine that is about to be entered. Parameter 2 Pointer to the routine name. Parameter 3 Fullword containing the length of routine name field. Parameter 4 Pointer to the work area provided when the service routine was enabled. sr_workarea (input) The address of a work area that is to be passed to the service routine each time it is called. It is provided by the user who uses CEL4RGSR, and it is user's responsibility to guarantee the size of work area is enough for service routine. fc (output/optional) A feedback code to indicate the result of this call; possible values are: CEE000 Severity 0 Msg_No N/A Message The service completed successfully. CEE3AB Severity 2 Msg_No 3403 Message The input parameter func_code is incorrect. CEE3AC Severity 1 Msg_No 3404 Message The service routine with specified work area has already been enabled. CEE3AD Severity 1 Msg_No 3405 Message The service routine with specified work area does not exist or has already been disabled. CEE3AE Severity 3 Msg_No 3406 Message The service failed to allocate storage. CEE3AF Severity 3 Msg_No 3407 Message The service failed to free storage. CEE3AG Severity 2 Msg_No 3408 Message The maximum number of unique pairs of service routines with specified work areas has been reached. Note: Language Environment supports registration of a service routine with the following considerations: 1. The enabling will succeed only when the service routine with specified work area has never been enabled or has been disabled. Similarly, the disabling will succeed only when the service routine with specified work area has been enabled. 2. Language Environment will drive the service routine in CEL4CASR or CELHCASR. 3. Language Environment can support up to 20 unique pairs of service routines with specified work areas over a whole region lifetime including both enabled and disabled ones. 4. If more than one service routine with specified work area are enabled, Language Environment does not guarantee the execution order of the enabled service routines. 5. Neither enabling a non-XPLINK service routine for CELHCASR nor enabling a XPLINK service routine for CEL4CASR is supported by Language Environment. 6. The user of this CWI service is responsible for loading the service routine and ensuring it remains loaded across a whole region lifetime. You should consider using one of the Language Environment region level load services, so that the service routine also remains loaded across any enclave boundary. 7. The enabled service routine with specified work area remains valid across multiple non-XPLINK transactions under CICS. 8. Calling this CWI service in the enabled service routine is not supported by Language Environment. CEL4CASR - Call service routine(s) for non-XPLINK applications -------------------------------------------------------------- Language Environment provides the following CWI service to call the service routine(s) enabled via CEL4RGSR for non-XPLINK applications. The parameters for this CWI are passed direct/by value rather than indirect/by reference. +--- Syntax --------------------------------------------------+ | | | CEL4CASR ( rtn_addr, rtn_name, rtn_nlen ) | | POINTER rtn_addr; | | POINTER rtn_name; | | INT4 rtn_nlen; | | | +-------------------------------------------------------------+ Call this CWI interface as follows: L R15,CEECAALEOV-CEECAA(,R12) L R15,108(,R15) BALR R14,R15 rtn_addr (input) The entry point address of the routine that is about to be entered. This parameter is passed to the service routine enabled via CEL4RGSR. rtn_name (input) The address of the routine name that is about to be entered. This parameter is passed to the service routine enabled via CEL4RGSR. rtn_nlen (input) The length of the routine name. This parameter is passed to the service routine enabled via CEL4RGSR. Note: 1. All the parameters for this CWI are passed direct/by value rather than indirect/by reference. 2. Language Environment will not check the return code of the service routine enabled via CEL4RGSR. It is user's responsibility to handle all the unexpected scenarios in service routine. 3. Normally this CWI is used in the scenario where the performance impact should be minimized, such as delayed debugging, profiling or logging and so on. CELHCASR - Call service routine(s) for XPLINK applications ---------------------------------------------------------- Language Environment provides the following CWI service to call the service routine(s) enabled via CEL4RGSR for 31-bit XPLINK applications. The parameters for this CWI are passed direct/by value rather than indirect/by reference. +--- Syntax --------------------------------------------------+ | | | CELHCASR ( rtn_addr, rtn_name, rtn_nlen ) | | POINTER rtn_addr; | | POINTER rtn_name; | | INT4 rtn_nlen; | | | +-------------------------------------------------------------+ Call this CWI interface as follows: L R6,CEECAALEOV-CEECAA(,R12) L R6,112(,R6) BASR R7,R6 NOP 0,0 rtn_addr (input) The entry point address of the routine that is about to be entered. This parameter is passed to the service routine enabled via CEL4RGSR. rtn_name (input) The address of the routine name that is about to be entered. This parameter is passed to the service routine enabled via CEL4RGSR. rtn_nlen (input) The length of the routine name. This parameter is passed to the service routine enabled via CEL4RGSR. Note: 1. All the parameters for this CWI are passed direct/by value rather than indirect/by reference. 2. Language Environment will not check the return code of the service routine enabled via CEL4RGSR. It is user's responsibility to handle all the unexpected scenarios in service routine. 3. Language Environment will branch directly to the service routine address provided in sr_addr via CEL4RGSR if the service routine has been enabled. 4. Normally this CWI is used in the scenario where the performance impact should be minimized, such as delayed debugging, profiling or logging and so on. ================================================================ z/OS Language Environment Runtime Messages (SA38-0686-00) In Chapter 1. Language Environment runtime messages, add the following new messages: CEE3403E The input parameter func_code is incorrect. Explanation: The input for the parameter func_code was not recognized. System action: The requested function was not performed. Programmer response: Use a valid function code in the parameter list. Symbolic Feedback Code: CEE3AB CEE3404I The service routine with specified work area has already been enabled. Explanation: The requested service routine with a specified work area was already successfully enabled. System action: The requested function was not performed. Programmer response: None. The service routine with the specified work area was already enabled. Symbolic Feedback Code: CEE3AC CEE3405I The service routine with specified work area does not exist or has already been disabled. Explanation: The requested service routine with a specified work area was already disabled or was never enabled. System action: The requested function was not performed. Programmer response: If a service routine with a specified work area was already disabled or was never enabled, do not disable it. Instead, do not take any action. Symbolic Feedback Code: CEE3AD CEE3406S The service failed to allocate storage. Explanation: CEERCB_ZGETST or CEEVGTST failed when allocating storage. System action: The requested function was not performed. Programmer response: If necessary, increase the available storage above the 16M line and retry the request. If you need more information, contact your service representative. Symbolic Feedback Code: CEE3AE CEE3407S The service failed to free storage. Explanation: CEERCB_ZFREEST or CEEVFRST failed when freeing storage. System action: The requested function was not performed. Programmer response: Contact your service representative. Symbolic Feedback Code: CEE3AF CEE3408E The maximum number of unique pairs of service routines with specified work areas has been reached. Explanation: The maximum number of supported unique pairs of service routines with specified work areas is 20 over a region lifetime including both enabled and disabled ones. System action: The requested function was not performed. Programmer response: Try to reduce the number of service routines with specified work areas. Symbolic Feedback Code: CEE3AG ================================================================
APAR Information
APAR number
PI12415
Reported component name
LE FOR MVS & VM
Reported component ID
568819801
Reported release
790
Status
CLOSED UR1
PE
NoPE
HIPER
NoHIPER
Special Attention
YesSpecatt / New Function / Xsystem
Submitted date
2014-02-25
Closed date
2014-06-20
Last modified date
2016-05-16
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
UI19022
Modules/Macros
CEEBALCT CEEBCINT CEEBINIT CEEBINI2 CEEBPCAL CEEBPINI CEECCICS CEECPINI CEEEDMPT CEEERRIP CEEFORCT CEEIBMCT CEEIGZCT CEEMENU3 CEEMUEN3 CEEOLEO CEEOLVD CEEOXVEC CEEZCREN CEEZCRRE CEEZDSRE CELHCASR CELHS001 CEL4CASR CEL4RCBF CEL4RGSR EDC4H074
SA38068800 | SA38068600 |
Fix information
Fixed component name
LE FOR MVS & VM
Fixed component ID
568819801
Applicable component levels
R790 PSY UI19022
UP14/07/02 P F407
Fix is available
Select the PTF appropriate for your component level. You will be required to sign in. Distribution on physical media is not available in all countries.
[{"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Product":{"code":"SG19M","label":"APARs - z\/OS environment"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"790","Edition":"","Line of Business":{"code":"","label":""}},{"Business Unit":{"code":null,"label":null},"Product":{"code":"SG19O","label":"APARs - MVS environment"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"790","Edition":"","Line of Business":{"code":"","label":""}}]
Document Information
Modified date:
16 May 2016