This topic summarizes changes in the default behavior of some commands and in which version of Debug Tool those changes were introduced.
Beginning with Debug Tool for z/OS, Version 11.1, Debug Tool changed how it processed nested blocks in C and C++ programs, thereby improving performance.
The z/OS XL C/C++ compiler defines a block statement (or block) as all definitions, declarations, and statements enclosed with a single set of braces: {}. You can nest blocks and the compiler assigns names to these blocks using the following pattern: %BLOCKn, where n is a sequential number.
To describe the difference in behavior, review the following example:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define NUM_INVOKE 5
main()
{ /* block 1 start */
int elm1 = 5, qvar1, qvar2, i;
qvar1 = 1;
qvar2 = 9;
for(i=0; i<NUM_INVOKE; ++i)
{ /* block 2 start */
qvar1 = qvar1 + 1;
qvar2 = qvar2 + 1;
} /* block 2 end */
qvar1 = qvar1 + 1;
qvar2 = qvar2 + 1;
if(elm1 = 5)
{ /* block 3 start */
qvar1 = qvar1 + 5;
qvar1 = qvar1 + 5;
} /* block 3 end */
else
{ /* block 4 start */
qvar1 = qvar1 - 5;
qvar2 = qvar2 - 5;
} /* block 4 end */
qvar1 = qvar1 - 1;
qvar2 = qvar2 - 1;
} /* block 1 end */
Refer to the following topics for more information related to the material discussed in this topic.
Beginning with Debug Tool for z/OS®, Version 10.1, the Debug Tool DTCN Primary Menu changed how to identify the program or programs you want to debug. Previously, you identified a program through the Program ID field. This changed to two fields: LoadMod and CU.
Beginning with Debug Tool for z/OS, Version 9.1, with the PTF for APAR PK74749 applied, Debug Tool changed how it handled pointers in C/C++ programs to better match the semantics of C/C++. The following commands were affected by this change:
Refer to the following topics for more information related to the material discussed in this topic.