レコード、グループ項目、および配列の表示

EVAL デバッグ・コマンドを使用して、構造、レコード、および配列を表示することができます。 レコード、グループ項目、または配列が現在行にない場合は、 表示したいレコード、グループ項目、または配列をまず修飾しなければなりません。 それには、QUAL デバッグ・コマンドを使って行番号を指定します。 QUAL デバッグ・コマンドの使用法については 変数および式の表示を参照してください。 レコード、グループ項目、または配列を表示するには、デバッグ・コマンド行で次のように入力します。

EVAL data-name

データ名 は、表示したいレコード、グループ項目、または配列の名前です。 レコード、グループ項目、または配列の値が「評価式」画面に表示されます。

次の例は、ILE COBOL グループ項目の内容を表示するための方法を示すものです。

     01  ACCOUNT.
         02  NUMBER              PIC 9(5).
         02  FULL-NAME.
             03  LAST-NAME       PIC X(20).
             03  FIRST-NAME      PIC X(10).

グループ項目 ACCOUNT の内容を表示するには、デバッグ・コマンド行で次のように入力します。

EVAL ACCOUNT

グループ項目 ACCOUNT の現在の内容が、図 48 に示すように「評価式」画面に表示されます。

グループ項目 ACCOUNT の単一エレメント、たとえば、エレメント FIRST-NAME OF FULL-NAME OF ACCOUNT を表示するには、 デバッグ・コマンド行で次のように入力します。

EVAL FIRST-NAME OF FULL-NAME OF ACCOUNT

エレメント FIRST-NAME OF FULL-NAME OF ACCOUNT の現在の内容が、図 48 に示すように「評価式」画面に表示されます。 実行キーを押すと、「モジュール・ソースの表示」画面に戻ります。 他の名前と混同しさえしなければ、部分的な修飾名を使用してエレメントを表示することもできます。

図 48. EVAL デバッグ・コマンドを使用してグループ項目を表示する
                               
                                    評価式
 前のデバッグ式
 > EVAL ACCOUNT
   NUMBER OF ACCOUNT = 12345
   LAST-NAME OF FULL-NAME OF ACCOUNT = 'SMITH               '
   FIRST-NAME OF FULL-NAME OF ACCOUNT = 'JOHN      '
 > EVAL FIRST-NAME OF FULL-NAME OF ACCOUNT
   FIRST-NAME OF FULL-NAME OF ACCOUNT = 'JOHN      '

次の例は、ILE COBOL の配列の内容を表示するための方法を示すものです。

     05  A       PIC X(5) OCCURS 5 TIMES.

配列 A の内容を表示するには、デバッグ・コマンド行で次のように入力します。

EVAL A

配列 A の現在の内容が 図 49 に示すように「評価式」画面に表示されます。

配列 A のエレメントの範囲の内容を表示するには、デバッグ・コマンド行で次のように入力します。

EVAL A(2..4)

配列 A のエレメント A(2)、A(3)、および A(4) の現在の内容が 図 49 に示すように「評価式」画面に表示されます。

配列 A の単一エレメント、たとえば A(4) の内容を表示するには、デバッグ・コマンド行で次のように入力します。

EVAL A(4)

エレメント A(4) の現在の内容が図 49 に示すように「評価式」画面に表示されます。 「モジュール・ソースの表示」画面に戻るには、F3 (終了) を押します。

注:
EVAL デバッグ・コマンドに添え字として指定できるのは数値だけです。 たとえば、A(4) は可能ですが、A(I+2) または A(2*3) は不可です。
図 49. EVAL デバッグ・コマンドを使用して配列を表示する
                                    
                                    評価式
 前のデバッグ式
 > EVAL A
   A(1) = 'ONE  '
   A(2) = 'TWO  '
   A(3) = 'THREE'
   A(4) = 'FOUR '
   A(5) = 'FIVE '
 > EVAL A(2..4)
   A(2) = 'TWO  '
   A(3) = 'THREE'
   A(4) = 'FOUR '
 > EVAL A(4)
   A(4) = 'FOUR '