Rational Developer for System z
Enterprise COBOL for z/OS バージョン 4.1 プログラミング・ガイド


TEST

TEST を使用すると、デバッグ・ツール がバッチ・デバッグおよび対話式デバッグを実行できるようにするオブジェクト・コードが生成されます。TEST を使用すれば、言語環境プログラムによって生成された定様式ダンプにあるシンボリック変数の組み込みも可能になります。

構文図を読む構文図をスキップする
TEST オプションの構文

   .-NOTEST----------------------------------------------.   
>>-+-----------------------------------------------------+-----><
   '-TEST-+--------------------------------------------+-'   
          |   .-HOOK---. .-,NOSEPARATE-. .-,NOEJPD-.   |     
          '-(-+--------+-+-------------+-+---------+-)-'     
              '-NOHOOK-' '-,SEPARATE---' '-,EJPD---'         

デフォルト・オプション: NOTEST

サブオプションのデフォルトは、HOOKNOSEPARATENOEJPD です。

省略形: SEP|NOSEP

TEST サブオプションは、どのような順序でも指定できます。 また、どのようなサブオプションの組み合わせ (1 つでも、2 つでも、すべてでも) でも指定することができます。 ただし、TEST の後ろに左括弧をコーディングした場合には、少なくとも 1 つ以上のサブオプションをコーディングする必要があります。

使用できるデバッグ・サポートの量は、以下で説明するように、どの TEST サブオプションを使用するかによって決まります。 デバッグ情報が入ったオブジェクト・コードを生成しない場合、および定様式ダンプにシンボリック変数を組み込む必要がない場合には、NOTEST を使用します。

フック・サブオプション (コンパイルされたフック vs 動的フック)

HOOK
コンパイルされたフックは、すべてのステートメント、ラベル、パス点、およびすべてのプログラム入り口点と出口点 (最外部プログラムと含まれているプログラムの両方) で生成されます。さらに、DATEPROC オプションが有効であると、すべての日付処理ステートメントでフックが生成されます。

パス点とは、ロジック・フローが必ずしも順次でなくてもよいか、あるいはロジック・フローを変更できるプログラム内の任意の場所です。パス点の例としては、IF-THEN-ELSE 構成、PERFORM ループ、ON SIZE ERROR 句、および CALL ステートメントなどがあります。

NOHOOK
コンパイルされたフックは生成されません。 TEST(NOHOOK) を使用すれば、デバッグ・ツールの動的デバッグ機能 (SET DYNDEBUG ON) を使用して、プログラムを対話式にデバッグできます。

シンボリック・デバッグ情報サブオプション

シンボリック・デバッグを有効化するために必要な情報は、TEST オプションが有効化されている場合には常に生成されます。

SEPARATE
デバッグの能力を維持しながらモジュールのサイズを制御する には、SEPARATE サブオプションを指定します。 記号情報は、オブジェクト・モジュールではなく SYSDEBUG ファイルに書き込まれます。 デバッグ能力を維持しながらモジュール・サイズを制御する方法については、後述のセクションを参照してください。
NOSEPARATE
オブジェクト・モジュールにシンボリック・デバッグ情報を組み込むには、NOSEPARATE サブオプションを使用します。

JUMPTO および GOTO 有効化サブオプション

EJPD および NOEJPD サブオプションは、実動デバッグ・セッションでの、デバッグ・ツール・コマンド JUMPTO および GOTO の有効化を制御します。 TEST(NOHOOK) および OPTIMIZE コンパイラー・オプションが指定されている場合にのみ、これらのサブオプションは有効になります。

EJPD
TEST(NOHOOK,. . .,EJPD) および OPTIMIZE が指定された場合:
  • JUMPTO および GOTO が有効化されます。
  • プログラムの最適化の程度は低減されます。 最適化は、ステートメント内で実行されますが、ほとんどの最適化はステートメント境界を超えません。
NOEJPD
TEST(NOHOOK,. . .,NOEJPD および OPTIMIZE が指定された場合:
  • JUMPTO および GOTO は有効化されません。
  • 通常程度のプログラムの最適化が実行されます。

デバッグ能力を維持したモジュール・サイズの制御:

TEST オプションを指定すると、コンパイラーは デバッグ・ツール がデータ名や段落名などの解決に使用するデバッグ情報テーブルを生成します。この情報は、ストレージを大量に使用する場合があります。この情報をオブジェクト・プログラムにコンパイルするのか、または別の SYSDEBUG データ・セットに書き込むのかを選択することができます。
  • ロード・モジュールを小さくする場合は、SEPARATE サブオプションを使用して、デバッグ・ツールセッションで使用するデバッグ・ファイルを別に保持します。
  • 別のデバッグ・ファイルを管理する必要性をなくすには、NOSEPARATE サブオプションを使用してコンパイルします。ただし、このサブオプションによって、ロード・モジュールが大きくなることに注意してください。

JCL または TSO から COBOL コンパイラーを呼び出し、TEST(. . .,SEPARATE,. . .) を指定すると、シンボリック・デバッグ情報テーブルは、SYSDEBUG DD ステートメントで指定したデータ・セットに書き込まれます。 このステートメントのコーディング方法および SYSDEBUG データ・セットの詳細については、 デバッグ・データ・セットの定義方法および論理レコード長とブロック・サイズについての下記の関連情報を参照してください。

z/OS UNIX シェルから COBOL コンパイラーを呼び出すときに、TEST(. . .,SEPARATE,. . .) を指定すると、シンボリック・デバッグ情報テーブルは、現行ディレクトリー内の file.dbg に書き込まれます。file は COBOL ソース・ファイルの名前です。

パフォーマンスとデバッグ能力:

以下のように、得られるデバッグ能力の程度およびプログラムのパフォーマンスを制御できます。

言語環境プログラム:

サブオプションのいずれかを指定した TEST オプションによって、以下の 2 つの機能をダンプに追加して、言語環境プログラムからの定様式ダンプを改善することができます。

NOTEST を使用すれば、ダンプでは、プログラム変数も失敗したステートメントの行番号も示されません。

Enterprise COBOL は、言語環境プログラムが提供するダンプ・サービスを使用して、言語環境プログラム準拠のその他のメンバー言語によって生成されるダンプの内容および形式と一致するダンプを生成します。

処理されない条件に対して言語環境プログラムがダンプを作成するかどうかは、ランタイム・オプション TERMTHDACT の設定値によって決まります。TERMTHDACT(DUMP) を指定した場合は、重大度 2 以上の条件が処理されないと、ダンプが生成されます。

SEPARATE サブオプションおよび言語環境プログラム:

TEST(. . .,SEPARATE,. . .) を使用してコンパイルされたプログラムの場合、 言語環境プログラムは、(DD 名 SYSDEBUG に書き込まれる) 別のデバッグ・データ・セットの名前をオブジェクト・プログラムから取得します。 別のデバッグ・データ・セットの名前を変更するには、言語環境プログラムの COBOL デバッグ・ファイル出口を使用します。

関連タスク
デバッグ・データ・セットの定義 (SYSDEBUG)  
言語環境プログラム デバッグのガイド (TERMTHDACT
を使用した言語環境プログラムのダンプの生成)
Debug Tool User's Guide (TEST ランタイム・オプションを使用した Debug Tool
   の使用)
言語環境プログラム カスタマイズ (COBOL デバッグ・ファイル名の修正)


ご利用条件 | フィードバック

このインフォメーション・センターでは Eclipse テクノロジーが採用されています。(http://www.eclipse.org)