Skip to main content

Transaction Processing Facility (TPF) - Online Maintenance TPF : Support : Maintenance TPF : Support : Maintenance

JavaScript not Active

This page uses JavaScript. You must activate JavaScript in your browser to be sure youare able to view all of the information.

SUBJECT:         APAR  NUMBER: PJ27578

REFERENCE:  AREA:     DEBUG TOOL SUPPORT
            SEGMENT:  CDBG40     - RELEASE:  TPF4  (No Release)
            SEGMENT:  CDBGBS40   - RELEASE:  TPF4  (No Release)
            SEGMENT:  CEXP40     - RELEASE:  TPF4  (No Release)
            SEGMENT:  CEXPBS40   - RELEASE:  TPF4  (No Release)
            SEGMENT:  CPLX40     - RELEASE:  TPF4  (No Release)
            SEGMENT:  CPLXBS40   - RELEASE:  TPF4  (No Release)
            SEGMENT:  CXLOAD40   - RELEASE:  TPF4  (No Release)
            SEGMENT:  EQA0SRSM40 - RELEASE:  TPF4  (No Release)
            SEGMENT:  EQA0SUDS40 - RELEASE:  TPF4  (No Release)
            SEGMENT:  EQA00DBI40 - RELEASE:  TPF4  (No Release)
            SEGMENT:  EQA00DIM40 - RELEASE:  TPF4  (No Release)
            SEGMENT:  EQA00EXE40 - RELEASE:  TPF4  (No Release)
            SEGMENT:  EQA8XBAS40 - RELEASE:  TPF4  (No Release)


Pre-requisite APARs are:
FOR SEGMENT CDBG40     (No         Release) - REL TPF4
 PJ26600  PJ26581  PJ26815  PJ26804  
 PJ26824  PJ26831  PJ27009  
 PJ27104  PJ27237  PJ27270  PJ27398  PJ27585  
FOR SEGMENT CDBGBS40   (No         Release) - REL TPF4
 PJ25798  PJ25835  PJ25982  PJ25981  
 PJ26008  PJ26219  PJ26481  
 PJ26352  PJ26468  PJ26543  PJ26600  
 PJ26581  PJ26815  PJ26804  
 PJ26824  PJ26831  PJ27009  PJ27104  PJ27237  PJ27270  PJ27383  
 PJ27398  PJ27585  
FOR SEGMENT CEXP40     (No         Release) - REL TPF4
 PJ27009  PJ27286  PJ27261  PJ27585  PJ27639  
FOR SEGMENT CEXPBS40   (No         Release) - REL TPF4
 PJ25632  PJ25835  PJ25982  PJ26319  
 PJ26866  PJ27009  PJ27286  
 PJ27261  PJ27585  PJ27639  
FOR SEGMENT CPLX40     (No         Release) - REL TPF4
 PJ26600  PJ26581  PJ26667  PJ26804  
 PJ26923  PJ27009  PJ27266  
 PJ27254  PJ27335  PJ27449  
FOR SEGMENT CPLXBS40   (No         Release) - REL TPF4
 PJ25632  PJ25798  PJ25981  PJ26008  
 PJ26600  PJ26581  PJ26667  
 PJ26804  PJ26923  PJ27009  PJ27266  PJ27254  PJ27335  PJ27449  
FOR SEGMENT CXLOAD40   (No         Release) - REL TPF4
 PJ27639  
To be applied in the order listed for each segment.

ABSTRACT OF PROBLEM
___________________
The  C  debugger  uses  an  excessive amount of storage on "step
overs".  After applying APAR PJ27639,  block  variables  in  C++
class members cannot be displayed.


COMMENTS ON PROBLEM
___________________

Using  the  C debugger to perform a "Step Over" on deeply nested
functions could result in a CTL-C system  error  when  debugging
large applications. This can be avoided only by setting a break-
point past the function call and selecting "Run".

After APAR PJ27639 has been applied, function level variables in
C++  class members could be displayed, but variables declared in
any nested blocks are shown as "Not allocated".

For example:  insideTest is a method within  the  Animal  class,
which  is  the  base class for Cat, Lemur, and Kangaroo classes.
insideTest is called by the base class constructor.
// Animal Default Constructor
Animal::Animal ()
{
   strcpy(name,"");
   age = 0;
   weight = 0;
   alive = true;
   insideTest();
}

void Animal::insideTest(void)
{
   int count = 2;
   waitc();   // drop some SVCs into the DLL
   for(int a = 1; a < count; a++)
      {
         char *dumbStuff = "HELLO";
         char a = 'a';
         int b = 5;
         int f = count;
         int p = a + b + f;
         printf("in animal insideTest, p = %d, ", p);
      }
}

Before APAR PJ27639, the local variable window  would  show  all
the  variables  in  the for loop scope (dumpStuff, char a, b, f,
and p), but not 'count', which is outside the  for  loop  scope;
nor the int a variable, which is defined as part of the for loop
statement.   If you put all the variables into a Program Monitor
window, "Not allocated" is displayed for count and  the  int  a,
and  the  others  would  be displayed correctly. So, before APAR
PJ27639, the problem was in displaying the function-level  vari-
ables, but variables in the for loop scope were correct.

With  APAR PJ27639 applied, the problem is almost reversed.  The
'count' variable shows up in the Locals variable table pane with
the correct value, but all the variables scoped to the for  loop
indicate  "Not  allocated".  The  int a variable in the for loop
statement is not even displayed in the local variable  pane.  If
you  add these variables to a program monitor, count and the int
a are fine; all the others are displayed as "Not allocated".


SOLUTION
________

This APAR addresses two problems:

o   The first problem deals  with  memory  problems  when  using
    "Step  Over".   Because this is not a problem for "Run", the
    same performance enhancement that was made in  APAR  PJ26667
    has been applied to "Step Over" as well.

o   The second problem is with displaying block variables in C++
    members.  Both  block  and  function-level  variables in C++
    members will now be displayed correctly in the  program  and
    local variable monitors.

DEPENDENCIES
____________

Related Segments Affected By This APAR.
_______________________________________

Segments to be assembled or compiled:
- None.

Segments to be link-edited:

Load Modules to be loaded:
- CDBG40
- CPLX40
- CEXP40.

Migration Considerations
========================
- None.

-- END APAR PJ27578






Download file(s): Login once to access server, leave window open, then click on link(s) below. Source Binary