付録G. Debug Tool ロード・モジュール・アナライザー
この Debug Tool ロード・モジュール・アナライザーは、MVS ロード・モジュールまたはプログラム・オブジェクトを分析して、各 CSECT にオブジェクトを生成するのに使用する言語変換プログラム (コンパイラーまたはアセンブラー) を決定します。
このプログラムは、PDS または PDSE データ・セット連結内にあるすべてまたは選択したロード・モジュールまたはプログラム・オブジェクトを処理可能です。
ロード・モジュール・アナライザーの開始方法の選択
以下の方法のどちらかで、ロード・モジュール・アナライザーを始動できます。
- データ・セット hlq.SEQASAMP のメンバー EQAZLMA に提供されたサンプル JCL を編集してから、その JCL をバッチ・ジョブとしてサブミットする。
- Debug Tool の「Utility」ISPF パネルのオプション 5 を選択する。
JCL を使用してロード・モジュール・アナライザーを開始
サンプル JCL を使用してロード・モジュール・アナライザーを開始するには、以下のステップを行います。
- データ・セット hlq.SEQASAMP にあるメンバー EQAZLMA のコピーを作成します。
- このメンバーの中で指示されたとおりにそのコピーを編集します。
- その JCL をサブミットします。
- 実行結果を確認します。
Debug Tool Utilities を使用してロード・モジュール・アナライザーを開始
Debug Tool Utilities を使用してロード・モジュール・アナライザーを開始するには、以下のステップを行います。
- Debug Tool Utilities を始動します。
- オプション 5 を選択します。
- パネル上の各フィールドに適切な情報を入力します。その場合、以下の動きに注意してください。
- 単一ロード・モジュールまたはプログラム・オブジェクトを分析したい旨を指定すると、ロード・モジュール・アナライザーは TSO 前景部で稼働します。
- PDS または PDSE 全体を分析したい旨を指定すると、MVS バッチでロード・モジュール・アナライザーを開始するように JCL が生成されます。次に、その生成された JCL をサブミットするか、保存します。
ロード・モジュール・アナライザーとともに使用する JCL ステートメントの説明
デフォルトでは、ロード・モジュール・アナライザー・プログラムは EQALIB DD ステートメントで指定した PDS または PDSE 内の全メンバーを処理します。ロード・モジュール・アナライザーに指示を与える制御ステートメントを使用して、データ・セット連結内の特定メンバーだけを処理できます。
ロード・モジュール・アナライザーが使用する DD名の説明
ロード・モジュール・アナライザーは以下の DD 名を使用します。
- EQALIB
- 分析対象のロード・モジュールまたはプログラム・オブジェクトが入った PDS または PDSE データ・セット連結を指定します。連結された複数のデータ・セットの中に同一メンバーが存在する場合は、最初のメンバーだけが処理されます。
- EQAPRINT
- 出力レポートを指定します。このデータ・セットは、論理レコード長が 133 バイト以上 (LRECL >=133) で固定長ブロック・レコード形式 (RECFM=FBA) にするか、137 バイト以上 (LRECL >=137) で可変長ブロック・レコード形式 (RECFM=VBA) にすることができます。
- EQAIN
- 制御ステートメントを指定します。特定のロード・モジュールまたはプログラム・オブジェクトを処理したい場合、以下の構文を使用します。
SELECT MEMBER=load_module_name
すべてのロード・モジュールを処理したい場合は、この DD ステートメントを指定しないか、DUMMY で指定するか、または空のデータ・セットで指定することができます。このファイルは、80 バイト以上 (LRECL >=80) で固定長ブロック・レコード形式 (RECFM=FB) を指定する必要があります。各制御ステートメントは別の行に指定する必要があります。制御ステートメントの各入力内容はフリー・フォームで、各キーワードと演算子の前または後ろにブランクを入れても構いません。コメントを入れたい場合は、1 カラム目にアスタリスクをコーディングします。
- EQASYSPF
- システム接頭部一覧を指定します。これは CSECT 名の接頭部一覧であり、ロード・モジュール・アナライザーに対してその名前をシステム・ルーチンとして認識させたい場合に使用します。
この一覧を使用して、これらの接頭部に対して表示される出力量を限定します。このファイルは、80 バイト以上 (LRECL >=80) で固定長ブロック・レコード形式 (RECFM=FB) を指定する必要があります。Debug Tool は、テーブル・ライブラリー (SEQATLIB) のメンバー EQALMPFX にこのファイル用のデータを提供します。このファイルの説明は、EQASYSPF ファイル・フォーマットの説明を参照してください。
- EQAPGMNM
- ロード・モジュール IDR データ内にある各プログラム ID に対応するプログラム名一覧を指定します。このファイルは、80 バイト以上 (LRECL >=80) で固定長ブロック・レコード形式 (RECFM=FB) を指定する必要があります。Debug Tool は、テーブル・ライブラリー (EQATLIB) のメンバー EQALMPGM にこのファイル用のデータを提供します。この一覧にエントリーを追加する方法に関する説明記述は、EQAPGMNM ファイル・フォーマットの説明を参照してください。
ロード・モジュール・アナライザーが使用する パラメーターの説明
各パラメーターの指定は EXEC JCL ステートメントの PARM キーワードを使用します。
このプログラムに渡されるパラメーター・ストリングは、以下のどのパラメーターで構成しても構いません。各パラメーターはコンマまたはブランクで区切ります。
- CKVOLFPRS
- 追加の浮動小数点レジスター 8 から 15 のうちの少なくとも 1 つを使用する、CSECT または項目のみをリストします。 このパラメーターは、OSVSONLY パラメーターと一緒に指定できません。両方を指定した場合は、最後に指定した方が使用されます。
- DATEFMT=dateformat
- 各データのフォーマット方法を指定します。バインダー CSECT の識別レコード (IDR) データからのデータが有効なユリウス日付とは考えられない場合は、このデータは再フォーマットされません。以下の値のいずれかを使用します。
- YYYYMMDD
- ソート形式: YYYY/MM/DD。(デフォルト)
- MMDDYYYY
- 米国標準形式: MM/DD/YYYY。
- DDMMYYYY
- ヨーロッパ標準形式: DD/MM/YYYY。
- LEINFO
- 各 CSECT と外部エントリー・ポイントごとのテキストが、言語環境プログラムのロジックの通過した跡として検査されることになります。そのロジックの通過した跡が見つかった場合、言語環境プログラムのエントリー・ポイント名、リンケージ・タイプ、ソース言語、および言語変換日時が、その CSECT またはエントリーに対する出力の中に組み込まれます。言語環境プログラムのロジックの通過した跡がない場合、認識された非言語環境プログラムのプロローグ・フォーマットとしてプロローグ・コードを検査します。
そのプロローグ・コードが検出された場合、対応する言語がその出力の中に入れられます。
検出されない場合は、「ASSEMBLER」と出力されます。
- LESCAN
- LEINFO パラメーターの下で記述されたアクションが取られることになります。さらに、外部シンボルに対応しない「隠れた」言語環境プログラムのエントリー・ポイントを探して、各 CSECT ごとのテキストがスキャンされます。
例えば、これらのエントリー・ポイントは C の静的関数ごとに存在する可能性があります。このような「隠れた」エントリー・ポイントが検出されると、LEINFO に対して記述したものと同じ出力が生成されます。
- LISTLD
- CSECT 名の他に、すべてのラベル定義 (LD) エントリー一覧を作成します。
- LOUD
- EQASYSPF と EQAPGMNM ファイルから読み取られたデータを出力リストに表示する旨を指定します。
- NATLANG=language_code
- 各国語を指定します。以下の値のいずれかを使用します。
- ENU
- 英大/小文字混合の英語。(デフォルト)
- UEN
- 大文字の英語。
- JPN
- 日本語。
- KOR
- 韓国語。
- OSVSONLY
- OS/VS COBOL コンパイラーでコンパイルされた CSECT のみがその出力の中に表示される旨を指定します。他のすべての CSECT 情報の表示は抑止されます。
このパラメーターは、CKVOLFPRS パラメーターと一緒に指定できません。両方を指定した場合は、最後に指定した方が使用されます。
- SHOWLIB
- EQASYSPF ファイル内への包含標識が無視されることを指定します。これによって全 CSECT がリスト表示されます。
- SORTBY=sort_option
- 出力内での CSECT 名のソート方法を指定します。以下の値のいずれかを使用します。
- OFFSET
- オフセット別ソート。すなわち、リンケージ・エディターまたは AMBLIST 出力内に表示される順序。(デフォルト)
- NAME
- CSECT 名別のソート。
- PROGRAM
- 変換プログラム ID 別のソート。
- LANGUAGE
- ソース言語別および変換プログラム ID 別のソート。
- DATE
- 変換日付別のソート。
EQASYSPF ファイル・フォーマットの説明
このファイルにはシステム接頭部の一覧が入ります。ロード・モジュール・アナライザーがこの一覧にある名前を接頭部に付けた CSECT を見つけて、その接頭部に対するエントリーが、その接頭部で始まる名前を包含しないことを示している場合、ロード・モジュール・アナライザーはその CSECT に対する個々のエントリーを表示しません。その代わりに、見つかった各エントリーごとに単一の行を出力の中に表示します。この単一行には、指定された接頭部に関して 1 つ以上の CSECT が見つかった旨が表示されます。
Debug Tool は、テーブル・ライブラリー (SEQATLIB) のメンバー EQALMPFX にこのファイル用のデータを提供します。このファイルにエントリーを追加したい場合、以下の作業のいずれかを実行します。
- hlq.SEQATLIB の EQALMPFX メンバーを、hlq.SEQASAMP(EQAUMOD3) の SMP/E USERMOD を使用して更新します。
- 新規エントリーが入ったデータ・セットを作成します。次に、Debug Tool とともに提供されるデータ・セットにこのデータ・セットを連結します。
このファイルの各行は、1 エントリーを表します。このエントリーはフリー・フォームですが、各項目は 1 つ以上のブランクで直前の項目との間を区切る必要があります。コメントを入れたい場合は、1 カラム目にアスタリスクをコーディングします。各行ごとに以下の構文を使用します。
prefix I L description
- prefix
- 1 から 7 文字までの接頭部。
- I
- 包含標識。"1" を指定して、この接頭部で始まる各 CSECT が通常の CSECT として処理されることを示します。"0" を指定して、この接頭部で始まる各 CSECT は個々にリストされないことを示します。
- L
- 言語またはシステム・コンポーネント標識。以下の文字のいずれかから選択します。
- B
- COBOL
- N
- Enterprise COBOL for z/OS バージョン 4 以降
- V
- OS/VS COBOL
- P
- PL/I
- E
- Enterprise PL/I
- C
- C/C++
- A
- アセンブラー
- L
- 言語環境プログラム
- S
- CICS®
- I
- IMS™
- 2
- DB2®
- M
- MVS
- T
- TCP/IP
- *
- 分類なし。
- 説明
- 12 文字で、この接頭部を所有するコンポーネントを説明。
EQAPGMNM ファイル・フォーマットの説明
このファイルには、ロード・モジュール IDR データ内にある各プログラム ID に対応するプログラム名一覧が入ります。これらの名前は出力の中で使用されて、対応する CSECT のオブジェクト生成に使用する言語翻訳プログラムを説明します。
Debug Tool は、テーブル・ライブラリー (SEQATLIB) のメンバー EQALMPGM にこのファイル用のデータを提供します。このファイルにエントリーを追加したい場合、以下の作業のいずれかを実行します。
- hlq.SEQATLIB の EQALMPRM メンバーを、hlq.SEQASAMP(EQAUMOD4) の SMP/E USERMOD を使用して更新します。
- 新規エントリーが入ったデータ・セットを作成します。次に、Debug Tool とともに提供されるデータ・セットにこのデータ・セットを連結します。
各行は、1 エントリーを表します。このエントリーはフリー・フォームです。プログラム番号が 1 カラム目から始まっている必要があり、各項目は 1 つ以上のブランクで直前の項目と区切る必要があります。コメントを入れたい場合は、1 カラム目にアスタリスクをコーディングします。このファイル内ではシーケンス番号を使用できません。
各行ごとに以下の構文を使用します。
program_name L program_description
- program_name
- 7 文字のプログラム番号。
- L
- 言語またはシステム・コンポーネント標識。指定可能な値の一覧は、EQASYSPF ファイル・フォーマットの説明を参照してください。
- program_description
- プログラムの説明。
ロード・モジュール・アナライザーによって作成されるプログラム出力の説明
各ロード・モジュールまたはプログラム・オブジェクトごとの出力は以下の順序で表示されます。
- 最初の EQALIB 連結の全メンバー。各ロード・モジュールまたはプログラム・オブジェクトがアルファベット順に表示される状態となる。
- 2 番目の EQALIB 連結の全メンバー。このメンバーはこの連結以前の連結内にあるメンバーとは重複せず、各ロード・モジュールまたはプログラム・オブジェクトがアルファベット順に表示される状態となる。
- 後続の EQALIB 連結の全メンバー。このメンバーはこの連結以前の連結内にあるメンバーとは重複せず、各ロード・モジュールまたはプログラム・オブジェクトがアルファベット順に表示される状態となる。
別名は以下の方法で表示されます。
- 基本メンバー名が存在する場合、この別名は前記の順序で出力の中に表示されます。そのメンバー内容の出力の前に、基本メンバー名に対応した別名のリストが表示されます。
- 基本メンバー名がそのデータ・セットに存在しない場合、別名は前記の順序で表示されます。
ロード・モジュール・アナライザーによって作成される出力内容の説明
以下の情報が、各 CSECT ごとの出力の中に組み込まれます。
- CSECT 名
- セグメント番号 (複数セグメント・モジュールの場合のみ表示)
- ロード・モジュールまたはセグメント内の CSECT オフセット
- CSECT 長 (16 進数)
- バインダー IDR データに含まれるようなプログラム ID
- 変換プログラム (コンパイルまたはアセンブリー) 日付
- 指定されたプログラム ID に対して提供されるプログラム説明
- OS/VS COBOL の場合、PARM=RES または PARM=NORES。
- PARM=RES の意味は、ロード・モジュールまたはプログラム・オブジェクト内の 1 つ以上の OS/VS COBOL CSECT が、NORES コンパイラー・オプションを使ってコンパイルされたことを示します。
- PARM=NORES の意味は、ロード・モジュールまたはプログラム・オブジェクト内の全 OS/VS COBOL CSECT が、NORES コンパイラー・オプションを使ってコンパイルされたことを示します。
- LEINFO、LESCAN、または CKVOLFPRS を指定した場合は以下のとおりです。
- 言語環境プログラムのプロローグが検出された場合は、LEINFO=(... で識別されるストリングに情報が入ります。このストリングには言語環境プログラムの入り口名またはアスタリスクが含まれて、その名前が、外部シンボル、言語環境プログラムのリンケージ・タイプ、ソース言語と言語変換日付時刻、および変換プログラム・バージョンと同じであることを示します。
- 言語環境プログラムのプロローグが検出されなかった場合で、そのプロローグが認識された非言語環境プログラムのコンパイラーのプロローグであると考えられる場合、C/C++、COBOL、または PL/I のいずれかが組み込まれます。
- そうでない場合、ASSEMBLER が組み込まれて、そのプログラムがアセンブラー・プログラムの可能性があることを示します。
例: OS/VS COBOL ロード・モジュールに対してロード・モジュール・アナライザーが作成する出力
以下の例は、OS/VS COBOL ロード・モジュールに対して表示される可能性のある出力の一部です。
1 5655-U27 Debug Tool Version 9 Release 1.2 Load Module Analyzer 2008/11/03 Page 15
Load Module TSCODEL.CICS.TEST.LOAD(CICK512)
CSECT Sg Offset Length Program-ID Trn-Date Program-Description
$PRIV000010
28 C58 5688216 1996/12/31 AD/Cycle C/370
$PRIV000011
D00 1CD0 5688216 1996/12/31 AD/Cycle C/370
@@XINIT@ 29E0 8 5688216 1996/12/31 AD/Cycle C/370
@@INIT@ 29E8 3D8 5688216 1996/12/31 AD/Cycle C/370
EQADCRXT 2DC0 240 566896201 1995/05/15 Assembler H Version 1 Release 2, 3, OR 4
@@C2CBL 3118 10 569623400 1995/08/03 High Level Assembler for MVS & VM & VSE Version 1
@@FETCH 3138 10 569623400 1995/08/03 High Level Assembler for MVS & VM & VSE Version 1
MEMSET 3148 10 569623400 1995/08/03 High Level Assembler for MVS & VM & VSE Version 1
FPRINTF 3158 10 569623400 1995/08/03 High Level Assembler for MVS & VM & VSE Version 1
CS9403 3168 3518 566895807 1995/08/15 VS COBOL II Version 1 Release 3
STRLEN 7398 10 569623400 1995/08/03 High Level Assembler for MVS & VM & VSE Version 1
CEE* (Multiple program ID's)
DFH* 5668962 Assembler H Version 1 Release 2, 3, OR 4
EDC* 5696234 High Level Assembler for MVS & VM & VSE Version 1
IGZ* 5668962 Assembler H Version 1 Release 2, 3, OR 4
|
このインフォメーション・センターでは Eclipse テクノロジーが採用されています。(http://www.eclipse.org)