この章では、IBM 問題判別ツール製品で使用するためのプログラムの準備に必要な最小限の手順を説明します。詳しい情報については、「Debug Tool for z/OS® ユーザーズ・ガイド」の『第 2 部 プログラムをデバッグするための準備』、「Fault Analyzer for z/OS User's Guide」の『Part 2. Fault Analyzer Installation and Administration』、または「Application Performance Analyzer for z/OS User’s Guide」の『Appendix B. Creating side files using CAZLANGX』を参照してください。
この章の目的は、Debug Tool for z/OS、Fault Analyzer for z/OS、および Application Performance Analyzer for z/OS を組み合わせて使用している組織のための、単一コンパイル方式に関する説明を紹介することです。 Debug Tool for z/OS のみを使用している企業では、代わりに「Debug Tool for z/OS ユーザーズ・ガイド」の『第 2 部 プログラムをデバッグするための準備』を参照してください。 Fault Analyzer for z/OS のみを使用している企業では、代わりに「Fault Analyzer for z/OS User's Guide」の『Part 2. Fault Analyzer Installation and Administration』を参照してください。Application Performance Analyzer for z/OS のみを使用している企業では、代わりに『Application Performance Analyzer for z/OS User’s Guide」の『Appendix B. Creating side files using CAZLANGX』を参照してください。
Debug Tool for z/OS、Fault Analyzer for z/OS、および Application Performance Analyzer for z/OS は、IBM コンパイラーによって生成されたロード・モジュールや他のファイルを使用するように設計されています。プログラムをコンパイルするときは、必ず、これらの製品が使用できるロード・モジュールとファイルがそのプログラムによって生成されるようにする、特定のコンパイラー・オプションを指定してください。
この章で使用する「ソース情報ファイル」という用語は、Debug Tool for z/OS、Fault Analyzer for z/OS、および Application Performance Analyzer for z/OS によって使用されるファイルのタイプを表します。この章の説明対象となっている別の種類のソース情報ファイルには、以下のものがあります。
コンパイラーが異なると、生成されるソース情報ファイルの種類も異なる点に注意してください。 複数のコンパイラーを使用すると、複数のタイプのソース情報ライブラリーが生成される可能性があります。
この章で説明するコンパイラー・オプションを指定してプログラムをコンパイルすると、コンパイラーによって作成されたロード・モジュールおよびソース情報ファイルは次のように使用できます。
正しいオプションを指定してプログラムをコンパイルすると、コンパイラーによって生成されたモジュールはデバッグ可能になり、プログラム・ステートメントを含むソース情報ファイルを生成できます。 Debug Tool for z/OS を使用してプログラムをデバッグすると、Debug Tool for z/OS はソース情報ファイルを使用してプログラム・ソース・ステートメントをソース・ウィンドウに表示します。
使用されるソース言語とコンパイラーに応じて、ロード・モジュール、ソース情報ファイル、または DWARF ファイルのいずれかに、ステートメントと変数に関する情報 (オフセットや長さなど) が含まれ、さらに、デバッガーがストレージ内でステートメントと変数を見つけられるようにする情報が含まれます。正しいコンパイル・オプションを指定してコンパイルを行わないと、デバッグは「逆アセンブリー」と呼ばれるモードに制限されます。このモードではマシン・コードは表示されますが、ソース・ステートメントまたは変数は表示されません。
最近ご使用のシステムに 1 つ以上の IBM 問題判別ツール製品がインストールされた場合、プログラムのビルド・プロセスがまだ更新されていない可能性があります。ビルド・プロセスの更新は、IBM 問題判別ツール製品の実装において重要かつ必須の部分です。
多くの組織では、これらのビルド・プロセスの所有権が明確に設定されています。それ以外の組織では、変更を行う担当者が明確に決められていない場合があります。多くの組織では標準のコンパイル・プロセスまたは PROC が使用されています。これらはシステム管理者が維持し、IBM 問題判別ツール製品用のプログラムの準備のための更新を済ませています。これが該当する場合は、使用可能なプロセスとそれらの使用方法を調べてください。 それ以外の組織では、各開発者がプログラムをコンパイルするための独自のコンパイル JCL または PROC が維持されています。これが該当する場合は、以下の説明に従って、その独自のコンパイル JCL を更新して、IBM 問題判別ツール製品用にプログラムを準備してください。
最初に、各コンパイラーに必要な内容を個々に調べてください。 例えば、Enterprise COBOL for z/OS、Enterprise PL/I for z/OS、C/C++、およびアセンブラーに必要な変更は、それぞれわずかに異なります。
一般に、IBM 問題判別ツールで使用できるプログラムを生成するためにコンパイラー JCL で必要になる可能性がある変更点は、以下の 3 つです。
通常、プログラムをテストするときに、プログラム・ロード・モジュールはさまざまなステージを経てプロモートされた後に実動状態に達します。例えば、初めて新しいプログラムをコンパイルする場合、そのプログラムはテスト・ロード・ライブラリーに入れられると考えられます。単体テストの完了後、コンパイルされたプログラムはおそらく品質保証環境にプロモートされます。そして最終的に、実動状態にプロモートされます。ご使用のシステムでは、これらのステージが以下のような別の名前で呼ばれている場合があります。
プログラムのライフサイクルを通して Debug Tool for z/OS、Fault Analyzer for z/OS、および Application Performance Analyzer for z/OS を使用できるようにするかどうか検討してください。Debug Tool for z/OS を実動プログラムでは使用しない予定の場合でも、Fault Analyzer for z/OS および Application Performance Analyzer for z/OS はこれらのステージで非常に有用です。各ステージで IBM 問題判別ツール製品を使用可能にするには、プロモーション・プロセスを更新して、ソース情報ファイルを保存してください。 プロモーションを実行するには、再コンパイル、コピー、または移動を行います。ソース情報ファイルでも、ロード・モジュールまたはオブジェクト・モジュールで実行するステップと同じステップを実行してください。 各ロード・ライブラリーまたはオブジェクト・ライブラリーでは、対応するソース情報ライブラリー・セットが必要です。ロード・モジュールまたはオブジェクト・モジュールのどちらをプロモートする場合でも、ソース情報ファイルもプロモートする必要があります。これにより、ソース情報ファイルを Fault Analyzer および Application Performance Analyzer で使用でき、引き続き、プログラムのライフサイクルのすべてのステージで IBM 問題判別ツール製品を活用することができます。
各コンパイラーはそれぞれ異なる種類のソース情報ファイルを生成し、各 IBM 問題判別ツール製品はそれぞれ異なる種類のファイルを読み取ります。さまざまな組み合わせをすべて調べるには時間がかかりますが、以下で説明するように、各コンパイラーごとの推奨方式があります。推奨方式を使用すると、そのプログラムは IBM 問題判別ツール製品をフル活用できるようになります。
次の表は、Enterprise COBOL for z/OS バージョン 4 プログラムを IBM 問題判別ツール製品 (Debug Tool for z/OS、Fault Analyzer for z/OS、および Application Performance Analyzer for z/OS) で使用するための準備に使用できる、さまざまなコンパイラー・オプションを示しています。以下の表で推奨されるメソッドは、作成されたロード・モジュールが実稼働環境に適しているかどうかを示します。実稼働環境に適したロード・モジュールでは、著しく大きなランタイム・オーバーヘッドは発生しません。
| コンパイラー・オプション | 作成されたソース情報のファイル・タイプ | ロード・モジュールが実動用に準備できているかどうか。 | Debug Tool for z/OS でサポートおよび推奨されるオプション | Fault Analyzer for z/OS でサポートおよび推奨されるオプション | Application Performance Analyzer for z/OS でサポートおよび推奨されるオプション |
|---|---|---|---|---|---|
| TEST(NOHOOK, SEPARATE, EJPD), LIST, MAP, SOURCE, NONUMBER, XREF(SHORT) | SYSDEBUG | はい | 実動およびテスト用に推奨 | ||
| NOTEST, LIST, MAP, SOURCE, NONUMBER, XREF(SHORT) | コンパイラー・リスト | はい | なし | サポートされる | サポートされる |
| NOTEST, LIST, MAP, SOURCE, NUMBER, XREF(SHORT) | はい | なし | サポートされる | なし | |
| LIST, MAP, SOURCE, NONUMBER, XREF(SHORT) | LANGX ファイル | はい | なし | サポートされる | サポートされる |
表 19 で推奨されているコンパイラー・オプションを使用して Enterprise COBOL for z/OS バージョン 4 プログラムをコンパイルするには、以下の手順を実行します。
Debug Tool for z/OS を使用してプログラムをデバッグする予定の場合、TEST コンパイラー・オプションは必須です。 Fault Analyzer for z/OS または Application Performance Analyzer for z/OS を使用する予定の場合、TEST オプションは任意指定です。
SEPARATE サブオプションを指定すると、SYSDEBUG ファイルが生成されます。
NOHOOK および SEPARATE を指定すると、引き続きデバッグが可能な実動準備完了モジュールが生成されます。
OPT オプションも使用する場合、EJPD によって最適化のレベルが下がる可能性がありますが、デバッガーの JUMPTO および GOTO コマンドが使用できるようになります。これらのコマンドは、OPT および NOEJPD の両方が使用されている場合は使用不可になります。
//SYSDEBUG DD DSN= SYSDEBUG.pds(pgmname),DISP=SHRコンパイラーによって生成された SYSDEBUG ファイルを SYSDEBUG ライブラリーに保存し、ご使用のアプリケーション・プログラムのプログラム名と同じメンバー名を指定します。これは Debug Tool for z/OS、Fault Analyzer for z/OS および Application Performance Analyzer for z/OS のソース情報ファイルです。
以下は、Enterprise COBOL for z/OS バージョン 4 プログラムを IBM 問題判別ツール製品で使用できるようにコンパイルするための JCL の例です。これは、汎用的なサンプルであるため、それぞれのモジュールを生成するための要件をすべて満たすとは限りません。
TEST コンパイラー・オプションが指定されていることに注目してください。 使用しているコンパイラーのバージョンに応じた TEST コンパイラー・オプションの正しいサブオプションをコーディングしてください。 ご使用のプログラムに必要な他の互換コンパイラー・オプションもすべてコーディングできます。
SYSDEBUG DD ステートメントがコーディングされていることにも注目してください。 これはコンパイラーが生成するソース情報ファイルです。これは SYSDEBUG ライブラリー (PDS または PDSE) を参照しています。メンバー名はプログラム名と同じでなければなりません。
Enterprise COBOL for z/OS の場合、必要な変更はこれらのみです。
ただし、リンケージ・エディターのステップではオプションで行う変更があります。下記の例は、特殊な Language Environment 出口モジュールがアプリケーション・ロード・モジュールに組み込まれていることを示しています。これは必須ではありませんが、これによって Debug Tool のパネル 6 を使用できるようになるため、環境によってはデバッガーを簡単に開始できるようになります。パネル 6 を使用して Debug Tool を開始したい場合、それを可能にする 1 つの方法がこの出口モジュールです。Debug Tool のパネル 6 を使用しない予定の場合は、出口モジュールを組み込まないでください。
//* - - - ADD A JOB CARD ABOVE THIS LINE - - -
//*
//* SAMPLE JCL TO PREPARE AN ENTERPRISE COBOL PROGRAM
//* FOR THE IBM ZSERIES PD TOOLS PRODUCTS:
//* FAULT ANALYZER, DEBUG TOOL, AND APPLICATION PERF. ANALYZER
//*
//* NOTES:
//*
//* COMPILER:
//* 1. A TEST COMPILER PARM IS REQUIRED FOR DEBUG TOOL
//* 2. COMPILER PARM TEST(NOHOOK,SEPARATE,EJPD) HAS ADVANTAGES:
//* - THE MODULE IS READY FOR DEBUG TOOL
//* - THE MODULE IS PRODUCTION-READY (NO RUN-TIME OVERHEAD)
//* - A SYSDEBUG FILE IS CREATED THAT CAN BE USED BY DT,FA,APA
//* 3. COMPILER PARMS LIST,MAP,SOURCE,XREF ARE REQUIRED IF YOU PLAN
//* TO USE THE COMPILER LISTING WITH FA OR APA, OR XXXLANGX
//*
//* BINDER (LINKAGE EDITOR):
//* 4. THE INCLUDE FOR MODULE EQAD?CXT IS *OPTIONAL*. IT IS AN
//* LE EXIT MODULE THAT CAN BE USED TO START DEBUG TOOL.
//* UNDERSTAND THE METHODS AVAILABLE FOR STARTING DEBUG TOOL,
//* AND CHOOSE WHETHER YOU WANT TO USE THE LE EXITS.
//* IF YOU USE THIS METHOD, LOAD THE CORRECT EXIT MODULE:
//* EQADBCXT: FOR BATCH PROGRAMS
//* EQADICXT: FOR ONLINE IMS PROGRAMS
//* EQADDCXT: FOR DB2 STORED PROCEDURES (OF TYPE MAIN AND SUB)
//* (for SUB this is supported only for invocations through call_sub)
//* (DO NOT INCLUDE AN EXIT FOR CICS PROGRAMS)
//*
//* SET PARMS FOR THIS COMPILE:
//* ---------------------------
// SET MEM=SAM1 PROGRAM NAME
// SET COBOLLIB='IGY.V4R1.SIGYCOMP' COBOL COMPILER LOADLIB
// SET DTLIB='EQAW.SEQAMOD' DEBUG TOOL LOADLIB
// SET LELIB='CEE.SCEELKED' LE LINKEDIT LIBRARY
// SET UNITDEV=SYSALLDA UNIT FOR TEMP FILES
//*
//* ****************************
//* COMPILE STEP
//* ****************************
//COMPILE EXEC PGM=IGYCRCTL,REGION=0M,
// PARM=('TEST(NOHOOK,SEPARATE,EJPD),LIST,MAP,XREF(SHORT),NONUMBER,SOURCE')
//STEPLIB DD DISP=SHR,DSN=&COBOLLIB
//SYSIN DD DISP=SHR,DSN=&SYSUID..ADLAB.SOURCE(&MEM)
//SYSLIB DD DISP=SHR,DSN=&SYSUID..ADLAB.COPYLIB
//SYSPRINT DD DISP=SHR,DSN=&SYSUID..ADLAB.LISTING(&MEM)
//SYSDEBUG DD DISP=SHR,DSN=&SYSUID..ADLAB.SYSDEBUG(&MEM)
//SYSLIN DD DISP=(MOD,PASS),DSN=&&LOADSET,UNIT=&UNITDEV,
// SPACE=(80,(10,10))
//SYSUT1 DD SPACE=(80,(10,10),,,ROUND),UNIT=&UNITDEV
//SYSUT2 DD SPACE=(80,(10,10),,,ROUND),UNIT=&UNITDEV
//SYSUT3 DD SPACE=(80,(10,10),,,ROUND),UNIT=&UNITDEV
//SYSUT4 DD SPACE=(80,(10,10),,,ROUND),UNIT=&UNITDEV
//SYSUT5 DD SPACE=(80,(10,10),,,ROUND),UNIT=&UNITDEV
//SYSUT6 DD SPACE=(80,(10,10),,,ROUND),UNIT=&UNITDEV
//SYSUT7 DD SPACE=(80,(10,10),,,ROUND),UNIT=&UNITDEV
//*
//CBLPRINT EXEC PGM=IEBGENER,REGION=0M
//SYSPRINT DD SYSOUT=*
//SYSUT1 DD DSN=&SYSUID..ADLAB.LISTING(&MEM),DISP=SHR
//SYSUT2 DD SYSOUT=*
//SYSIN DD DUMMY
//* *********************************
//* LINK-EDIT (BINDER) STEP
//* *********************************
//LKED EXEC PGM=IEWL,REGION=0M,COND=(5,LT,COMPILE),PARM='LIST,XREF'
//SYSLIB DD DISP=SHR,DSN=&LELIB
//DTLIB DD DISP=SHR,DSN=&DTLIB
//SYSLMOD DD DSN=&SYSUID..ADLAB.LOAD(&MEM),DISP=SHR
//SYSLIN DD DISP=(OLD,DELETE),DSN=&&LOADSET
//* INCLUDING A DEBUG TOOL LE EXIT (EQADBCXT, EQADDCXT, OR EQADICXT) IS OPTIONAL.
//* AN EXIT ENABLES STARTING DEBUG TOOL USING THE USER EXIT DATA SET UTILITY
//* (ONE OF THE DEBUG TOOL ISPF UTILITIES)
//* // DD *
//* INCLUDE DTLIB(EQADBCXT)
//SYSPRINT DD SYSOUT=*
//SYSUT1 DD UNIT=&UNITDEV,DCB=BLKSIZE=1024,SPACE=(1024,(200,20))
次の表は、Enterprise COBOL for z/OS バージョン 3、および COBOL for OS/390® および VM プログラムを IBM 問題判別ツール製品 (Debug Tool for z/OS、Fault Analyzer for z/OS、および Application Performance Analyzer for z/OS) で使用するための準備に使用できる、さまざまなコンパイラー・オプションを示しています。以下の表で推奨されるメソッドは、作成されたロード・モジュールが実稼働環境に適しているかどうかを示します。実稼働環境に適したロード・モジュールでは、著しく大きなランタイム・オーバーヘッドは発生しません。
| コンパイラー・オプション | 作成されたソース情報のファイル・タイプ | ロード・モジュールが実動用に準備できているかどうか。 | Debug Tool for z/OS でサポートおよび推奨されるオプション | Fault Analyzer for z/OS でサポートおよび推奨されるオプション | Application Performance Analyzer for z/OS でサポートおよび推奨されるオプション |
|---|---|---|---|---|---|
| TEST(NONE, SYM, SEPARATE), LIST, MAP, SOURCE, NONUMBER, XREF(SHORT) | SYSDEBUG | はい | 実動およびテスト用に推奨 | ||
| NOTEST, LIST, MAP, SOURCE, NONUMBER, NOOPT, XREF(SHORT) | コンパイラー・リスト | はい | なし | サポートされる | サポートされる |
| NOTEST, LIST, MAP, SOURCE, XREF(SHORT), NUMBER | はい | なし | サポートされる | なし | |
| LIST, MAP, SOURCE, NONUMBER, XREF(SHORT) | LANGX ファイル | はい | なし | サポートされる | サポートされる |
表 20 で推奨されているコンパイラー・オプションを使用して Enterprise COBOL for z/OS バージョン 3、および COBOL for OS/390 および VM プログラムをコンパイルするには、以下の手順を実行します。
Debug Tool for z/OS には TEST が必要です。
SEPARATE サブオプションを指定すると、SYSDEBUG ファイルが生成されます。 NONE を SEPARATE と一緒に指定すると、引き続きデバッグが可能な実動準備完了モジュールが生成されます。
OPTIMIZE を指定すると、デバッガーの JUMPTO および GOTO コマンドは使用不可になります。 NOOPTIMIZE を指定すると、これらのコマンドは使用可能になります。
//SYSDEBUG DD DSN= SYSDEBUG.pds(pgmname),DISP=SHRコンパイラーによって生成された SYSDEBUG ファイルを SYSDEBUG ライブラリーに保存し、ご使用のアプリケーション・プログラムのプログラム名と同じメンバー名を指定します。これは Debug Tool for z/OS、Fault Analyzer for z/OS および Application Performance Analyzer for z/OS のソース情報ファイルです。
以下は、Enterprise COBOL for z/OS バージョン 3 プログラムを IBM 問題判別ツール製品で使用できるようにコンパイルするための JCL の例です。これは、汎用的なサンプルであるため、それぞれの要件をすべて満たすとは限りません。
TEST オプションが指定されていることに注目してください。 使用しているコンパイラーのバージョンに応じた TEST コンパイラー・オプションの正しいサブオプションをコーディングしてください。 ご使用のプログラムに必要な他の互換コンパイラー・オプションもすべてコーディングできます。
SYSDEBUG DD ステートメントがコーディングされていることにも注目してください。 これはコンパイラーが生成するソース情報ファイルです。これは SYSDEBUG ライブラリー (PDS または PDSE) を参照しています。メンバー名はプログラム名と同じでなければなりません。
Enterprise COBOL for z/OS の場合、必要な変更はこれらのみです。
ただし、リンケージ・エディターのステップではオプションで行う変更があります。下記の例は、特殊な Language Environment 出口モジュールがアプリケーション・ロード・モジュールに組み込まれていることを示しています。これは必須ではありませんが、これによって Debug Tool のパネル 6 を使用できるようになるため、環境によってはデバッガーを簡単に開始できるようになります。パネル 6 を使用して Debug Tool を開始したい場合、それを可能にする 1 つの方法がこの出口モジュールです。Debug Tool のパネル 6 を使用しない予定の場合は、出口モジュールを組み込まないでください。
//* - - - ADD A JOB CARD ABOVE THIS LINE - - -
//*
//* SAMPLE JCL TO PREPARE AN ENTERPRISE COBOL PROGRAM
//* FOR THE IBM ZSERIES PD TOOLS PRODUCTS:
//* FAULT ANALYZER, DEBUG TOOL, AND APPLICATION PERF. ANALYZER
//*
//* NOTES:
//*
//* COMPILER:
//* 1. A TEST COMPILER PARM IS REQUIRED FOR DEBUG TOOL
//* 2. COMPILER PARM TEST(NONE,SYM,SEP) HAS THREE ADVANTAGES:
//* - THE MODULE IS READY FOR DEBUG TOOL
//* - THE MODULE IS PRODUCTION-READY (NO RUN-TIME OVERHEAD)
//* - A SYSDEBUG FILE IS CREATED THAT CAN BE USED BY DT,FA,APA
//* 3. COMPILER PARMS LIST,MAP,SOURCE,XREF ARE REQUIRED IF YOU PLAN
//* TO USE THE COMPILER LISTING WITH FA OR APA, OR XXXLANGX
//* 4. COMPILER PARM NOOPT IS OPTIONAL. HOWEVER, THE DEBUG TOOL
//* COMMANDS JUMPTO AND GOTO WILL NOT BE AVAILABLE IF
//* THE OPT PARM IS USED
//*
//* BINDER (LINKAGE EDITOR):
//* 5. THE INCLUDE FOR MODULE EQAD?CXT IS *OPTIONAL*. IT IS AN
//* LE EXIT MODULE THAT CAN BE USED TO START DEBUG TOOL.
//* UNDERSTAND THE METHODS AVAILABLE FOR STARTING DEBUG TOOL,
//* AND CHOOSE WHETHER YOU WANT TO USE THE LE EXITS.
//* IF YOU USE THIS METHOD, LOAD THE CORRECT EXIT MODULE:
//* EQADBCXT: FOR BATCH PROGRAMS
//* EQADICXT: FOR ONLINE IMS PROGRAMS
//* EQADDCXT: FOR DB2 STORED PROCEDURES (OF TYPE MAIN AND SUB)
//* (for SUB this is supported only for invocations through call_sub)
//* (DO NOT INCLUDE AN EXIT FOR CICS PROGRAMS)
//*
//* SET PARMS FOR THIS COMPILE:
//* ---------------------------
// SET MEM=SAM1 PROGRAM NAME
// SET COBOLLIB='IGY.V3R4.SIGYCOMP' COBOL COMPILER LOADLIB
// SET DTLIB='EQAW.SEQAMOD' DEBUG TOOL LOADLIB
// SET LELIB='CEE.SCEELKED' LE LINKEDIT LIBRARY
// SET UNITDEV=SYSALLDA UNIT FOR TEMP FILES
//*
//* ****************************
//* COMPILE STEP
//* ****************************
//COMPILE EXEC PGM=IGYCRCTL,REGION=0M,
// PARM=('TEST(NONE,SYM,SEPARATE),LIST,MAP,SOURCE,NONUMBER,XREF(SHORT)')
//STEPLIB DD DISP=SHR,DSN=&COBOLLIB
//SYSIN DD DISP=SHR,DSN=&SYSUID..ADLAB.SOURCE(&MEM)
//SYSLIB DD DISP=SHR,DSN=&SYSUID..ADLAB.COPYLIB
//SYSPRINT DD DISP=SHR,DSN=&SYSUID..ADLAB.LISTING(&MEM)
//SYSDEBUG DD DISP=SHR,DSN=&SYSUID..ADLAB.SYSDEBUG(&MEM)
//SYSLIN DD DISP=(MOD,PASS),DSN=&&LOADSET,UNIT=&UNITDEV,
// SPACE=(80,(10,10))
//SYSUT1 DD SPACE=(80,(10,10),,,ROUND),UNIT=&UNITDEV
//SYSUT2 DD SPACE=(80,(10,10),,,ROUND),UNIT=&UNITDEV
//SYSUT3 DD SPACE=(80,(10,10),,,ROUND),UNIT=&UNITDEV
//SYSUT4 DD SPACE=(80,(10,10),,,ROUND),UNIT=&UNITDEV
//SYSUT5 DD SPACE=(80,(10,10),,,ROUND),UNIT=&UNITDEV
//SYSUT6 DD SPACE=(80,(10,10),,,ROUND),UNIT=&UNITDEV
//SYSUT7 DD SPACE=(80,(10,10),,,ROUND),UNIT=&UNITDEV
//*
//CBLPRINT EXEC PGM=IEBGENER,REGION=0M
//SYSPRINT DD SYSOUT=*
//SYSUT1 DD DSN=&SYSUID..ADLAB.LISTING(&MEM),DISP=SHR
//SYSUT2 DD SYSOUT=*
//SYSIN DD DUMMY
//* *********************************
//* LINK-EDIT (BINDER) STEP
//* *********************************
//LKED EXEC PGM=IEWL,REGION=0M,COND=(5,LT,COMPILE),PARM='LIST,XREF'
//SYSLIB DD DISP=SHR,DSN=&LELIB
//DTLIB DD DISP=SHR,DSN=&DTLIB
//SYSLMOD DD DSN=&SYSUID..ADLAB.LOAD(&MEM),DISP=SHR
//SYSLIN DD DISP=(OLD,DELETE),DSN=&&LOADSET
//* INCLUDING A DEBUG TOOL LE EXIT (EQADBCXT, EQADDCXT, OR EQADICXT) IS OPTIONAL.
//* AN EXIT ENABLES STARTING DEBUG TOOL USING THE USER EXIT DATA SET UTILITY
//* (ONE OF THE DEBUG TOOL ISPF UTILITIES)
//* // DD *
//* INCLUDE DTLIB(EQADBCXT)
//SYSPRINT DD SYSOUT=*
//SYSUT1 DD UNIT=&UNITDEV,DCB=BLKSIZE=1024,SPACE=(1024,(200,20))
次の表は、COBOL for MVS™ および VM プログラムを IBM 問題判別ツール製品 (Debug Tool for z/OS、Fault Analyzer for z/OS、および Application Performance Analyzer for z/OS) で使用するための準備に使用できる、さまざまなコンパイラー・オプションを示しています。以下の表で推奨されるメソッドは、作成されたロード・モジュールが実稼働環境に適しているかどうかを示します。実稼働環境に適したロード・モジュールには、著しく大きなランタイムのオーバーヘッドがありません。
| コンパイラー・オプション | 作成されたソース情報のファイル・タイプ | ロード・モジュールが実動用に準備できているかどうか。 | Debug Tool for z/OS でサポートおよび推奨されるオプション | Fault Analyzer for z/OS でサポートおよび推奨されるオプション | Application Performance Analyzer for z/OS でサポートおよび推奨されるオプション |
|---|---|---|---|---|---|
| TEST(ALL, SYM), LIST, MAP, SOURCE, NOOPT, NONUMBER, XREF(SHORT) | コンパイラー・リスト | いいえ | テスト用に推奨。 (実動でこのコンパイラーに Debug Tool を使用することは推奨されません。) | ||
| NOTEST, LIST, MAP, SOURCE, NONUMBER, XREF(SHORT) | はい | なし | 実動用に推奨 | ||
| NOTEST, LIST, MAP, SOURCE, NONUMBER, XREF(SHORT) | LANGX ファイル | はい | なし | サポートされる | サポートされる |
COBOL for MVS および VM プログラムをコンパイルするには、以下のステップを実行します。
Debug Tool for z/OS には TEST が必要です。
ALL サブオプションによりデバッグ・フックが追加され、それによって多少のランタイム・オーバーヘッドが追加されます。
SYM を指定すると Debug Tool for z/OS に必要なシンボリック・データがモジュールに格納され、それによってモジュールが大幅に拡大します。
その他のオプションは、Debug Tool for z/OS、Fault Analyzer for z/OS、および Application Performance Analyzer for z/OS の必要に合わせてコンパイラー・リストをフォーマットします。
NOTEST を指定すると、Debug Tool によるソース・レベル・デバッグが使用不可になりますが、パフォーマンスは向上し、モジュール・サイズは小さくて済みます。
その他のオプション (OPTIMIZE を除く) は、Fault Analyzer for z/OS および Application Performance Analyzer for z/OS の必要に合わせてコンパイラー・リストをフォーマットします。
//SYSPRINT DD DSN= compiler.listing.pds(pgmname),DISP=SHRコンパイラー・リストをコンパイラー・リスト・ライブラリー内のファイルに保存し、ご使用のアプリケーション・プログラムのプログラム名と同じメンバー名を指定します。これは Debug Tool for z/OS、Fault Analyzer for z/OS および Application Performance Analyzer for z/OS のソース情報ファイルです。
以下は、COBOL for MVS および VM プログラムを IBM 問題判別ツール製品で使用できるようにコンパイルするための JCL の例です。これは、汎用的なサンプルであるため、それぞれの要件をすべて満たすとは限りません。
TEST オプションが指定されていることに注目してください。 使用しているコンパイラーのバージョンに応じた TEST コンパイラー・オプションの正しいサブオプションをコーディングしてください。 ご使用のプログラムに必要な他の互換コンパイラー・オプションもすべてコーディングできます。
さらに、SYSPRINT DD が永続ファイルを参照している点にも注目してください。 これはコンパイラーが生成するソース情報ファイルです。これはリスト・ライブラリー (PDS または PDSE) を参照しています。メンバー名はプログラム名と同じでなければなりません。 COBOL for MVS および VM の場合、必要な変更はこれらのみです。
ただし、リンケージ・エディターのステップではオプションで行う変更があります。下記の例は、特殊な Language Environment 出口モジュールがアプリケーション・ロード・モジュールに組み込まれていることを示しています。これは必須ではありませんが、これによって Debug Tool のパネル 6 を使用できるようになるため、環境によってはデバッガーを簡単に開始できるようになります。パネル 6 を使用して Debug Tool を開始したい場合、それを可能にする 1 つの方法がこの出口モジュールです。Debug Tool のパネル 6 を使用しない予定の場合は、出口モジュールを組み込まないでください。
//* - - - ADD A JOB CARD ABOVE THIS LINE - - -
//*
//* SAMPLE JCL TO PREPARE A COBOL FOR MVS AND VM PROGRAM
//* FOR THE IBM ZSERIES PD TOOLS PRODUCTS:
//* FAULT ANALYZER, DEBUG TOOL, AND APPLICATION PERF. ANALYZER
//*
//* NOTES:
//*
//* COMPILER:
//* 1. A TEST COMPILER PARM IS REQUIRED FOR DEBUG TOOL
//* 2. COMPILER PARMS LIST,MAP,SOURCE,XREF ARE REQUIRED IF YOU PLAN
//* TO USE THE COMPILER LISTING WITH FA OR APA, OR XXXLANGX
//* 3. COMPILER PARM NOOPT IS OPTIONAL. HOWEVER, THE DEBUG TOOL
//* COMMANDS JUMPTO AND GOTO WILL NOT BE AVAILABLE IF
//* THE OPT PARM IS USED
//*
//* BINDER (LINKAGE EDITOR):
//* 4. THE INCLUDE FOR MODULE EQAD?CXT IS *OPTIONAL*. IT IS AN
//* LE EXIT MODULE THAT CAN BE USED TO START DEBUG TOOL.
//* UNDERSTAND THE METHODS AVAILABLE FOR STARTING DEBUG TOOL,
//* AND CHOOSE WHETHER YOU WANT TO USE THE LE EXITS.
//* IF YOU USE THIS METHOD, LOAD THE CORRECT EXIT MODULE:
//* EQADBCXT: FOR BATCH PROGRAMS
//* EQADICXT: FOR ONLINE IMS PROGRAMS
//* EQADDCXT: FOR DB2 STORED PROCEDURES (OF TYPE MAIN AND SUB)
//* (for SUB this is supported only for invocations through call_sub)
//* (DO NOT INCLUDE AN EXIT FOR CICS PROGRAMS)
//*
//* SET PARMS FOR THIS COMPILE:
//* ---------------------------
// SET MEM=SAM1 PROGRAM NAME
// SET COBOLLIB='IGY.SIGYCOMP' COBOL COMPILER LOADLIB
// SET DTLIB='EQAW.SEQAMOD' DEBUG TOOL LOADLIB
// SET LELIB='CEE.SCEELKED' LE LINKEDIT LIBRARY
// SET UNITDEV=SYSALLDA UNIT FOR TEMP FILES
//*
//* ****************************
//* COMPILE STEP
//* ****************************
////COMPILE EXEC PGM=IGYCRCTL,REGION=0M,
// PARM=(NOTEST,LIST,MAP,SOURCE,NONUMBER,XREF(SHORT)')
//STEPLIB DD DISP=SHR,DSN=&COBOLLIB
//SYSIN DD DISP=SHR,DSN=&SYSUID..ADLAB.SOURCE(&MEM)
//SYSLIB DD DISP=SHR,DSN=&SYSUID..ADLAB.COPYLIB
//SYSPRINT DD DISP=SHR,DSN=&SYSUID..ADLAB.LISTING(&MEM)
//SYSDEBUG DD DISP=SHR,DSN=&SYSUID..ADLAB.SYSDEBUG(&MEM)
//SYSLIN DD DISP=(MOD,PASS),DSN=&&LOADSET,UNIT=&UNITDEV,
// SPACE=(80,(10,10))
//SYSUT1 DD SPACE=(80,(10,10),,,ROUND),UNIT=&UNITDEV
//SYSUT2 DD SPACE=(80,(10,10),,,ROUND),UNIT=&UNITDEV
//SYSUT3 DD SPACE=(80,(10,10),,,ROUND),UNIT=&UNITDEV
//SYSUT4 DD SPACE=(80,(10,10),,,ROUND),UNIT=&UNITDEV
//SYSUT5 DD SPACE=(80,(10,10),,,ROUND),UNIT=&UNITDEV
//SYSUT6 DD SPACE=(80,(10,10),,,ROUND),UNIT=&UNITDEV
//SYSUT7 DD SPACE=(80,(10,10),,,ROUND),UNIT=&UNITDEV
//*
//CBLPRINT EXEC PGM=IEBGENER,REGION=0M
//SYSPRINT DD SYSOUT=*
//SYSUT1 DD DSN=&SYSUID..ADLAB.LISTING(&MEM),DISP=SHR
//SYSUT2 DD SYSOUT=*
//SYSIN DD DUMMY
//* *********************************
//* LINK-EDIT (BINDER) STEP
//* *********************************
//LKED EXEC PGM=IEWL,REGION=0M,COND=(5,LT,COMPILE),PARM='LIST,XREF'
//SYSLIB DD DISP=SHR,DSN=&LELIB
//*** DTLIB DD DISP=SHR,DSN=&DTLIB
//SYSLMOD DD DSN=&SYSUID..ADLAB.LOAD(&MEM),DISP=SHR
//SYSLIN DD DISP=(OLD,DELETE),DSN=&&LOADSET
//* INCLUDING A DEBUG TOOL LE EXIT (EQADBCXT, EQADDCXT, OR EQADICXT) IS OPTIONAL.
//* AN EXIT ENABLES STARTING DEBUG TOOL USING THE USER EXIT DATA SET UTILITY
//* (ONE OF THE DEBUG TOOL ISPF UTILITIES)
//* // DD *
//* INCLUDE DTLIB(EQADBCXT)
//SYSPRINT DD SYSOUT=*
//SYSUT1 DD UNIT=&UNITDEV,DCB=BLKSIZE=1024,SPACE=(1024,(200,20))
現在 TEST オプションを使用してプログラムをコンパイルしている場合は、NOTEST の使用を検討してください。NOTEST を使用すると、TEST オプションでコンパイルしている場合は使用できない Debug Tool for z/OS 機能を活用することができます。 NOTEST オプションでコンパイルすると使用できる Debug Tool for z/OS 機能の例として、自動モニター機能や AT ENTRY program name ブレークポイントの使用があります。また、NOTEST でコンパイルすると、デバッグ可能であるが、デバッガーなしで実行する際に追加のオーバーヘッドを引き起こさないモジュールを生成できます。
次の表は、VS COBOL II プログラムを IBM 問題判別ツール製品 (Debug Tool for z/OS、Fault Analyzer for z/OS、および Application Performance Analyzer for z/OS) で使用するための準備に使用できる、さまざまなコンパイラー・オプションを示しています。以下の表で推奨されるメソッドは、作成されたロード・モジュールが実稼働環境に適しているかどうかを示します。実稼働環境に適したロード・モジュールには、著しく大きなランタイムのオーバーヘッドがありません。
| コンパイラー・オプション | 作成されたソース情報のファイル・タイプ | ロード・モジュールが実動用に準備できているかどうか。 | Debug Tool for z/OS でサポートおよび推奨されるオプション | Fault Analyzer for z/OS でサポートおよび推奨されるオプション | Application Performance Analyzer for z/OS でサポートおよび推奨されるオプション |
|---|---|---|---|---|---|
| NOTEST, LIST, MAP, SOURCE, XREF, NONUMBER, NOOFFSET | コンパイラー・リスト | はい | なし | サポートされる | サポートされる |
| NOTEST, LIST, MAP, SOURCE, XREF, NUMBER | はい | なし | サポートされる | なし | |
| NOTEST, LIST, MAP, NOOPT, SOURCE, XREF, NONUMBER | LANGX ファイル | はい | 実動およびテスト用に推奨 | ||
表 22 で推奨されているコンパイラー・オプションを使用して VS COBOL II プログラムをコンパイルするには、以下の手順を実行します。
以下は、VS COBOL II プログラムを IBM 問題判別ツール製品で使用できるようにコンパイルするための JCL の例です。これは、汎用的なサンプルであるため、それぞれの要件をすべて満たすとは限りません。
使用されるコンパイル・オプションに注意し、コンパイラー・リストが LANGX ファイルを生成する追加ステップに渡されることを確認してください。コンパイラー・リストは、永続ファイルに保管するか、一時ファイルに渡すことができます。VS COBOL II の場合、必要な変更はこれのみです。
ただし、リンケージ・エディターのステップではオプションで行う変更があります。以下の例には、アプリケーション・ロード・モジュールの特殊な言語環境プログラムの出口モジュールが含まれています。これは必須ではありませんが、これによって Debug Tool のパネル 6 を使用できるようになるため、環境によってはデバッガーを簡単に開始できるようになります。パネル 6 を使用して Debug Tool を開始したい場合、それを可能にする 1 つの方法がこの出口モジュールです。Debug Tool のパネル 6 を使用しない予定の場合は、出口モジュールを組み込まないでください。 CICS プログラムの場合、またはモジュールが言語環境プログラム・サービスにリンクされていない (COBOL II ランタイム・サービスにリンクされている) 場合は、出口モジュールを含めないでください。
//* - - - ADD A JOB CARD ABOVE THIS LINE - - -
//*
//* SAMPLE JCL TO PREPARE A VS COBOL II PROGRAM
//* FOR THE IBM ZSERIES PD TOOLS PRODUCTS:
//* FAULT ANALYZER, DEBUG TOOL, AND APPLICATION PERF. ANALYZER
//*
//* NOTES:
//*
//* COMPILER:
//* 1. COMPILER OPTIONS LIST,MAP,SOURCE,XREF ARE REQUIRED IF YOU
//* PLAN TO USE THE LISTING WITH A PD TOOLS PRODUCT, OR TO
//* PROCESS THE LISTING WITH AN XXXLANGX UTILITY
//* 2. COMPILER OPTION NOTEST IS SUGGESTED FOR ALL COBOL II
//* PROGRAMS, EVEN IF IBM DEBUG TOOL FOR Z/OS WILL BE USED
//*
//* BINDER (LINKAGE EDITOR):
//* 3. IN THIS EXAMPLE, THE MODULE IS LINKED WITH LANGUAGE
//* ENVIRONMENT RUNTIME SERVICES. THIS IS CONTROLLED BY THE
//* LIBRARY OR LIBRARIES SPECIFIED IN THE SYSLIB DD IN THE
//* BINDER STEP.
//* 4. THE INCLUDE FOR MODULE EQAD?CXT IS *OPTIONAL*. IT IS AN
//* LE EXIT MODULE THAT CAN BE USED TO START DEBUG TOOL.
//* UNDERSTAND THE METHODS AVAILABLE FOR STARTING DEBUG TOOL,
//* AND CHOOSE WHETHER YOU WANT TO USE THE LE EXITS.
//* IF YOU USE THIS METHOD, LOAD THE CORRECT EXIT MODULE:
//* EQADBCXT: FOR BATCH PROGRAMS
//* EQADICXT: FOR ONLINE IMS PROGRAMS
//* EQADDCXT: FOR DB2 STORED PROCEDURES (OF TYPE MAIN AND SUB)
//* (for SUB this is supported only for invocations through call_sub)
//* (DO NOT INCLUDE AN EXIT FOR CICS PROGRAMS, OR FOR
//* PROGRAMS LINKED WITH THE COBOL II RUNTIME SERVICES
//* INSTEAD OF LANGUAGE ENVIRONMENT RUNTIME SERVICES)
//*
//* SET OPTIONS FOR THIS COMPILE:
//* ---------------------------
// SET MEM=SAMII1 PROGRAM NAME
// SET COB2COMP='IGY.V1R4M0.COB2COMP' COBOL II COMPILER LIB
// SET DTLIB='EQAW.SEQAMOD' DEBUG TOOL LOADLIB
// SET LELKED='CEE.SCEELKED' LE LINK LIBRARY
// SET LELIB='CEE.SCEERUN' LE RUNTIME LIBRARY
// SET UNITDEV=SYSALLDA TEMP DATASET UNIT
// SET LANGX='EQALANGX' XXXLANGX UTILITY PROGRAM
// SET LANGXLIB='EQAW.SEQAMOD' LIB FOR XXXLANGX UTILITY
//*
//* ****************************
//* COMPILE STEP
//* ****************************
//COMPILE EXEC PGM=IGYCRCTL,REGION=4M,
// PARM=('NOTEST,LIST,MAP,NOOPT,SOURCE,XREF,NONUMBER',
// 'RES,APOST,LIB,DYNAM,NORENT,NOSSRANGE')
//STEPLIB DD DISP=SHR,DSN=&COB2COMP
//SYSIN DD DISP=SHR,DSN=&SYSUID..ADLAB.SOURCE(&MEM)
//SYSLIB DD DISP=SHR,DSN=&SYSUID..ADLAB.COPYLIB
//SYSPRINT DD DISP=SHR,DSN=&SYSUID..ADLAB.LISTING(&MEM)
//SYSLIN DD DISP=(MOD,PASS),DSN=&&LOADSET,UNIT=&UNITDEV,
// SPACE=(80,(10,10))
//SYSUT1 DD SPACE=(80,(10,10),,,ROUND),UNIT=&UNITDEV
//SYSUT2 DD SPACE=(80,(10,10),,,ROUND),UNIT=&UNITDEV
//SYSUT3 DD SPACE=(80,(10,10),,,ROUND),UNIT=&UNITDEV
//SYSUT4 DD SPACE=(80,(10,10),,,ROUND),UNIT=&UNITDEV
//SYSUT5 DD SPACE=(80,(10,10),,,ROUND),UNIT=&UNITDEV
//SYSUT6 DD SPACE=(80,(10,10),,,ROUND),UNIT=&UNITDEV
//SYSUT7 DD SPACE=(80,(10,10),,,ROUND),UNIT=&UNITDEV
//*
//CBLPRINT EXEC PGM=IEBGENER,REGION=0M
//SYSPRINT DD SYSOUT=*
//SYSUT1 DD DSN=&SYSUID..ADLAB.LISTING(&MEM),DISP=SHR
//SYSUT2 DD SYSOUT=*
//SYSIN DD DUMMY
//*
//* *********************************
//* STEP TO GENERATE A LANGX FILE
//* *********************************
//LANGX EXEC PGM=&LANGX,REGION=32M,
// PARM='(COBOL ERROR 64K CREF'
//STEPLIB DD DISP=SHR,DSN=&LANGXLIB
// DD DISP=SHR,DSN=&LELIB
//LISTING DD DSN=&SYSUID..ADLAB.LISTING(&MEM),DISP=SHR
//IDILANGX DD DISP=SHR,DSN=&SYSUID..ADLAB.EQALANGX(&MEM)
//*
//* *********************************
//* LINK-EDIT (BINDER) STEP
//* *********************************
//LKED EXEC PGM=IEWL,REGION=0M,COND=(5,LT,COMPILE),PARM='LIST,XREF'
//SYSLIB DD DISP=SHR,DSN=&LELKED
//DTLIB DD DISP=SHR,DSN=&DTLIB
//SYSLMOD DD DSN=&SYSUID..ADLAB.LOAD(&MEM),DISP=SHR
//SYSLIN DD DISP=(OLD,DELETE),DSN=&&LOADSET
//* INCLUDING A DEBUG TOOL LE EXIT (EQADBCXT, EQADDCXT, OR EQADICXT) IS OPTIONAL.
//* AN EXIT ENABLES STARTING DEBUG TOOL USING THE USER EXIT DATA SET UTILITY
//* (ONE OF THE DEBUG TOOL ISPF UTILITIES)
//* // DD *
//* INCLUDE DTLIB(EQADBCXT)
//SYSPRINT DD SYSOUT=*
//SYSUT1 DD UNIT=&UNITDEV,DCB=BLKSIZE=1024,SPACE=(1024,(200,20))
次の表は、OS/VS COBOL プログラムを IBM 問題判別ツール製品 (Debug Tool for z/OS、Fault Analyzer for z/OS、および Application Performance Analyzer for z/OS) で使用するための準備に使用できる、さまざまなコンパイラー・オプションを示しています。以下の表で推奨されるメソッドは、作成されたロード・モジュールが実稼働環境に適しているかどうかを示します。実稼働環境に適したロード・モジュールには、著しく大きなランタイムのオーバーヘッドがありません。
| コンパイラー・オプション | 作成されたソース情報のファイル・タイプ | ロード・モジュールが実動用に準備できているかどうか。 | Debug Tool for z/OS でサポートおよび推奨されるオプション | Fault Analyzer for z/OS でサポートおよび推奨されるオプション | Application Performance Analyzer for z/OS でサポートおよび推奨されるオプション |
|---|---|---|---|---|---|
| DMAP, NOCLIST, NOLST, PMAP, SOURCE, VERB, XREF(SHORT) | コンパイラー・リスト | はい | なし | サポートされる | サポートされる |
| (LIST,NOPMAP) または (CLIST,NOPMAP) または (CLIST,PMAP) | はい | なし | なし | なし | |
| NOBATCH, NOCLIST, NOCOUNT, DMAP, NOLST, PMAP, SOURCE, NOSYMDMP, NOTEST, NOOPT, VERB, XREF(SHORT) | LANGX ファイル | はい | 実動およびテスト用に推奨 | ||
OS/VS COBOL プログラムをコンパイルするには、以下のステップを実行します。
以下は、OS/VS プログラムを IBM 問題判別ツール製品で使用できるようにコンパイルするための JCL の例です。
//* - - - ADD A JOB CARD ABOVE THIS LINE - - -
//*
//* SAMPLE JCL TO PREPARE AN OS VS COBOL PROGRAM
//* FOR THE IBM ZSERIES PD TOOLS PRODUCTS:
//* FAULT ANALYZER, DEBUG TOOL, AND APPLICATION PERF. ANALYZER
//*
//* NOTES:
//*
//* COMPILER:
//* - COMPILER PARMS DMAP,NOCLIST,NOLST,PMAP,SOURCE,VERB,XREF
//* ARE REQUIRED IF YOU PLAN TO USE THE COMPILER LISTING WITH
//* PD TOOLS AND/OR PROCESS IT WITH XXXLANGX
//*
//* A STEP THAT PROCESSES THE SYSADATA FILE,
//* AND CREATES A LANGX FILE IS NEEDED.
//*
//* SET PARMS FOR THIS COMPILE:
//* ---------------------------
// SET MEM=SAMOS1 PROGRAM NAME
// SET OSVSCOMP='IGY.VSCOLIB' OS VS COBOL COMPILER LIBRARY
// SET LELIB='CEE.SCEELKED' LE LINKEDIT LIBRARY
// SET UNITDEV=SYSALLDA UNIT FOR TEMP FILES
// SET SCEERUN='CEE.SCEERUN' LANGUAGE ENVIRON SCEERUN LIB
// SET LANGX='EQALANGX' XXXLANGX UTILITY PROGRAM
// SET LANGXLIB='EQAW.SEQAMOD' LIBRARY FOR XXXLANGX UTILITY
//* NOTE: THE XXXLANGX UTILITY IS AVAILABLE WITH DEBUG TOOL,
//* FAULT ANALYZER, AND APA WITH DIFFERENT NAMES. YOU CAN
//* USE ANY OF THEM... THEY ALL PRODUCE THE SAME RESULTS.
//* IF YOU HAVE DEBUG TOOL, YOU CAN SET:
//* LANGX='EQALANGX' LANGXLIB=(THE DT SEQAMOD LIBRARY)
//* IF YOU HAVE FAULT ANALYZER YOU CAN SET:
//* LANGX='IDILANGX' LANGXLIB=(THE FA SIDIAUTH LIBRARY)
//* IF YOU HAVE APA (APP. PERFORMANCE ANALYZER) YOU CAN SET:
//* LANGX='CAZLANGX' LANGXLIB=(THE APA SCAZAUTH LIBRARY)
//*
//* ****************************
//* COMPILE STEP
//* ****************************
//COMPILE EXEC PGM=IKFCBL00,REGION=4M,
// PARM=('DMAP,NOCLIST,NOLST,NOOPT,SOURCE,VERB,XREF(SHORT)')
//* FOR DT (CHECK DEFAULTS): NOBATCH,NOCOUNT,PMAP,NOSYMDMP,NOTEST
//STEPLIB DD DISP=SHR,DSN=&OSVSCOMP
//SYSIN DD DISP=SHR,DSN=&SYSUID..ADLAB.SOURCE(&MEM)
//SYSLIB DD DISP=SHR,DSN=&SYSUID..ADLAB.COPYLIB
//SYSPRINT DD DISP=SHR,DSN=&SYSUID..ADLAB.OSVSCOB.LISTING(&MEM)
//SYSLIN DD DISP=(MOD,PASS),DSN=&&LOADSET,UNIT=&UNITDEV,
// SPACE=(80,(10,10))
//SYSUT1 DD SPACE=(80,(10,10),,,ROUND),UNIT=&UNITDEV
//SYSUT2 DD SPACE=(80,(10,10),,,ROUND),UNIT=&UNITDEV
//SYSUT3 DD SPACE=(80,(10,10),,,ROUND),UNIT=&UNITDEV
//SYSUT4 DD SPACE=(80,(10,10),,,ROUND),UNIT=&UNITDEV
//SYSUT5 DD SPACE=(80,(10,10),,,ROUND),UNIT=&UNITDEV
//SYSUT6 DD SPACE=(80,(10,10),,,ROUND),UNIT=&UNITDEV
//SYSUT7 DD SPACE=(80,(10,10),,,ROUND),UNIT=&UNITDEV
//*
//CBLPRINT EXEC PGM=IEBGENER,REGION=0M
//SYSPRINT DD SYSOUT=*
//SYSUT1 DD DSN=&SYSUID..ADLAB.OSVSCOB.LISTING(&MEM),DISP=SHR
//SYSUT2 DD SYSOUT=*
//SYSIN DD DUMMY
//*
//* *********************************
//* STEP TO GENERATE LANGX FILE
//* *********************************
//LANGX EXEC PGM=&LANGX,REGION=32M,
// PARM='(COBOL ERROR 64K CREF'
//STEPLIB DD DISP=SHR,DSN=&LANGXLIB
// DD DISP=SHR,DSN=&SCEERUN
//LISTING DD DSN=&SYSUID..ADLAB.OSVSCOB.LISTING(&MEM),DISP=SHR
//IDILANGX DD DISP=SHR,DSN=&SYSUID..ADLAB.EQALANGX(&MEM)
//*
//* *********************************
//* LINK-EDIT (BINDER) STEP
//* *********************************
//LKED EXEC PGM=IEWL,REGION=0M,COND=(5,LT,COMPILE),PARM='LIST,XREF'
//SYSLIB DD DISP=SHR,DSN=&LELIB
//SYSLMOD DD DSN=&SYSUID..ADLAB.LOAD(&MEM),DISP=SHR
//SYSLIN DD DISP=(OLD,DELETE),DSN=&&LOADSET
//SYSPRINT DD SYSOUT=*
//SYSUT1 DD UNIT=&UNITDEV,DCB=BLKSIZE=1024,SPACE=(1024,(200,20))
次の表は、Enterprise PL/I バージョン 3.7 以降のプログラムを IBM 問題判別ツール製品 (IBM Debug Tool for z/OS、IBM Fault Analyzer for z/OS、および IBM Application Performance Analyzer for z/OS) で使用するための準備に使用できる、さまざまなコンパイラー・オプションを示しています。以下の表で推奨されるメソッドは、作成されたロード・モジュールが実稼働環境に適しているかどうかを示します。実稼働環境に適したロード・モジュールには、著しく大きなランタイムのオーバーヘッドがありません。
| コンパイラー・オプション | 作成されたソース情報のファイル・タイプ | ロード・モジュールが実動用に準備できているかどうか。 | Debug Tool for z/OS でサポートおよび推奨されるオプション | Fault Analyzer for z/OS でサポートおよび推奨されるオプション | Application Performance Analyzer for z/OS でサポートおよび推奨されるオプション |
|---|---|---|---|---|---|
| Enterprise PL/I バージョン 3.7 の場合: TEST(ALL, SYM, NOHOOK, SEPARATE, SEPNAME, AALL), NOPT, AGGREGATE, ATTRIBUTES (FULL), NOBLKOFF, LIST, MAP, NEST, NONUMBER, OFFSET, OPTIONS, SOURCE, STMT, XREF(FULL)
Enterprise PL/I バージョン 3.8 以降の場合: TEST(ALL, SYM, NOHOOK, SEPARATE, SEPNAME), LISTVIEW(AALL), NOPT, AGGREGATE, ATTRIBUTES (FULL), NOBLKOFF, LIST, MAP, NEST, NONUMBER, OFFSET, OPTIONS, SOURCE, STMT, XREF(FULL) |
Debug Tool for z/OS および Fault Analyzer for z/OS によって使用される SYSDEBUG ファイル。Application Performance Analyzer for z/OS によって使用される LANGX ファイル。 | このモジュールは NOTEST オプションを指定してコンパイルされたモジュールより大きいが、必要な場合はこのモジュールを実動で使用できる。 | テスト用に推奨。 ロード・モジュールのサイズが増大しても問題ない場合、これらのオプションを実稼働環境でも使用できる。 | ||
| AGGREGATE, ATTRIBUTES (FULL), NOBLKOFF, LIST, MAP, NEST, NOTEST, NONUMBER, OFFSET, OPTIONS, SOURCE, STMT, XREF(FULL) | コンパイラー・リスト | はい | なし | サポートされる | なし |
| LANGX ファイル | はい | なし | 実動およびテスト用に推奨 | ||
Enterprise PL/I バージョン 3.7 以降のプログラムをコンパイルするには、以下のステップを実行します。
すべてのプログラムに対して、コンパイラー・オプション TEST(ALL,SYM,NOHOOK,SEPARATE,SEPNAME,AALL), NOPT, AGGREGATE, ATTRIBUTES(FULL), NOBLKOFF, LIST, MAP, NEST, NONUMBER, OFFSET, OPTIONS, SOURCE, STMT, XREF(FULL) を指定します。
すべてのプログラムに対して、コンパイラー・オプション TEST(ALL,SYM,NOHOOK,SEPARATE,SEPNAME), LISTVIEW(AALL), NOPT, AGGREGATE, ATTRIBUTES(FULL), NOBLKOFF, LIST, MAP, NEST, NONUMBER, OFFSET, OPTIONS, SOURCE, STMT, XREF(FULL) を指定します。
TEST(...) および NOPT は、Debug Tool に必要です。
SEPARATE サブオプションを指定すると、SYSDEBUG ファイルが生成されます。 IBM Debug Tool for z/OS のコンパイラーによって、およびオプションで IBM Fault Analyzer for z/OS によって作成された SYSDEBUG ファイルを保存します。
TEST または LISTVIEW の AALL (AFTERALL) サブオプションは、プログラム・ソース情報を SYSDEBUG ファイルに保管します。このファイルには、マクロや INCLUDE など、最後のプリプロセッサーの後の情報が含まれます。この拡張されたソース情報は、デバッグ中に IBM Debug Tool for z/OS のソース・ウィンドウで入手可能です。
その他のオプションは、xxxLANGX ユーティリティーの必要に合わせてコンパイラー・リストをフォーマットします。
最高のパフォーマンスを達成し、デバッグ可能なモジュールを生成するために、TEST(ALL,NOHOOK,SEPARATE) オプションの使用を検討してください。 各組織のポリシーに応じて、このモジュールは実動用と見なすことができます。
すべてのプログラムに対して、NOTEST, AGGREGATE, ATTRIBUTES(FULL), NOBLKOFF, LIST, MAP, NEST, NONUMBER, OFFSET, OPTIONS, SOURCE, STMT, XREF(FULL) を指定します。
NOTEST を指定すると Debug Tool は使用不可になりますが、ロード・モジュールのサイズは小さくなります。
その他のオプションは、xxxLANGX ユーティリティーの必要に合わせてコンパイラー・リストをフォーマットして、IBM Fault Analyzer for z/OS および IBM Application Performance Analyzer for z/OS (ただし、IBM Debug Tool for z/OS は除く) で使用できる実動準備完了モジュールを作成します。
TEST(...SEPARATE) オプションを使用する場合は、第 2 コンパイラー・ステップで次のように SYSDEBUG DD をコーディングします。
//SYSDEBUG DD DSN= sysdebug.pds(pgmname),DISP=SHR
これは、IBM Debug Tool for z/OS、およびオプションで IBM Fault Analyzer for z/OS 用のソース情報ファイルです。このファイルを SYSDEBUG ライブラリーに保存し、ご使用のアプリケーション・プログラムの 1 次入り口点名または CSECT 名と同じメンバー名を指定します。
以下は、Enterprise PL/I for z/OS バージョン 3.7 以降のプログラムを IBM 問題判別ツール製品で使用できるようにコンパイルするための JCL の例です。
//* - - - ADD A JOB CARD ABOVE THIS LINE - - -
//*
//* SAMPLE JCL TO PREPARE AN ENTERPRISE PL/I V3.7 OR LATER
//* PROGRAM FOR THE IBM ZSERIES PD TOOLS PRODUCTS:
//* FAULT ANALYZER, DEBUG TOOL, AND APPLICATION PERF. ANALYZER
//*
//* NOTES:
//*
//* COMPILER:
//* 1. COMPILER PARMS TEST IS REQUIRED FOR DEBUG TOOL
//* 2. COMPILER PARM NOPT IS RECOMMENDED FOR DEBUG TOOL
//* 3. COMPILER PARM:
//* TEST(ALL,SYM,NOHOOK,SEPARATE,SEPNAME,AALL) (V3.7)
//* TEST(ALL,SYM,NOHOOK,SEPARATE,SEPNAME),LISTVIEW(AALL), (V3.8+)
//* IS USED BECAUSE:
//* - THE MODULE IS READY FOR DEBUG TOOL
//* - NOHOOK DOES NOT HAVE RUN-TIME CPU OVERHEAD. HOWEVER, THE
//* MODULE IS LARGER BECAUSE OF STATEMENT TABLE
//* - A SYSDEBUG FILE IS CREATED THAT CAN BE USED BY DT,FA,APA
//* 4. COMPILER PARMS AGGREGATE,ATTRIBUTES(FULL),NOBLKOFF,LIST,
//* MAP,NEST,NONUMBER,OPTIONS,SOURCE,STMT,XREF(FULL) ARE NEEDED
//* TO PROCESS THE COMPILER LISTING WITH XXXLANGX
//*
//* BINDER (LINKAGE EDITOR):
//* 5. THE INCLUDE FOR MODULE EQAD?CXT IS OPTIONAL. IT IS AN
//* LE EXIT MODULE THAT CAN BE USED TO START DEBUG TOOL.
//* UNDERSTAND THE METHODS AVAILABLE FOR STARTING DEBUG TOOL,
//* AND CHOOSE WHETHER YOU WANT TO USE THE LE EXITS.
//* IF YOU USE THIS METHOD, LOAD THE CORRECT EXIT MODULE:
//* EQADBCXT: FOR BATCH PROGRAMS
//* EQADICXT: FOR ONLINE IMS PROGRAMS
//* EQADDCXT: FOR DB2 STORED PROCEDURES (OF TYPE MAIN AND SUB)
//* (for SUB this is supported only for invocations through call_sub)
//* (DO NOT INCLUDE AN EXIT FOR CICS PROGRAMS)
//*
//* SET PARMS FOR THIS COMPILE:
//* ---------------------------
// SET MEM=PADSTAT PROGRAM NAME
// SET PLICOMP='IBMZ.V3R7.SIBMZCMP' PLI COMPILER LOADLIB
// SET DTLIB='EQAW.SEQAMOD' DEBUG TOOL LOADLIB
// SET LEHLQ='CEE' LE HIGH LVL QUALIFIER
// SET UNITDEV=SYSALLDA UNIT FOR TEMP FILES
// SET LANGX='EQALANGX' XXXLANGX UTILITY PROGRAM
// SET LANGXLIB='EQAW.SEQAMOD' LIBRARY FOR XXXLANGX UTILITY
//* NOTE: YOU CAN USE THE XXXLANGX UTILITY SHIPPED WITH DT, FA,
//* OR APA. THE NAMES ARE DIFFERENT, BUT RESULTS ARE THE SAME.
//* USE ANY OF THEM... THEY ALL PRODUCE THE SAME RESULTS.
//* IF YOU HAVE: SET LANGX TO: SET LANGXLIB TO:
//* DEBUG TOOL EQALANGX THE DT SEQAMOD LIBRARY
//* FAULT ANALYZER IDILANGX THE FA SIDIAUTH LIBRARY
//* APA CAZLANGX THE APA SCAZAUTH LIBRARY
//*
//ALLOCOBJ EXEC PGM=IEFBR14 ALLOC OBJ LIB IF NEEDED
//OBJ DD DSN=&SYSUID..ADLAB.OBJ,SPACE=(CYL,(3,1,15)),
// DSORG=PO,RECFM=FB,LRECL=80,BLKSIZE=8000,DISP=(MOD,CATLG)
//*
//* ***************************************
//* COMPILE STEP
//* ***************************************
//COMPILE EXEC PGM=IBMZPLI,REGION=0M,
// PARM=('TEST(ALL,SYM,NOHOOK,SEPARATE,SEPNAME,AALL),LIST,MAP,SOURCE,',
// 'XREF(FULL),NOBLKOFF,AGGREGATE,ATTRIBUTES(FULL),NEST,OPTIONS,NOPT,',
// 'STMT,NONUMBER,OFFSET')
//* Note: The above options are for Enterprise PL/I Version 3.7
//* For Enterprise PL/I Version 3.8+, change the TEST option
//* to TEST(ALL,SYM,NOHOOK,SEPARATE,SEPNAME), and add the
//* LISTVIEW(AALL) option
//STEPLIB DD DSN=&PLICOMP,DISP=SHR
// DD DSN=&LEHLQ..SCEERUN,DISP=SHR
//SYSIN DD DISP=SHR,DSN=&SYSUID..ADLAB.SOURCE(&MEM)
//SYSLIB DD DISP=SHR,DSN=&SYSUID..ADLAB.COPYLIB
//SYSPRINT DD DISP=SHR,DSN=&SYSUID..ADLAB.ENTPLI.LISTING(&MEM)
//SYSDEBUG DD DISP=SHR,DSN=&SYSUID..ADLAB.SYSDEBUG(&MEM)
//SYSUT1 DD SPACE=(CYL,(5,2),,CONTIG),DCB=BLKSIZE=1024,UNIT=&UNITDEV
//SYSLIN DD DSN=&SYSUID..ADLAB.OBJ(&MEM),DISP=SHR
//*
//PLIPRINT EXEC PGM=IEBGENER,REGION=0M
//SYSPRINT DD SYSOUT=*
//SYSUT1 DD DSN=&SYSUID..ADLAB.ENTPLI.LISTING(&MEM),DISP=SHR
//SYSUT2 DD SYSOUT=*
//SYSIN DD DUMMY
//*
//* *********************************
//* STEP TO GENERATE LANGX FILE
//* *********************************
//LANGX EXEC PGM=&LANGX,REGION=32M,
// PARM='(PLI ERROR 64K CREF'
//STEPLIB DD DISP=SHR,DSN=&LANGXLIB
// DD DISP=SHR,DSN=&LEHLQ..SCEERUN
//LISTING DD DSN=&SYSUID..ADLAB.ENTPLI.LISTING(&MEM),DISP=SHR
//IDILANGX DD DISP=SHR,DSN=&SYSUID..ADLAB.EQALANGX(&MEM)
//*
//* *********************************
//* LINK-EDIT (BINDER) STEP
//* *********************************
//LINK EXEC PGM=IEWL,PARM=(LET,MAP,LIST),REGION=0M
//SYSLIB DD DSN=&LEHLQ..SCEELKED,DISP=SHR
//DTLIB DD DSN=&DTLIB,DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSLMOD DD DISP=SHR,DSN=&SYSUID..ADLAB.LOAD(&MEM)
//SYSUT1 DD UNIT=SYSDA,SPACE=(TRK,(10,10))
//SYSLIN DD DSN=&SYSUID..ADLAB.OBJ(&MEM),DISP=(OLD,PASS)
//* INCLUDING A DEBUG TOOL LE EXIT (EQADBCXT, EQADDCXT, OR EQADICXT)
//* IS OPTIONAL. THE EXIT ENABLES STARTING DEBUG TOOL WITH THE
//* USER EXIT DATA SET UTILITY (ONE OF THE DEBUG TOOL ISPF UTILITIES)
//*
//* // DD *
//* INCLUDE DTLIB(EQADBCXT)
次の表は、Enterprise PL/I バージョン 3.5 およびバージョン 3.6 のプログラムを IBM 問題判別ツール製品 (IBM Debug Tool for z/OS、IBM Fault Analyzer for z/OS、および IBM Application Performance Analyzer for z/OS) で使用するための準備に使用できる、さまざまなコンパイラー・オプションを示しています。以下の表で推奨されるメソッドは、作成されたロード・モジュールが実稼働環境に適しているかどうかを示します。実稼働環境に適したロード・モジュールには、著しく大きなランタイムのオーバーヘッドがありません。
| コンパイラー・オプション | 作成されたソース情報のファイル・タイプ | ロード・モジュールが実動用に準備できているかどうか。 | Debug Tool for z/OS でサポートおよび推奨されるオプション | Fault Analyzer for z/OS でサポートおよび推奨されるオプション | Application Performance Analyzer for z/OS でサポートおよび推奨されるオプション |
|---|---|---|---|---|---|
| ソースを展開するためのプリプロセス (第 1 ステージ)、コンパイル時 (第 2 ステージ):
Enterprise PL/I バージョン 3.5 の場合: TEST(ALL, SYM, NOHOOK, SEPARATE), NOPT, AGGREGATE, ATTRIBUTES (FULL), NOBLKOFF, LIST, MAP, NEST, NONUMBER, OFFSET, OPTIONS, SOURCE, STMT, XREF(FULL) Enterprise PL/I バージョン 3.6 の場合: TEST(ALL, SYM, NOHOOK, SEPARATE, SEPNAME), NOPT, AGGREGATE, ATTRIBUTES (FULL), NOBLKOFF, LIST, MAP, NEST, NONUMBER, OFFSET, OPTIONS, SOURCE, STMT, XREF(FULL) |
Debug Tool for z/OS および Fault Analyzer for z/OS によって使用される SYSDEBUG ファイル。Application Performance Analyzer for z/OS によって使用される LANGX ファイル。 | このモジュールは NOTEST オプションを指定してコンパイルされたモジュールより大きいが、必要な場合はこのモジュールを実動で使用できる。 | テスト用に推奨。 ロード・モジュールのサイズが増大しても問題ない場合、これらのオプションを実稼働環境でも使用できる。 | ||
| AGGREGATE, ATTRIBUTES (FULL), NOBLKOFF, LIST, MAP, NEST, NOTEST, NONUMBER, OFFSET, OPTIONS, SOURCE, STMT, XREF(FULL) | コンパイラー・リスト | はい | なし | サポートされる | なし |
| LANGX ファイル | はい | なし | 実動およびテスト用に推奨 | ||
Enterprise PL/I バージョン 3.5 およびバージョン 3.6 のプログラムをコンパイルするには、以下のステップを実行します。
すべてのプログラムに対して、コンパイラー・オプション TEST(ALL,SYM,NOHOOK,SEPARATE), NOPT, AGGREGATE, ATTRIBUTES(FULL), NOBLKOFF, LIST, MAP, NEST, NONUMBER, OFFSET, OPTIONS, SOURCE, STMT, XREF(FULL) を指定します。
すべてのプログラムに対して、コンパイラー・オプション TEST(ALL,SYM,NOHOOK,SEPARATE,SEPNAME), NOPT, AGGREGATE, ATTRIBUTES(FULL), NOBLKOFF, LIST, MAP, NEST, NONUMBER, OFFSET, OPTIONS, SOURCE, STMT, XREF(FULL) を指定します。
TEST(...) および NOPT は、Debug Tool に必要です。
SEPARATE サブオプションを指定すると、SYSDEBUG ファイルが生成されます。 Debug Tool のコンパイラーによって (およびオプションで Fault Analyzer によって) 作成された SYSDEBUG ファイルを保存します。
その他のオプションは、xxxLANGX ユーティリティーの必要に合わせてコンパイラー・リストをフォーマットします。
最高のパフォーマンスを達成し、デバッグ可能なモジュールを生成するために、TEST(ALL,SYM,NOHOOK,SEPARATE) の使用を検討してください。 各組織のポリシーに応じて、このモジュールは実動用と見なすことができます。
NOTEST を指定すると Debug Tool は使用不可になりますが、ロード・モジュールのサイズは小さくなります。
その他のオプションは、xxxLANGX ユーティリティーの必要に合わせてコンパイラー・リストをフォーマットして、Fault Analyzer for z/OS および Application Performance Analyzer for z/OS (ただし、Debug Tool for z/OS は除く) で使用できる実動準備完了モジュールを作成します。
TEST(...SEPARATE) パラメーターを使用する場合は、第 2 コンパイラー・ステップで次のように SYSDEBUG DD をコーディングします。
//SYSDEBUG DD DSN= sysdebug.pds(pgmname),DISP=SHR
これは、IBM Debug Tool for z/OS、IBM Application Performance Analyzer for z/OS、およびオプションで IBM Fault Analyzer for z/OS 用のソース情報ファイルです。このファイルを SYSDEBUG ライブラリーに保存し、ご使用のアプリケーション・プログラムの 1 次入り口点名または CSECT 名と同じメンバー名を指定します。
以下は、Enterprise PL/I for z/OS バージョン 3.5 またはバージョン 3.6 のプログラムを IBM 問題判別ツール製品で使用できるようにコンパイルするための JCL の例です。
//* - - - ADD A JOB CARD ABOVE THIS LINE - - -
//*
//* SAMPLE JCL TO PREPARE AN ENTERPRISE PL/I V3.5 OR
//* ENTERPRISE PL/I V3.6 PROGRAM FOR THE IBM ZSERIES
//* FOR THE IBM ZSERIES PD TOOLS PRODUCTS:
//* FAULT ANALYZER, DEBUG TOOL, AND APPLICATION PERF. ANALYZER
//*
//* NOTES:
//*
//* COMPILER:
//* 1. A 2-STAGE COMPILE IS PERFORMED. STAGE 1 (PREPROCESS) IS
//* DONE TO EXPAND INCLUDES AND MACROS IN THE PROGRAM, SO THAT
//* THE SYSDEBUG FILE CREATED IN STAGE 2 (COMPILE) HAS ALL STMTS.
//* 2. COMPILER PARMS TEST AND NOPT ARE REQUIRED FOR DEBUG TOOL
//* 3. COMPILER PARM TEST(ALL,SYM,NOHOOK,SEP) (V3.5) OR
//* TEST(ALL,SYM,NOHOOK,SEP,SEPNAME) (V3.6) IS USED BECAUSE:
//* - THE MODULE IS READY FOR DEBUG TOOL
//* - NOHOOK DOES NOT HAVE RUN-TIME CPU OVERHEAD. HOWEVER, THE
//* MODULE IS LARGER BECAUSE OF STATEMENT TABLE
//* - A SYSDEBUG FILE IS CREATED THAT CAN BE USED BY DT,FA,APA
//* 4. COMPILER PARMS AGGREGATE,ATTRIBUTES(FULL),NOBLKOFF,LIST,
//* MAP,NEST,NONUMBER,OPTIONS,SOURCE,STMT,XREF(FULL) ARE NEEDED
//* TO PROCESS THE COMPILER LISTING WITH XXXLANGX
//*
//* BINDER (LINKAGE EDITOR):
//* 5. THE INCLUDE FOR MODULE EQAD?CXT IS OPTIONAL. IT IS AN
//* LE EXIT MODULE THAT CAN BE USED TO START DEBUG TOOL.
//* UNDERSTAND THE METHODS AVAILABLE FOR STARTING DEBUG TOOL,
//* AND CHOOSE WHETHER YOU WANT TO USE THE LE EXITS.
//* IF YOU USE THIS METHOD, LOAD THE CORRECT EXIT MODULE:
//* EQADBCXT: FOR BATCH PROGRAMS
//* EQADICXT: FOR ONLINE IMS PROGRAMS
//* EQADDCXT: FOR DB2 STORED PROCEDURES (OF TYPE MAIN AND SUB)
//* (for SUB this is supported only for invocations through call_sub)
//* (DO NOT INCLUDE AN EXIT FOR CICS PROGRAMS)
//*
//* SET PARMS FOR THIS COMPILE:
//* ---------------------------
// SET MEM=PADSTAT PROGRAM NAME
// SET PLICOMP='IBMZ.V3R5.SIBMZCMP' PLI COMPILER LOADLIB
// SET DTLIB='EQAW.SEQAMOD' DEBUG TOOL LOADLIB
// SET LEHLQ='CEE' LE HIGH LVL QUALIFIER
// SET UNITDEV=SYSALLDA UNIT FOR TEMP FILES
// SET LANGX='EQALANGX' XXXLANGX UTILITY PROGRAM
// SET LANGXLIB='EQAW.SEQAMOD' LIBRARY FOR XXXLANGX UTILITY
//* NOTE: YOU CAN USE THE XXXLANGX UTILITY SHIPPED WITH DT, FA,
//* OR APA. THE NAMES ARE DIFFERENT, BUT RESULTS ARE THE SAME
//* USE ANY OF THEM... THEY ALL PRODUCE THE SAME RESULTS.
//* IF YOU HAVE: SET LANGX TO: SET LANGXLIB TO:
//* DEBUG TOOL EQALANGX THE DT SEQAMOD LIBRARY
//* FAULT ANALYZER IDILANGX THE FA SIDIAUTH LIBRARY
//* APA CAZLANGX THE APA SCAZAUTH LIBRARY
//*
//ALLOCOBJ EXEC PGM=IEFBR14 ALLOC OBJ LIB IF NEEDED
//OBJ DD DSN=&SYSUID..ADLAB.OBJ,SPACE=(CYL,(3,1,15)),
// DSORG=PO,RECFM=FB,LRECL=80,BLKSIZE=8000,DISP=(MOD,CATLG)
//* ***************************************
//* PREPROCESS STEP (COMPILE STAGE 1)
//* ***************************************
//PRECOMP EXEC PGM=IBMZPLI,REGION=0M,
// PARM=('MACRO,MDECK,NOCOMPILE,NOSYNTAX,INSOURCE')
//STEPLIB DD DSN=&PLICOMP,DISP=SHR
// DD DSN=&LEHLQ..SCEERUN,DISP=SHR
//SYSIN DD DISP=SHR,DSN=&SYSUID..ADLAB.SOURCE(&MEM)
//SYSLIB DD DISP=SHR,DSN=&SYSUID..ADLAB.COPYLIB
//SYSPRINT DD SYSOUT=*
//SYSUT1 DD SPACE=(1024,(200,50),,CONTIG,ROUND),DCB=BLKSIZE=1024,
// UNIT=&UNITDEV
//SYSPUNCH DD DISP=(MOD,PASS),DSN=&&SRC1,UNIT=&UNITDEV,
// SPACE=(80,(10,10))
//*
//* ***************************************
//* COMPILE STEP (COMPILE STAGE 2)
//* ***************************************
//COMPILE EXEC PGM=IBMZPLI,REGION=0M,
// PARM=('TEST(ALL,SYM,NOHOOK,SEPARATE),LIST,MAP,SOURCE,XREF(FULL),',
// 'NOBLKOFF,AGGREGATE,ATTRIBUTES(FULL),NEST,OPTIONS,NOPT,',
// 'STMT,NONUMBER,OFFSET')
//* Note: The above options are for Enterprise PL/I Version 3.5
//* For Enterprise PL/I Version 3.6, change the TEST option
//* to: TEST(ALL,SYM,NOHOOK,SEPARATE,SEPNAME)
//STEPLIB DD DSN=&PLICOMP,DISP=SHR
// DD DSN=&LEHLQ..SCEERUN,DISP=SHR
//SYSIN DD DSN=&&SRC1,DISP=(OLD,PASS)
//SYSLIB DD DISP=SHR,DSN=&SYSUID..ADLAB.COPYLIB
//SYSPRINT DD DISP=SHR,DSN=&SYSUID..ADLAB.ENTPLI.LISTING(&MEM)
//SYSDEBUG DD DISP=SHR,DSN=&SYSUID..ADLAB.SYSDEBUG(&MEM)
//SYSUT1 DD SPACE=(CYL,(5,2),,CONTIG),DCB=BLKSIZE=1024,UNIT=&UNITDEV
//SYSLIN DD DSN=&SYSUID..ADLAB.OBJ(&MEM),DISP=SHR
//*
//PLIPRINT EXEC PGM=IEBGENER,REGION=0M
//SYSPRINT DD SYSOUT=*
//SYSUT1 DD DSN=&SYSUID..ADLAB.ENTPLI.LISTING(&MEM),DISP=SHR
//SYSUT2 DD SYSOUT=*
//SYSIN DD DUMMY
//*
//* *********************************
//* STEP TO GENERATE LANGX FILE
//* *********************************
//LANGX EXEC PGM=&LANGX,REGION=32M,
// PARM='(PLI ERROR 64K CREF'
//STEPLIB DD DISP=SHR,DSN=&LANGXLIB
// DD DISP=SHR,DSN=&LEHLQ..SCEERUN
//LISTING DD DSN=&SYSUID..ADLAB.ENTPLI.LISTING(&MEM),DISP=SHR
//IDILANGX DD DISP=SHR,DSN=&SYSUID..ADLAB.EQALANGX(&MEM)
//*
//* *********************************
//* LINK-EDIT (BINDER) STEP
//* *********************************
//LINK EXEC PGM=IEWL,PARM=(LET,MAP,LIST),REGION=0M
//SYSLIB DD DSN=&LEHLQ..SCEELKED,DISP=SHR
//DTLIB DD DSN=&DTLIB,DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSLMOD DD DISP=SHR,DSN=&SYSUID..ADLAB.LOAD(&MEM)
//SYSUT1 DD UNIT=SYSDA,SPACE=(TRK,(10,10))
//SYSLIN DD DSN=&SYSUID..ADLAB.OBJ(&MEM),DISP=(OLD,PASS)
//* INCLUDING A DEBUG TOOL LE EXIT (EQADBCXT, EQADDCXT, OR EQADICXT)
//* IS OPTIONAL. THE EXIT ENABLES STARTING DEBUG TOOL WITH THE
//* USER EXIT DATA SET UTILITY (ONE OF THE DEBUG TOOL ISPF UTILITIES)
//* // DD *
//* INCLUDE DTLIB(EQADBCXT)
次の表は、Enterprise PL/I バージョン 3.4 以前のプログラムを IBM 問題判別ツール製品 (Debug Tool for z/OS、Fault Analyzer for z/OS、および Application Performance Analyzer for z/OS) で使用するための準備に使用できる、さまざまなコンパイラー・オプションを示しています。以下の表で推奨されるメソッドは、作成されたロード・モジュールが実稼働環境に適しているかどうかを示します。実稼働環境に適したロード・モジュールには、著しく大きなランタイムのオーバーヘッドがありません。
| コンパイラー・オプション | 作成されたソース情報のファイル・タイプ | ロード・モジュールが実動用に準備できているかどうか。 | Debug Tool for z/OS でサポートおよび推奨されるオプション | Fault Analyzer for z/OS でサポートおよび推奨されるオプション | Application Performance Analyzer for z/OS でサポートおよび推奨されるオプション |
|---|---|---|---|---|---|
| ソースを展開するためのプリプロセス (第 1 ステージ)、コンパイル時 (第 2 ステージ): TEST(ALL), NOPT, AGGREGATE, ATTRIBUTES (FULL), NOBLKOFF, LIST, MAP, NEST, NONUMBER, OFFSET, OPTIONS, SOURCE, STMT, XREF(FULL)) | Debug Tool for z/OS によって使用される展開済みソース・ファイル、Fault Analyzer for z/OS および Application Performance Analyzer for z/OS によって使用される LANGX ファイル | いいえ | テスト用に推奨。 (実動でこのコンパイラーに Debug Tool を使用することは推奨されません。) | ||
| AGGREGATE, ATTRIBUTES (FULL), NOBLKOFF, LIST, MAP, NEST, NOTEST, NONUMBER, OFFSET, OPTIONS, SOURCE, STMT, XREF(FULL)) | コンパイラー・リスト | はい | なし | サポートされる | なし |
| LANGX ファイル | はい | なし | 実動およびテスト用に推奨 | ||
Enterprise PL/I バージョン 3.4 以前のプログラムをコンパイルするには、以下のステップを実行します。
TEST(ALL) および NOPT は Debug Tool に必要です。デバッグ・フックが挿入され、それにより、多少のランタイム・オーバーヘッドが追加されます。 Debug Tool に必要なシンボリック・データもモジュールに格納され、これによってモジュールが大幅に拡大する可能性があります。
その他のオプションは、xxxLANGX ユーティリティーの必要に合わせてコンパイラー・リストをフォーマットします。
NOTEST を指定すると Debug Tool は使用不可になりますが、最高のパフォーマンスを達成できます。これにより、Fault Analyzer for z/OS および Application Performance Analyzer for z/OS (ただし、Debug Tool は除きます) で使用できる実動準備完了モジュールが生成されます。
その他のオプションは、xxxLANGX ユーティリティーの必要に合わせてコンパイラー・リストをフォーマットします。
以下は、Enterprise PL/I for z/OS バージョン 3.4 以前のプログラムを IBM 問題判別ツール製品で使用できるようにコンパイルするための JCL の例です。
//* - - - ADD A JOB CARD ABOVE THIS LINE - - -
//*
//* SAMPLE JCL TO COMPILE WITH ENTERPRISE PLI V3.4 AND PREVIOUS
//* FOR THE IBM ZSERIES PD TOOLS PRODUCTS:
//* FAULT ANALYZER, DEBUG TOOL, AND APPLICATION PERF. ANALYZER
//*
//* NOTES:
//*
//* COMPILER:
//* 1. A 2-STAGE COMPILE IS PERFORMED. STAGE 1 (PREPROCESS) IS
//* DONE TO EXPAND INCLUDES AND MACROS IN THE PROGRAM, SO THAT
//* A SOURCE FILE IS CREATED FOR DEBUG TOOL THAT HAS ALL STMTS.
//* 2. COMPILER PARM TEST AND NOPT ARE REQUIRED FOR DEBUG TOOL
//* 3. COMPILER PARMS AGGREGATE,ATTRIBUTES(FULL),NOBLKOFF,LIST,
//* MAP,NEST,NONUMBER,OPTIONS,SOURCE,STMT,XREF(FULL) ARE NEEDED
//* TO PROCESS THE COMPILER LISTING WITH XXXLANGX
//*
//* BINDER (LINKAGE EDITOR):
//* 4. THE INCLUDE FOR MODULE EQAD?CXT IS OPTIONAL. IT IS AN
//* LE EXIT MODULE THAT CAN BE USED TO START DEBUG TOOL.
//* UNDERSTAND THE METHODS AVAILABLE FOR STARTING DEBUG TOOL,
//* AND CHOOSE WHETHER YOU WANT TO USE THE LE EXITS.
//* IF YOU USE THIS METHOD, LOAD THE CORRECT EXIT MODULE:
//* EQADBCXT: FOR BATCH PROGRAMS
//* EQADICXT: FOR ONLINE IMS PROGRAMS
//* EQADDCXT: FOR DB2 STORED PROCEDURES (OF TYPE MAIN AND SUB)
//* (for SUB this is supported only for invocations through call_sub)
//* (DO NOT INCLUDE AN EXIT FOR CICS PROGRAMS)
//*
//* SET PARMS FOR THIS COMPILE:
//* ---------------------------
// SET MEM=PTEST PROGRAM NAME
// SET PLICOMP='IBMZ.V3R4.SIBMZCMP' PLI COMPILER LOADLIB
// SET DTLIB='EQAW.SEQAMOD' DEBUG TOOL LOADLIB
// SET LEHLQ='CEE' LE HIGH LVL QUALIFIER
// SET UNITDEV=SYSALLDA UNIT FOR TEMP FILES
// SET LANGX='EQALANGX' XXXLANGX UTILITY PROGRAM
// SET LANGXLIB='EQAW.SEQAMOD' LIBRARY FOR XXXLANGX UTILITY
//* NOTE: YOU CAN USE THE XXXLANGX UTILITY SHIPPED WITH DT, FA,
//* OR APA. THEY NAMES ARE DIFFERENT, BUT RESULTS ARE THE SAME
//* USE ANY OF THEM... THEY ALL PRODUCE THE SAME RESULTS.
//* IF YOU HAVE: SET LANGX TO: SET LANGXLIB TO:
//* DEBUG TOOL EQALANGX THE DT SEQAMOD LIBRARY
//* FAULT ANALYZER IDILANGX THE FA SIDIAUTH LIBRARY
//* APA CAZLANGX THE APA SCAZAUTH LIBRARY
//*
//ALLOCOBJ EXEC PGM=IEFBR14 ALLOC OBJ LIB IF NEEDED
//XSOURCE DD DSN=&SYSUID..ADLAB.EXPANDED.SOURCE,SPACE=(CYL,(3,1,15)),
// DSORG=PO,RECFM=FB,LRECL=80,BLKSIZE=8000,DISP=(MOD,CATLG)
//OBJ DD DSN=&SYSUID..ADLAB.OBJ,SPACE=(CYL,(3,1,15)),
// DSORG=PO,RECFM=FB,LRECL=80,BLKSIZE=8000,DISP=(MOD,CATLG)
//* ***************************************
//* PREPROCESS STEP (COMPILE STAGE 1)
//* ***************************************
//PRECOMP EXEC PGM=IBMZPLI,REGION=0M,
// PARM=('MACRO,MDECK,NOCOMPILE,NOSYNTAX,INSOURCE')
//STEPLIB DD DSN=&PLICOMP,DISP=SHR
// DD DSN=&LEHLQ..SCEERUN,DISP=SHR
//SYSIN DD DISP=SHR,DSN=&SYSUID..ADLAB.SOURCE(&MEM)
//SYSLIB DD DISP=SHR,DSN=&SYSUID..ADLAB.COPYLIB
//SYSPRINT DD SYSOUT=*
//SYSUT1 DD SPACE=(1024,(200,50),,CONTIG,ROUND),DCB=BLKSIZE=1024,
// UNIT=&UNITDEV
//SYSPUNCH DD DISP=SHR,DSN=&SYSUID..ADLAB.EXPANDED.SOURCE(&MEM)
//*
//* ***************************************
//* COMPILE STEP (COMPILE STAGE 2)
//* ***************************************
//COMPILE EXEC PGM=IBMZPLI,REGION=0M,
// PARM=('TEST(ALL),LIST,MAP,SOURCE,XREF(FULL),',
// 'NOBLKOFF,AGGREGATE, ATTRIBUTES(FULL),NEST,OPTIONS,NOPT,',
// 'STMT,NONUMBER,OFFSET')
//STEPLIB DD DSN=&PLICOMP,DISP=SHR
// DD DSN=&LEHLQ..SCEERUN,DISP=SHR
//SYSIN DD DISP=SHR,DSN=&SYSUID..ADLAB.EXPANDED.SOURCE(&MEM)
//SYSLIB DD DISP=SHR,DSN=&SYSUID..ADLAB.COPYLIB
//SYSPRINT DD DISP=SHR,DSN=&SYSUID..ADLAB.ENTPLI.LISTING(&MEM)
//SYSUT1 DD SPACE=(CYL,(5,2),,CONTIG),DCB=BLKSIZE=1024,UNIT=&UNITDEV
//SYSLIN DD DSN=&SYSUID..ADLAB.OBJ(&MEM),DISP=SHR
//*
//PLIPRINT EXEC PGM=IEBGENER,REGION=0M
//SYSPRINT DD SYSOUT=*
//SYSUT1 DD DSN=&SYSUID..ADLAB.ENTPLI.LISTING(&MEM),DISP=SHR
//SYSUT2 DD SYSOUT=*
//SYSIN DD DUMMY
//*
//* *********************************
//* STEP TO GENERATE LANGX FILE
//* *********************************
//LANGX EXEC PGM=&LANGX,REGION=32M,
// PARM='(PLI ERROR 64K CREF'
//STEPLIB DD DISP=SHR,DSN=&LANGXLIB
// DD DISP=SHR,DSN=&LEHLQ..SCEERUN
//LISTING DD DSN=&SYSUID..ADLAB.ENTPLI.LISTING(&MEM),DISP=SHR
//IDILANGX DD DISP=SHR,DSN=&SYSUID..ADLAB.EQALANGX(&MEM)
//*
//* *********************************
//* LINK-EDIT (BINDER) STEP
//* *********************************
//LINK EXEC PGM=IEWL,PARM=(LET,MAP,LIST),REGION=0M
//SYSLIB DD DSN=&LEHLQ..SCEELKED,DISP=SHR
//DTLIB DD DSN=&DTLIB,DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSLMOD DD DISP=SHR,DSN=&SYSUID..ADLAB.LOAD(&MEM)
//SYSUT1 DD UNIT=SYSDA,SPACE=(TRK,(10,10))
//SYSLIN DD DSN=&SYSUID..ADLAB.OBJ(&MEM),DISP=(OLD,PASS)
//* INCLUDING A DEBUG TOOL LE EXIT (EQADBCXT, EQADDCXT, OR EQADICXT)
//* IS OPTIONAL. THE EXIT ENABLES STARTING DEBUG TOOL WITH THE
//* USER EXIT DATA SET UTILITY (ONE OF THE DEBUG TOOL ISPF UTILITIES)
//* // DD *
//* INCLUDE DTLIB(EQADBCXT)
次の表は、Enterprise COBOL for z/OS バージョン 4 プログラムを IBM 問題判別ツール製品 (Debug Tool for z/OS、Fault Analyzer for z/OS、および Application Performance Analyzer for z/OS) で使用するための準備に使用できる、さまざまなコンパイラー・オプションを示しています。以下の表で推奨されるメソッドは、作成されたロード・モジュールが実稼働環境に適しているかどうかを示します。実稼働環境に適したロード・モジュールには、著しく大きなランタイムのオーバーヘッドがありません。
テスト環境では、リストと LANGX ファイル (Fault Analyzer for z/OS および Application Performance Analyzer for z/OS 用) の両方が必要です。実動では、LANGX ファイルのみが推奨されます。
| コンパイラー・オプション | 作成されたソース情報のファイル・タイプ | ロード・モジュールが実動用に準備できているかどうか。 | Debug Tool for z/OS でサポートおよび推奨されるオプション | Fault Analyzer for z/OS でサポートおよび推奨されるオプション | Application Performance Analyzer for z/OS でサポートおよび推奨されるオプション |
|---|---|---|---|---|---|
| TEST(ALL), AGGREGATE, ATTRIBUTES (FULL), ESD, LIST, MAP, NEST, NOPT, OPTIONS, SOURCE, STMT, XREF(FULL) | コンパイラー・リスト | いいえ | テスト用に推奨。 (実動でこのコンパイラーに Debug Tool を使用することは推奨されません。) | サポートされる | サポートされる |
| LANGX ファイル | いいえ | なし | サポートされる | なし | |
| NOTEST, AGGREGATE, ATTRIBUTES (FULL), ESD, LIST, MAP, NEST, OPTIONS, SOURCE, STMT, XREF(FULL) | コンパイラー・リスト | はい | なし | サポートされる | 実動およびテスト用に推奨 |
| LANGX ファイル | はい | なし | 実動およびテスト用に推奨 | なし |
PL/I for MVS および VM プログラムと OS PL/I プログラムをコンパイルするには、以下のステップを実行します。
TEST(ALL) および NOOPT は Debug Tool に必要です。TEST によりデバッグ・フックが追加され、それによって多少のランタイム・オーバーヘッドが追加されます。 Debug Tool に必要なシンボリック・データがモジュールに格納され、これによってモジュールが大幅に拡大する可能性があります。
その他のオプションは、Debug Tool および xxxLANGX ユーティリティーの必要に合わせてコンパイラー・リストをフォーマットします。
NOTEST を指定すると Debug Tool は使用不可になりますが、最高のパフォーマンスを達成できます。
その他のオプションは、xxxLANGX ユーティリティーの必要に合わせてコンパイラー・リストをフォーマットします。
これにより、Fault Analyzer for z/OS および Application Performance Analyzer for z/OS (ただし、Debug Tool for z/OS は除きます) で使用できる実動準備完了モジュールが生成されます。
以下は、PL/I for MVS および VM プログラムを IBM 問題判別ツール製品で使用できるようにコンパイルするための JCL の例です。
//* - - - ADD A JOB CARD ABOVE THIS LINE - - -
//*
//* SAMPLE JCL TO PREPARE A PLI FOR MVS AND VM PROGRAM
//* FOR THE IBM ZSERIES PD TOOLS PRODUCTS:
//* FAULT ANALYZER, DEBUG TOOL, AND APPLICATION PERF. ANALYZER
//*
//* NOTES:
//*
//* COMPILER:
//* 1. COMPILER PARM TEST IS REQUIRED FOR DEBUG TOOL
//* 2. COMPILER PARMS AGGREGATE,ATTRIBUTES(FULL),ESD,LIST,
//* MAP,NEST,OPTIONS,SOURCE,STMT,XREF(FULL) ARE NEEDED
//* FOR PD TOOLS TO PROCESS THE COMPILER LISTING
//*
//* BINDER (LINKAGE EDITOR):
//* 3. THE INCLUDE FOR MODULE EQAD?CXT IS OPTIONAL. IT IS AN
//* LE EXIT MODULE THAT CAN BE USED TO START DEBUG TOOL.
//* UNDERSTAND THE METHODS AVAILABLE FOR STARTING DEBUG TOOL,
//* AND CHOOSE WHETHER YOU WANT TO USE THE LE EXITS.
//* IF YOU USE THIS METHOD, LOAD THE CORRECT EXIT MODULE:
//* EQADBCXT: FOR BATCH PROGRAMS
//* EQADICXT: FOR ONLINE IMS PROGRAMS
//* EQADDCXT: FOR DB2 STORED PROCEDURES (OF TYPE MAIN AND SUB)
//* (for SUB this is supported only for invocations through call_sub)
//* (DO NOT INCLUDE AN EXIT FOR CICS PROGRAMS)
//*
//* SET PARMS FOR THIS COMPILE:
//* ---------------------------
// SET MEM=PADSTAT PROGRAM NAME
// SET PLICOMP='IEL.V1R1M1.SIELCOMP' PLI COMPILER LOADLIB
// SET DTLIB='EQAW.SEQAMOD' DEBUG TOOL LOADLIB
// SET LEHLQ='CEE' LE HIGH LVL QUALIFIER
// SET UNITDEV=SYSALLDA UNIT FOR TEMP FILES
// SET LANGX='EQALANGX' XXXLANGX UTILITY PROGRAM
// SET LANGXLIB='EQAW.SEQAMOD' LIBRARY FOR XXXLANGX UTILITY
//* NOTE: YOU CAN USE THE XXXLANGX UTILITY SHIPPED WITH DT, FA,
//* OR APA. THE NAMES ARE DIFFERENT, BUT RESULTS ARE THE SAME
//* USE ANY OF THEM... THEY ALL PRODUCE THE SAME RESULTS.
//* IF YOU HAVE: SET LANGX TO: SET LANGXLIB TO:
//* DEBUG TOOL EQALANGX THE DT SEQAMOD LIBRARY
//* FAULT ANALYZER IDILANGX THE FA SIDIAUTH LIBRARY
//* APA CAZLANGX THE APA SCAZAUTH LIBRARY
//*
//ALLOCOBJ EXEC PGM=IEFBR14 ALLOC OBJ LIB IF NEEDED
//OBJ DD DSN=&SYSUID..ADLAB.OBJ,SPACE=(CYL,(3,1,15)),
// DSORG=PO,RECFM=FB,LRECL=80,BLKSIZE=8000,DISP=(MOD,CATLG)
//*
//* ***************************************
//* COMPILE STEP
//* ***************************************
//*
//COMPILE EXEC PGM=IEL1AA,REGION=6M,
// PARM=('TEST(ALL),NOPT,AGGREGATE,ATTRIBUTES(FULL),ESD,LIST,MAP,',
// 'NEST,OPTIONS,SOURCE,STMT,XREF(FULL)')
//STEPLIB DD DSN=&PLICOMP,DISP=SHR
//SYSIN DD DISP=SHR,DSN=&SYSUID..ADLAB.SOURCE(&MEM)
//SYSLIB DD DISP=SHR,DSN=&SYSUID..ADLAB.COPYLIB
//SYSPRINT DD DISP=SHR,DSN=&SYSUID..ADLAB.PLIMVS.LISTING(&MEM)
//SYSUT1 DD SPACE=(CYL,(1,1)),UNIT=SYSDA
//SYSLIN DD DSN=&SYSUID..ADLAB.OBJ(&MEM),DISP=SHR
//*
//PLIPRINT EXEC PGM=IEBGENER,REGION=0M
//SYSPRINT DD SYSOUT=*
//SYSUT1 DD DSN=&SYSUID..ADLAB.PLIMVS.LISTING(&MEM),DISP=SHR
//SYSUT2 DD SYSOUT=*
//SYSIN DD DUMMY
//*
//* *********************************
//* STEP TO GENERATE LANGX FILE
//* *********************************
//LANGX EXEC PGM=&LANGX,REGION=32M,
// PARM='(PLI ERROR 64K CREF'
//STEPLIB DD DISP=SHR,DSN=&LANGXLIB
// DD DISP=SHR,DSN=&LEHLQ..SCEERUN
//LISTING DD DSN=&SYSUID..ADLAB.PLIMVS.LISTING(&MEM),DISP=SHR
//IDILANGX DD DISP=SHR,DSN=&SYSUID..ADLAB.EQALANGX(&MEM)
//*
//* *********************************
//* LINK-EDIT (BINDER) STEP
//* *********************************
//LINK EXEC PGM=IEWL,PARM=(LET,MAP,LIST),REGION=0M
//SYSLIB DD DSN=&LEHLQ..SCEELKED,DISP=SHR
//DTLIB DD DSN=&DTLIB,DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSLMOD DD DISP=SHR,DSN=&SYSUID..ADLAB.LOAD(&MEM)
//SYSUT1 DD UNIT=SYSDA,SPACE=(TRK,(10,10))
//SYSLIN DD DSN=&SYSUID..ADLAB.OBJ(&MEM),DISP=(OLD,PASS)
//* INCLUDING A DEBUG TOOL LE EXIT (EQADBCXT, EQADDCXT, OR EQADICXT)
//* IS OPTIONAL. THE EXIT ENABLES STARTING DEBUG TOOL WITH THE
//* USER EXIT DATA SET UTILITY (ONE OF THE DEBUG TOOL ISPF UTILITIES)
//* // DD *
//* INCLUDE DTLIB(EQADBCXT)
次の表は、z/OS XL C および C++ プログラムを IBM 問題判別ツール製品 (Debug Tool for z/OS、Fault Analyzer for z/OS、および Application Performance Analyzer for z/OS) で使用するための準備に使用できる、さまざまなコンパイラー・オプションを示しています。以下の表で推奨されるメソッドは、作成されたロード・モジュールが実稼働環境に適しているかどうかを示します。実稼働環境に適したロード・モジュールには、著しく大きなランタイムのオーバーヘッドがありません。
| コンパイラー・オプション | 生成される出力 | ロード・モジュールが実動用に準備できているかどうか。 | Debug Tool for z/OS でサポートおよび推奨されるオプション | Fault Analyzer for z/OS でサポートおよび推奨されるオプション | Application Performance Analyzer for z/OS でサポートおよび推奨されるオプション |
|---|---|---|---|---|---|
| ソースを展開するためのプリプロセス (第 1 ステージ)、コンパイル時 (第 2 ステージ): TEST, ATTRIBUTE(FULL), NOIPA, LIST, NESTINC(255), NOOFFSET, NOOPT, SOURCE, XREF | Debug Tool for z/OS によって使用される展開済みソース・ファイル、Fault Analyzer for z/OS および Application Performance Analyzer for z/OS によって使用されるコンパイラー・リスト | いいえ | テスト用に推奨。 (実動でこのコンパイラーに Debug Tool を使用することは推奨されません。) | サポートされる | サポートされる |
| Debug Tool for z/OS によって使用される展開済みソース・ファイル、Fault Analyzer for z/OS および Application Performance Analyzer for z/OS によって使用される LANGX ファイル | いいえ | サポートされる | サポートされる | サポートされる | |
| NOTEST, ATTRIBUTE(FULL), NOIPA, LIST, NESTINC(255), NOOFFSET, NOOPT, SOURCE, XREF | コンパイラー・リスト | はい | なし | 実動およびテスト用に推奨 | 実動およびテスト用に推奨 |
| LANGX ファイル | はい | なし | サポートされる | サポートされる | |
| ソースを展開するためのプリプロセス (第 1 ステージ)。 コンパイル時 (第 2 ステージ): DEBUG(FORMAT (DWARF), HOOK(LINE, NOBLOCK, PATH), SYMBOL, FILE(location)) | 展開済みソース・ファイルおよび DWARF ファイル | いいえ | サポートされる (実動でこのコンパイラーに Debug Tool を使用することは推奨されません。) | なし | なし |
| コンパイラー・オプション | 生成される出力 | ロード・モジュールが実動用に準備できているかどうか。 | Debug Tool for z/OS でサポートおよび推奨されるオプション | Fault Analyzer for z/OS でサポートおよび推奨されるオプション | Application Performance Analyzer for z/OS でサポートおよび推奨されるオプション |
|---|---|---|---|---|---|
| ソースを展開するためのプリプロセス (第 1 ステージ)、コンパイル時 (第 2 ステージ): TEST(ALL), AGGREGATE, NOIPA, LIST, NESTINC(255), NOOFFSET, NOOPT, SOURCE, XREF | Debug Tool for z/OS によって使用される展開済みソース・ファイル、Fault Analyzer for z/OS および Application Performance Analyzer for z/OS によって使用されるコンパイラー・リスト | いいえ | テスト用に推奨。 (実動でこのコンパイラーに Debug Tool を使用することは推奨されません。) | サポートされる | サポートされる |
| Debug Tool for z/OS によって使用される展開済みソース・ファイル、Fault Analyzer for z/OS および Application Performance Analyzer for z/OS によって使用される LANGX ファイル | いいえ | サポートされる | サポートされる | サポートされる | |
| NOTEST, AGGREGATE, NOIPA, LIST, NESTINC(255), NOOFFSET, NOOPT, SOURCE, XREF | コンパイラー・リスト | はい | なし | 実動およびテスト用に推奨 | 実動およびテスト用に推奨 |
| LANGX ファイル | はい | なし | サポートされる | サポートされる | |
| ソースを展開するためのプリプロセス (第 1 ステージ)。 コンパイル時 (第 2 ステージ): DEBUG(FORMAT (DWARF), HOOK(LINE, NOBLOCK, PATH), SYMBOL, FILE(location)) | 展開済みソース・ファイルおよび DWARF ファイル | いいえ | サポートされる (実動でこのコンパイラーに Debug Tool を使用することは推奨されません。) | なし | なし |
z/OS XL C および C++ プログラムをコンパイルするには、以下のステップを実行します。
TEST および NOOPT は Debug Tool に必要です。デバッグ・フックが挿入され、それにより、ランタイム・オーバーヘッドが追加されます。 Debug Tool に必要なシンボリック・データがモジュールに格納され、これによってモジュールが大幅に拡大する可能性があります。
その他のオプションは、Fault Analyzer for z/OS および Application Performance Analyzer for z/OS の必要に合わせてコンパイラー・リストをフォーマットします。
TEST(ALL) および NOOPT は Debug Tool に必要です。デバッグ・フックが挿入され、それにより、ランタイム・オーバーヘッドが追加されます。 Debug Tool に必要なシンボリック・データがモジュールに格納され、これによってモジュールが大幅に拡大する可能性があります。
その他のオプションは、Fault Analyzer for z/OS および Application Performance Analyzer for z/OS の必要に合わせてコンパイラー・リストをフォーマットします。
NOTEST を指定すると Debug Tool は使用不可になりますが、最高のパフォーマンスを達成できます。これにより、Fault Analyzer for z/OS および Application Performance Analyzer for z/OS (ただし、Debug Tool for z/OS は除きます) で使用できる実動準備完了モジュールが生成されます。
その他のオプションは、Fault Analyzer for z/OS および Application Performance Analyzer for z/OS の必要に合わせてコンパイラー・リストをフォーマットします。
//SYSCPRT DD DSN=compiler.listing.pds(csect-name),DISP=SHR
#pragma csect(code, "csect_name")ここで、PDS(E) を使用している場合、csect_name はコンパイラー・リストまたは LANGX ファイル・メンバー名に相当します。
以下は、z/OS C/C++ プログラムを IBM 問題判別ツール製品で使用できるようにコンパイルするための JCL の例です。
//* ADD A JOB CARD HERE
//*
//*
//* SAMPLE JCL TO PREPARE A Z/OS C PROGRAM PROGRAM
//* FOR THE IBM ZSERIES PD TOOLS PRODUCTS:
//* FAULT ANALYZER, DEBUG TOOL, AND APPLICATION PERF. ANALYZER
//*
//* NOTES:
//*
//* COMPILER:
//* 1. A 2-STAGE COMPILE IS PERFORMED. STAGE 1 (PREPROCESS) IS
//* DONE TO EXPAND INCLUDES AND MACROS IN THE PROGRAM AND TO
//* PRODUCE AN EXPANDED SOURCE FILE.
//* 2. THE EXPANDED SOURCE FILE IS RETAINED. IT IS USED BY
//* DEBUG TOOL.
//* 2. COMPILER PARMS TEST AND NOOPT ARE REQUIRED FOR DEBUG TOOL.
//* 3. COMPILER PARMS AGGREGATE, NOIPA, LIST, NOOFFSET, SOURCE,
//* AND XREF(FULL) ARE NEEDED TO FORMAT THE COMPILER LISTING
//* SO THAT IT CAN BE PROCESSED WITH XXXLANGX
//*
//* A STEP RUNS TO PRODUCE A LANGX FILE FOR FAULT ANALYZER AND APA.
//* NOTE: YOU CAN USE THE XXXLANGX UTILITY SHIPPED WITH DT, FA,
//* OR APA. THE NAMES ARE DIFFERENT, BUT THE RESULTS ARE THE SAME.
//* USE ANY OF THEM... THEY ALL PRODUCE THE SAME RESULTS.
//* IF YOU HAVE: THEN EXECUTE MODULE:
//* DEBUG TOOL EQALANGX, AND ENSURE THAT THE DT SEQAMOD LIBRARY
//* IS AVAILABLE (VIA STEPLIB, JOBLIB, OR LINKLIST)
//* FAULT ANALYZER IDILANGX, AND ENSURE THAT THE FA SIDIAUTH LIBRARY
//* IS AVAILABLE (VIA STEPLIB, JOBLIB, OR LINKLIST)
//* APA CAZLANGX, AND ENSURE THAT THE APA SCAZAUTH LIBRARY
//* IS AVAILABLE (VIA STEPLIB, JOBLIB, OR LINKLIST)
//*
//* BINDER (LINKAGE EDITOR):
//* 1. AN INCLUDE FOR MODULE EQAD?CXT IS OPTIONAL. IT IS AN
//* LE EXIT MODULE THAT CAN BE USED TO START DEBUG TOOL.
//* UNDERSTAND THE METHODS AVAILABLE FOR STARTING DEBUG TOOL,
//* AND CHOOSE WHETHER YOU WANT TO USE THE LE EXITS.
//* IF YOU USE THIS METHOD, INCLUDE THE CORRECT EXIT MODULE:
//* EQADBCXT: FOR BATCH PROGRAMS
//* EQADICXT: FOR ONLINE IMS PROGRAMS
//* EQADDCXT: FOR DB2 STORED PROCEDURES (OF TYPE MAIN AND SUB)
//* (for SUB this is supported only for invocations through call_sub)
//* (DO NOT INCLUDE AN EXIT FOR CICS PROGRAMS)
//*
//* SET PARMS FOR THIS COMPILE:
//* ---------------------------
//* CPRFX: THE PREFIX THE C/C++ COMPILE IS INSTALLED UNDER
//* LEPRFX: THE PREFIX FOR THE LE RUNTIME AND LINK LIBS
//* DTPRFX: THE PREFIX OF THE DEBUG TOOL SEQAMOD LIBRARY
//*
// SET CPRFX=CBC
// SET LEPRFX=CEE
// SET DTPRFX=EQAW
//*
//*******************************************************************/
//* CREATE C/C++ COMPILER LISTING SYSPRINT, EXPANDED SOURCE DEBUG, */
//* AND EQALANGX FILES */
//*******************************************************************/
//ALLOC EXEC PGM=IEFBR14
//LISTING DD DSN=&SYSUID..ADLAB.CLST,
// DISP=(MOD,CATLG),
// DCB=(DSORG=PO,RECFM=VBA,LRECL=137,BLKSIZE=0),
// SPACE=(TRK,(20,20,50)),UNIT=SYSDA
//DBGSRC DD DSN=&SYSUID..ADLAB.CDBG,
// DISP=(MOD,CATLG),
// DCB=(DSORG=PO,RECFM=FB,LRECL=80,BLKSIZE=0),
// SPACE=(TRK,(20,20,50)),UNIT=SYSDA
//LANGX DD DSN=&SYSUID..ADLAB.EQALANGX,
// DISP=(MOD,CATLG),
// DCB=(DSORG=PO,RECFM=VB,LRECL=1562,BLKSIZE=0),
// SPACE=(TRK,(40,40,50)),UNIT=SYSDA
//* *
//****************************************************************
//*-------------------------------------------------------------------
//* COMPILE STEP1: GENERATE EXPANDED C/C++ SOURCE FILE IN THE DD
//* SYSUT10
//*-------------------------------------------------------------------
//COMP1 EXEC PGM=CCNDRVR,REGION=0M,
// PARM=('PP(COMMENTS,NOLINES)')
//STEPLIB DD DSNAME=&LEPRFX..SCEERUN2,DISP=SHR
// DD DSNAME=&CPRFX..SCCNCMP,DISP=SHR
//SYSMSGS DD DUMMY,DSN=&CPRFX..SCBC3MSG(EDCMSGE),DISP=SHR
//SYSLIB DD DSNAME=&LEPRFX..SCEEH.H,DISP=SHR
// DD DSNAME=&LEPRFX..SCEEH.SYS.H,DISP=SHR
// DD DSNAME=&SYSUID..ADLAB.COPYLIB,DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//SYSCPRT DD SYSOUT=*
//SYSUT1 DD UNIT=SYSDA,SPACE=(32000,(30,30)),
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=3200)
//SYSUT5 DD UNIT=SYSDA,SPACE=(32000,(30,30)),
// DCB=(RECFM=FB,LRECL=3200,BLKSIZE=12800)
//SYSUT6 DD UNIT=SYSDA,SPACE=(32000,(30,30)),
// DCB=(RECFM=FB,LRECL=3200,BLKSIZE=12800)
//SYSUT7 DD UNIT=SYSDA,SPACE=(32000,(30,30)),
// DCB=(RECFM=FB,LRECL=3200,BLKSIZE=12800)
//SYSUT8 DD UNIT=SYSDA,SPACE=(32000,(30,30)),
// DCB=(RECFM=FB,LRECL=3200,BLKSIZE=12800)
//SYSUT9 DD UNIT=SYSDA,SPACE=(32000,(30,30)),
// DCB=(RECFM=VB,LRECL=137,BLKSIZE=882)
//SYSUT10 DD DISP=SHR,DSN=&SYSUID..ADLAB.CDBG(TMC01A)
//SYSUT14 DD UNIT=SYSDA,SPACE=(32000,(30,30)),
// DCB=(RECFM=FB,LRECL=3200,BLKSIZE=12800)
//SYSUT16 DD UNIT=SYSDA,SPACE=(32000,(30,30)),
// DCB=(RECFM=FB,LRECL=3200,BLKSIZE=12800)
//SYSUT17 DD UNIT=SYSDA,SPACE=(32000,(30,30)),
// DCB=(RECFM=FB,LRECL=3200,BLKSIZE=12800)
//SYSLIN DD DUMMY
//SYSIN DD DSNAME=&SYSUID..ADLAB.SOURCE(TMC01A),DISP=SHR
//*
//*-------------------------------------------------------------------
//* COMPILE STEP2: COMPILE THE EXPANDED SOURCE FILE WITH THE DEBUG
//* COMPILER OPTION TEST(ALL)
//*-------------------------------------------------------------------
//COMP2 EXEC PGM=CCNDRVR,REGION=0M,
// PARM=('TEST(ALL), AGGREGATE, NOIPA, LIST, NESTINC(255),',
// ' NOOFFSET, NOOPT, SOURCE, XREF')
//STEPLIB DD DSNAME=&LEPRFX..SCEERUN2,DISP=SHR
// DD DSNAME=&CPRFX..SCCNCMP,DISP=SHR
// DD DSNAME=&LEPRFX..SCEERUN,DISP=SHR
//SYSMSGS DD DUMMY,DSN=&CPRFX..SCBC3MSG(EDCMSGE),DISP=SHR
//SYSLIB DD DSNAME=&LEPRFX..SCEEH.H,DISP=SHR
// DD DSNAME=&LEPRFX..SCEEH.SYS.H,DISP=SHR
//SYSCPRT DD DISP=SHR,DSN=&SYSUID..ADLAB.CLST(TMC01A)
//SYSOUT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSUT1 DD UNIT=SYSDA,SPACE=(32000,(30,30)),
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=3200)
//SYSUT5 DD UNIT=SYSDA,SPACE=(32000,(30,30)),
// DCB=(RECFM=FB,LRECL=3200,BLKSIZE=12800)
//SYSUT6 DD UNIT=SYSDA,SPACE=(32000,(30,30)),
// DCB=(RECFM=FB,LRECL=3200,BLKSIZE=12800)
//SYSUT7 DD UNIT=SYSDA,SPACE=(32000,(30,30)),
// DCB=(RECFM=FB,LRECL=3200,BLKSIZE=12800)
//SYSUT8 DD UNIT=SYSDA,SPACE=(32000,(30,30)),
// DCB=(RECFM=FB,LRECL=3200,BLKSIZE=12800)
//SYSUT9 DD UNIT=SYSDA,SPACE=(32000,(30,30)),
// DCB=(RECFM=VB,LRECL=137,BLKSIZE=882)
//SYSUT10 DD SYSOUT=*
//SYSUT14 DD UNIT=SYSDA,SPACE=(32000,(30,30)),
// DCB=(RECFM=FB,LRECL=3200,BLKSIZE=12800)
//SYSUT16 DD UNIT=SYSDA,SPACE=(32000,(30,30)),
// DCB=(RECFM=FB,LRECL=3200,BLKSIZE=12800)
//SYSUT17 DD UNIT=SYSDA,SPACE=(32000,(30,30)),
// DCB=(RECFM=FB,LRECL=3200,BLKSIZE=12800)
//SYSLIN DD DSN=&&TEMOBJ1(TMC01A),DISP=(,PASS),UNIT=SYSDA,
// SPACE=(TRK,(20,20,20)),DCB=(RECFM=FB,BLKSIZE=3120,LRECL=80,DSORG=PO)
//SYSIN DD DSNAME=&SYSUID..ADLAB.CDBG(TMC01A),DISP=SHR
//*
//*-------------------------------------------------------------------
//* LINK STEP: LINK THE COMPILED OBJECT DECK
//*-------------------------------------------------------------------
//LKED EXEC PGM=IEWL,PARM=(LET,MAP,LIST)
//SYSLIB DD DSN=&LEPRFX..SCEELKED,DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSLMOD DD DISP=SHR,DSN=&SYSUID..ADLAB.LOAD
//SYSUT1 DD SPACE=(TRK,(10,10)),UNIT=SYSDA
//OBJECT DD DISP=(OLD,PASS),DSN=&&TEMOBJ1
//* DTLIB DD DSN=&DTPRFX..SEQAMOD,DISP=SHR
//SYSLIN DD *
INCLUDE OBJECT(TMC01A)
ENTRY CEESTART
NAME TMC01(R)
/*
//* INCLUDING A DEBUG TOOL LE EXIT (EQADBCXT, EQADDCXT, OR EQADICXT)
//* IS OPTIONAL. THE EXIT ENABLES STARTING DEBUG TOOL WITH THE
//* USER EXIT DATA SET UTILITY (ONE OF THE DEBUG TOOL ISPF UTILITIES).
//* AN INCLUDE CAN BE ADDED TO SYSLIN IN THE APPRORIATE SEQUENCE:
//* INCLUDE DTLIB(EQADBCXT)
//**************************************************************
//* GENERATE THE TMC01A EQALANGX FILE
//**************************************************************
//LANGX1 EXEC PGM=EQALANGX,REGION=32M,
// PARM='(C ERROR'
//STEPLIB DD DISP=SHR,DSN=&DTPRFX..SEQAMOD
DD DISP=SHR,DSN=&LEPRFX..SCEERUN
//LISTING DD DSN=&SYSUID..ADLAB.CLST(TMC01A),DISP=SHR
//IDILANGX DD DSN=&SYSUID..ADLAB.EQALANGX(TMC01AX),DISP=(OLD)
次の表は、プログラムを IBM 問題判別ツール製品 (Debug Tool for z/OS、Fault Analyzer for z/OS、および Application Performance Analyzer for z/OS) で使用するための準備に使用できる、さまざまなアセンブラー・オプションを示しています。以下の表で推奨されるメソッドは、作成されたロード・モジュールが実稼働環境に適しているかどうかを示します。実稼働環境に適したロード・モジュールには、著しく大きなランタイムのオーバーヘッドがありません。
| アセンブラー・オプション | 作成されたソース情報のファイル・タイプ | ロード・モジュールが実動用に準備できているかどうか。 | Debug Tool for z/OS でサポートおよび推奨されるオプション | Fault Analyzer for z/OS でサポートおよび推奨されるオプション | Application Performance Analyzer for z/OSでサポートおよび推奨されるオプション |
|---|---|---|---|---|---|
| ADATA | SYSADATA ファイル | はい | なし | サポートされる | サポートされる |
| ADATA | LANGX ファイル | はい | 実動およびテスト用に推奨 | ||
プログラムをアセンブルするには、以下のステップを実行します。
ADATA はアセンブラーに対して SYSADATA ファイルの生成を指示します。このファイルには、プログラムに関するソースおよびシンボリック・データが含まれます。これにより、Debug Tool for z/OS を使用してデバッグできる実動準備完了モジュールが生成されます。ADATA は、アセンブルされたモジュールの内容には影響しません。
以下は、プログラムを IBM 問題判別ツール製品で使用できるようにアセンブルするための JCL の例です。
//* - - - ADD A JOB CARD ABOVE THIS LINE - - -
//*
//* SAMPLE JCL TO PREPARE AN ASSEMBLER PROGRAM
//* FOR THE IBM ZSERIES PD TOOLS PRODUCTS:
//* FAULT ANALYZER, DEBUG TOOL, AND APPLICATION PERF. ANALYZER
//*
//* NOTES:
//*
//* ASSEMBLER:
//* 1. AN ADATA PARM IS REQUIRED TO PRODUCE A SYSADATA FILE
//*
//* A STEP THAT PROCESSES THE SYSADATA FILE,
//* AND CREATES A LANGX FILE IS NEEDED.
//*
//* BINDER (LINKAGE EDITOR):
//* 1. AMODE / RMODE CAN BE CODED AS NEEDED BY THE PROGRAM. THEY ARE
//* NOT REQUIRED FOR PD TOOLS.
//*
//* SET PARMS FOR THIS COMPILE:
//* ---------------------------
// SET MEM=ASAM1 PROGRAM NAME
// SET Language EnvironmentHLQ='CEE' Language Environment HIGH LVL QUALIFIER
// SET UNITDEV=SYSALLDA UNIT FOR TEMP FILES
// SET LANGX='EQALANGX' XXXLANGX UTILITY PROGRAM
// SET LANGXLIB='EQAW.SEQAMOD' LIBRARY FOR XXXLANGX UTILITY
//* NOTE: YOU CAN USE THE XXXLANGX UTILITY SHIPPED WITH DT, FA,
//* OR APA. THE NAMES ARE DIFFERENT, BUT RESULTS ARE THE SAME
//* USE ANY OF THEM... THEY ALL PRODUCE THE SAME RESULTS.
//* IF YOU HAVE: SET LANGX TO: SET LANGXLIB TO:
//* DEBUG TOOL EQALANGX THE DT SEQAMOD LIBRARY
//* FAULT ANALYZER IDILANGX THE FA SIDIAUTH LIBRARY
//* APA CAZLANGX THE APA SCAZAUTH LIBRARY
//*
//* *********************************
//* ASSEMBLER STEP
//* *********************************
//ASM1 EXEC PGM=ASMA90,COND=(4,LT),REGION=32M,
// PARM='ADATA,OBJECT'
//SYSIN DD DISP=SHR,DSN=&SYSUID..ADLAB.SOURCE(&MEM)
//SYSPRINT DD SYSOUT=*
//SYSLIN DD DISP=SHR,DSN=&SYSUID..ADLAB.OBJ(&MEM)
//SYSADATA DD DISP=SHR,DSN=&SYSUID..ADLAB.SYSADATA(&MEM)
//SYSLIB DD DSN=SYS1.MODGEN,DISP=SHR
// DD DSN=SYS1.MACLIB,DISP=SHR
// DD DSN=&LEHLQ..SCEEMAC,DISP=SHR
//SYSUT1 DD DISP=(NEW,DELETE),DSN=&&SYSUT1,SPACE=(1700,(900,450)),
// UNIT=&UNITDEV
//SYSUT2 DD DISP=(NEW,DELETE),DSN=&&SYSUT2,SPACE=(1700,(600,300)),
// UNIT=&UNITDEV
//SYSUT3 DD DISP=(NEW,DELETE),DSN=&&SYSUT3,SPACE=(1700,(600,300)),
// UNIT=&UNITDEV
//*
//* *********************************
//* STEP TO GENERATE LANGX FILE
//* *********************************
//LANGX EXEC PGM=&LANGX,REGION=32M,
// PARM='(ASM ERROR'
//STEPLIB DD DISP=SHR,DSN=&LANGXLIB
// DD DISP=SHR,DSN=&LEHLQ..SCEERUN
//SYSADATA DD DSN=&SYSUID..ADLAB.SYSADATA(&MEM),DISP=SHR
//IDILANGX DD DSN=&SYSUID..ADLAB.EQALANGX(&MEM),DISP=SHR
//*
//* *********************************
//* LINK-EDIT (BINDER) STEP
//* *********************************
//LINK EXEC PGM=IEWL,PARM='MAP',REGION=0M
//SYSLIB DD DSN=&LEHLQ..SCEELKED,DISP=SHR
//SYSPRINT DD SYSOUT=*
//SYSLMOD DD DISP=SHR,DSN=&SYSUID..ADLAB.LOAD(&MEM)
//SYSUT1 DD UNIT=SYSDA,SPACE=(TRK,(10,10))
//SYSLIN DD DSN=&SYSUID..ADLAB.OBJ(&MEM),DISP=SHR
// DD *
MODE AMODE(31),RMODE(24)
ENTRY ASAM1
//*