IBM Support

PM68947: ABEND0C4 IN APPENDSCALARVALUE ROUTINE + 650 DURING CEEDUMP PROCESSING OF C++METHOD COMPILED WITH DEBUG/TEST OPTION

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as unreproducible in next release.

Error description

  • Customer application written in C++ gets an exception
    (expected). The C++ methods are all in source modules that were
    compiled with the debug / test option. LE produces a CEEDUMP of
    the exception. While trying to write variables associated with a
    C++ method, LE takes an 0C4 in AppendScalarValue+650 due to an
    invalid scalar value passed to it in a LISTINFO_T structure.
    The CEEDUMP output does produce a list of the single variable in
    the particular C++ method, but then tries to write out the data
    fields and values associated with the 'this' (current
    instantiation of the class) structure. Since the C++ method
    involved was a static method - there is no 'this'. LE's logic to
    with the 'this' data is in error. First, routine
    AddVariableToList write 'this->' to the output when there is no
    'this' structure. Furthermore, AddVariableToList calls
    DisplayList to try to ascertain the data fields and values
    associated with the 'this'. The BMC structures created from
    Compiler data appear intact.
    Routine AddVariableTolist (before it calls DisplayList) has to
    create an array of variables/values to display... so it first
    calls GetSymInfoForObject. If the Level 2 block indicates C++
    Class we call a routine called GetThisSymbol.
    GetThisSymbol takes the Level 2 class bmr structure and looks
    for the child method level3 structure and finds it OK. Then it
    takes the symbol table associated with THAT method.. and we
    loop through all of the symbols.. until we find one of name len
    '4' and name value 'this'.
    When we exit this routine (found 'this' else hit end of
    symbols)...  we ASSUME that we're exiting..pointing to the
    symbol information for 'this'.. and we really don't. Moreover -
    what we actually found in the symbol table for this method is
    variable 'eventCode' - which is correct.. but no this. When we
    exit - we're actually pointing to the
    variable eventCode (last variable defined) and NOT an address of
    'this'.
    

Local fix

Problem summary

  • ****************************************************************
    * USERS AFFECTED: Users of the C/C++ compiler's TEST option    *
    *                 with a C++ application that uses a           *
    *                 Static Method.                               *
    ****************************************************************
    * PROBLEM DESCRIPTION: While creating a CEEDUMP, incorrect     *
    *                      output and/or an ABEND 0C4 may result   *
    *                      from trying to list variables like      *
    *                       this->xxxx                             *
    ****************************************************************
    * RECOMMENDATION:                                              *
    ****************************************************************
    See the problem description.
    

Problem conclusion

Temporary fix

Comments

  • This APAR is being closed UR1 with concurrence from the
    submitting customer. This means that a fix to this APAR is
    expected to be delivered from IBM in a release (if any) to be
    available within the next 24 months.
    

APAR Information

  • APAR number

    PM68947

  • Reported component name

    LE FOR MVS & VM

  • Reported component ID

    568819805

  • Reported release

    780

  • Status

    CLOSED UR1

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2012-07-16

  • Closed date

    2012-10-17

  • Last modified date

    2012-10-17

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

Fix information

  • Fixed component name

    LE FOR MVS & VM

  • Fixed component ID

    568819805

Applicable component levels

  • R780 PSN

       UP

[{"Business Unit":{"code":"BU048","label":"IBM Software"},"Product":{"code":"SSCVSBD","label":"Runtime"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"780","Edition":"","Line of Business":{"code":"","label":""}},{"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":"780","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":"780","Edition":"","Line of Business":{"code":"","label":""}}]

Document Information

Modified date:
17 October 2012