.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:

// EXEC STROE,
// 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


 

Tip: For faster searching, add an asterisk to the end of your partial query. Example: cert*

BMC Compuware Strobe 18.02