IBM Support

PI12415: Language Environment support to allow delayed start up of a debug session.

A fix is available

Subscribe

You can track all active APARs for this component.

 

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
    

Publications Referenced
SA38068800SA38068600   

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