Transaction Processing Facility (TPF) - Online MaintenanceTPF : Support : Maintenance TPF : Support : Maintenance
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
PJ26600PJ26581PJ26815PJ26804PJ26824PJ26831PJ27009PJ27104PJ27237PJ27270PJ27398PJ27585
FOR SEGMENT CDBGBS40 (No Release) - REL TPF4
PJ25798PJ25835PJ25982PJ25981PJ26008PJ26219PJ26481PJ26352PJ26468PJ26543PJ26600PJ26581PJ26815PJ26804PJ26824PJ26831PJ27009PJ27104PJ27237PJ27270PJ27383PJ27398PJ27585
FOR SEGMENT CEXP40 (No Release) - REL TPF4
PJ27009PJ27286PJ27261PJ27585PJ27639
FOR SEGMENT CEXPBS40 (No Release) - REL TPF4
PJ25632PJ25835PJ25982PJ26319PJ26866PJ27009PJ27286PJ27261PJ27585PJ27639
FOR SEGMENT CPLX40 (No Release) - REL TPF4
PJ26600PJ26581PJ26667PJ26804PJ26923PJ27009PJ27266PJ27254PJ27335PJ27449
FOR SEGMENT CPLXBS40 (No Release) - REL TPF4
PJ25632PJ25798PJ25981PJ26008PJ26600PJ26581PJ26667PJ26804PJ26923PJ27009PJ27266PJ27254PJ27335PJ27449
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.