Rational Developer for System z
Enterprise PL/I for z/OS, Version 3.8, プログラミング・ガイド

TEST

TEST オプションは、コンパイラーがオブジェクト・コードの一部 として生成する検査機能のレベルを指定します。 この機能を使うと、テスト・フックの位置を制御したり、シンボル・テーブルを 生成するかどうかを制御することができます。

構文図を読む構文図をスキップする   .-NOTEST-----------------------------.
   |          .-+---+--------------.    |
   |          | '-,-'              |    |
   |          V   .-ALL---.        |    |
>>-+-TEST--(----+-+-STMT--+------+-+--)-+----------------------><
                | +-PATH--+      |
                | +-BLOCK-+      |
                | '-NONE--'      |
                | .-SYM---.      |
                +-+-NOSYM-+------+
                | .-HOOK---.     |
                +-+-NOHOOK-+-----+
                | .-NOSEPARATE-. |
                +-+-SEPARATE---+-+
                | .-SEPNAME---.  |
                '-+-NOSEPNAME-+--'
 

省略形: AALL、ACICS、AMACRO、ASQL

STMT
コンパイラーはステートメント・テーブルを生成します。HOOK サブオプションが有効になっている場合は、ステートメント境界とブロック境界にフックを挿入します。
PATH
コンパイラーはステートメント・テーブルを生成します。HOOK サブオプションが有効になっている場合は、以下の場所にフックを挿入します。
BLOCK
コンパイラーはステートメント・テーブルを生成します。HOOK サブオプションが有効になっている場合は、ブロック境界 (ブロック入り口とブロック出口) にフックを挿入します。
ALL
コンパイラーはステートメント・テーブルを生成します。HOOK サブオプションが有効になっている場合は、可能なすべての場所にフックを挿入してステートメント・テーブルを生成します。
注:
opt(2) の下では、フックはブロック境界だけに設定されます。
NONE
プログラムにフックを入れません。
SYM
変数を名前で検査するためのシンボル・テーブルを作成します。
NOSYM
シンボル・テーブルは生成されません。
NOTEST
すべてのテスト情報の生成を抑止します。
HOOK
TEST サブオプション ALL、STMT、BLOCK、または PATH のいずれかが有効である場合に、 コンパイラーによって、生成されたコードにフックが挿入されます。
NOHOOK
コンパイラーによって、生成されたコードにフックは挿入されません。

デバッグ・ツールがオーバーレイ・フックを生成する場合、サブオプション ALL、PATH、STMT、または BLOCK の 1 つを指定しなければなりませんが、HOOK は指定する必要はなく、事実上 NOHOOK を指定することをお勧めします。

NOHOOK を指定すると、ENTRY および EXIT のブレークポイントは、デバッグ・ツール が停止する PATH ブレークポイントにすぎなくなります。

SEPARATE
コンパイラーは、生成するデバッグ情報のほとんどを別個のデバッグ・ファイルに書き込みます。 このオプションを使用する場合、TEST オプションを有効にすると、コンパイラーが作成するオブジェクト・デックのサイズがかなり小さくなります。

プログラムに GET または PUT DATA ステートメントが含まれる場合、別個のデバッグ・ファイルに含まれるデバッグ情報の量が少なくなります。これらのステートメントについては、シンボル・テーブル情報をオブジェクト・デックに書き込む必要があるためです。

生成されるデバッグ情報には、コンパイラーに渡されたソースの圧縮版が常に含まれています。 これは、ソースは SYSIN DD * で指定したものであっても、これまでのジョブ・ステップで作成された一時データ・セットであってもかまわないことを意味します (例えば、以前の SQL プリコンパイラーや CICS プリコンパイラーの出力がソースであってもかまいません)。

このサブオプションをバッチ・コンパイルで使用する場合は、そのコンパイルの JCL に SYSDEBUG を表す DD カードが含まれていて、その DD カードは RECFM=FB および 80 <= LRECL <= 1024 のデータ・セットを指定していなければなりません。

このサブオプションを LINEDIR コンパイラー・オプションと一緒に使用することはできません。

NOSEPARATE
コンパイラーは、生成するデバッグ情報のすべてをオブジェクト・デックに書き込みます。

このオプションを指定すると、生成されるデバッグ情報には、コンパイラーに渡されたソースの圧縮版は含まれません。 これは、プログラムをデバッグしようとするときに DebugTool で見つけることができるデータ・セットにソースがなければならないことを意味します。

SEPNAME
コンパイラーは、別個のデバッグ・ファイルの名前をオブジェクト・デックに書き込みます。

SEPARATE オプションが有効になっていない場合、このオプションは無視されます。

NOSEPNAME
コンパイラーは、別個のデバッグ・ファイルの名前をオブジェクト・デックに書き込みません。

SEPARATE オプションが有効になっていない場合、このオプションは無視されます。

注:

TEST(NONE,NOSYM) を指定すると、コンパイラーはこのオプションを NOTEST に設定します。

TEST(NONE,SYM) は使用しないでください。この設定を指定する意図が不明です。 TEST(ALL,SYM,NOHOOK) または TEST(STMT,SYM,NOHOOK) を指定するとよいでしょう。

NOTEST と TEST(NONE,NOSYM) 以外の TEST オプションは、 いずれもプログラム・テストのためのアテンション割り込み機能を 提供します。

プログラムに、呼び出したい ATTENTION ON ユニットがある場合は、 次のオプションのどちらかを用いてプログラムをコンパイルしなければ なりません。

注:
ATTENTION は TSO の下でだけサポートされます。

TEST オプションでは GONUMBER が暗黙指定されます。

TEST オプションでは、オブジェクト・コードのサイズが増大して パフォーマンスに影響が出ることがあるため、フックの数と位置に限度を 設けなければならないことがあります。

TEST オプションを指定した場合、インライン化は行われません。

REFER の構造体はシンボル・テーブルでサポートされています。

TEST(SYM) が有効な場合は、DebugTool の自動モニター機能を有効にするために、コンパイラーはテーブルを生成します。 TEST(SEPARATE) オプションが有効になっていなければ、これらのテーブルのために、オブジェクト・モジュールのサイズがかなり大きくなる場合があります。 DebugTool の自動モニター機能を活動化すると、これらのテーブルを使用して、ステートメントで使用される変数の値が ステートメントの実行前に表示されます。これは、変数が計算可能なタイプであるか、 POINTER、OFFSET、または HANDLE の属性を持っていることが条件となります。 ステートメントが割り当てステートメントである場合は、ターゲットの値も表示されます。ただし、ターゲットの初期設定や割り当てがあらかじめ行われていない場合は、その値に意味がありません。

名前に * を使用して宣言されている変数はすべて、DebugTool の使用時には表示されません。 また、* が親構造体または副構造の名前として使用されている場合は、そのすべての子も表示されません。 このような目的のために、名前を付けないでおく任意の構造体エレメントの名前に、単一下線を使用することをお勧めします。

AFTERMACRO、AFTERSQL、および AFTERALL サブオプションの異なる影響の例として、PP オプションが PP( MACRO('INCONLY'), SQL, MACRO) であったと仮定してください。そうすると、


Terms of use | Feedback

This information center is powered by Eclipse technology. (http://www.eclipse.org)