.Using Procedures to Produce Indexed Source Modules vBase
When you use Strobe to measure the performance of programs or online subsystems comprising many different load modules, each module can contain multiple control sections. However, you rarely need to index every control section in a load module. First, analyze the Performance Profile to identify the control sections that make the greatest resource demands. Then you can recompile and index those control sections and produce a new Performance Profile that shows source procedure names and statement numbers from the original sample dataset.
Indexed source modules must match load module maps constructed by the measurement task. The measurement task cannot construct a load module map unless it finds the module in a library identified on a DD statement. (For a list of the libraries Strobe automatically searches, see Entering Module Mapping Specifications.)
If the compilation step that has produced the map dataset is not the same compilation step that has produced the object code for the measured program, you must perform both compilations with identical source program input using the identical compiler version and options; otherwise, execution activity may be reported in a procedure other than that in which it actually occurred. If a mismatch between map and sample datasets occurs, Strobe prints an error message. Check the sizes of the control sections obtained from the load module library during the measurement session and reported in the Performance Profile (in the Program Section Usage Summary report) against the sizes shown in the compilation listing used for indexing. Then recompile and index the source program with the same compiler options as those that produced the object code.
Specifying Datasets as Input to the Procedures
You can concatenate compiler SYSPRINT datasets as input to the procedures. You can also concatenate map datasets as input by specifying them as STRMAP overrides as shown in the following example:
// SAMDSN='USER.PREFIX.JOBNAME.S001D002'
//REP.STRMAP DD DSN=MY.MAP.DATASET1,DISP=SHR
// DD DSN=MY.MAP.DATASET2,DISP=SHR
You cannot concatenate sample datasets.
Products Supported by the Indexing Procedures
Strobe reads the SYSPRINT listing produced by a compiler or by the assembler and links procedure statement names to the address of each statement generated by the language processor. For Strobe to index language processors, specify the following options when you compile your program. For COBOL, Assembler, PL/I, and C, see Creating-Indexed-Source-Performance-Profiles.
Using a compiler option that suppresses printing might result in an incomplete or inaccurate map file for Strobe to use for indexing source code. See the Strobe Release Notes for supported levels.
Product | Required Options |
|---|---|
ADS/O | REPORTS=ALL |
C++ | SOURCE, LIST, NOOFFSET, CSECT |
CAGen | See the CA Gen section of the Strobe Options Guide. |
FORTRAN | SOURCE, LIST |
NATURAL | IM=D |
Indexing Procedures
Three types of Strobe procedures can be used to index your source programs:
STROzz | Compile and index |
STROX | Index from a saved compiler SYSPRINT dataset |
STROXE | Index from a saved compiler SYSPRINT dataset and report |