変数の値を表示する最も簡単な方法は、「モジュール・ソースの表示」画面で F11 (変数の表示) を使用することです。 F11 (変数の表示) を使用して変数を表示するには、カーソルを表示したい変数のところに移動して、F11 (変数の表示) を押します。 変数の現行値が、「モジュール・ソースの表示」画面の最下部にあるメッセージ行に表示されます。 たとえば図 44 に示されているモジュール・オブジェクトの 221 行目の変数 COUNTER の値を見たい場合は、 その変数の先頭にカーソルを移動して、F11 (変数の表示) を押します。 変数 COUNTER の現行値が、メッセージ行に表示されます。
モジュール・ソースの表示 PROGRAM: TEST LIBRARY: TESTLIB MODULE: SAMPMDF 213 214 PROCEDURE-SECTION SECTION. 215 FILL-TERMINAL-LIST. 216 READ TERMINAL-FILE RECORD INTO LIST-OF-TERMINALS(COUNTER) 217 AT END 218 SET END-OF-TERMINAL-LIST TO TRUE 219 SUBTRACT 1 FROM COUNTER 220 MOVE COUNTER TO NO-OF-TERMINALS. 221 ADD 1 TO COUNTER. 222 223 ACQUIRE-AND-INVITE-TERMINALS. 224 ACQUIRE LIST-OF-TERMINALS(COUNTER) FOR MULTIPLE FILE. 225 WRITE MULTIPLE-REC 226 FORMAT IS "SIGNON" 227 TERMINAL IS LIST-OF-TERMINALS(COUNTER). 続く... デバッグ . . ._________________________________________________________________ _______________________________________________________________________________ F3= 終了プログラム F6= 停止点の追加 / 消去 F10= ステップ F11= 変数の表示 F12= 再開 F17= ウォッチ変数 F18= ウォッチの処理 F24= キーの続き COUNTER = 89.
レコード、グループ項目、または配列を評価している場合、F11 (変数の表示) を押すと、複数行にわたるメッセージが戻されることがあります。 複数行にわたるメッセージは、その全テキストが「評価式」画面に表示されます。 「評価式」画面に表示されたメッセージを読み終ったら、実行キーを押して、「モジュール・ソースの表示」画面に戻ります。
EVAL デバッグ・コマンドを使って、変数の値を判別することができます。 まず、QUAL デバッグ・コマンドを使用して、表示する変数の行番号を指定します。 変数の有効範囲に関する規則が、この行から適用されます。
EVAL デバッグ・コマンドを使用して変数の値を表示するには、デバッグ・コマンド行で次のように入力します。
EVAL variable-name
変数名 は、表示したい変数の名前です。 「モジュール・ソースの表示」画面から EVAL デバッグ・コマンドを入力し、変数の値が 1 行内に収まる場合、値はメッセージ行に表示されます。 それ以外の場合、変数の値は「評価式」画面に表示されます。
たとえば、図 44 に示されているモジュール・オブジェクトの 221 行の変数 COUNTER の値を表示するには、次のように入力します。
EVAL COUNTER
図 45 に示すように、「モジュール・ソースの表示」画面のメッセージ行に COUNTER = 89 が表示されます。
モジュール・ソースの表示 プログラム: TEST ライブラリー: TESTLIB モジュール: SAMPMDF 213 214 PROCEDURE-SECTION SECTION. 215 FILL-TERMINAL-LIST. 216 READ TERMINAL-FILE RECORD INTO LIST-OF-TERMINALS(COUNTER) 217 AT END 218 SET END-OF-TERMINAL-LIST TO TRUE 219 SUBTRACT 1 FROM COUNTER 220 MOVE COUNTER TO NO-OF-TERMINALS. 221 ADD 1 TO COUNTER. 222 223 ACQUIRE-AND-INVITE-TERMINALS. 224 ACQUIRE LIST-OF-TERMINALS(COUNTER) FOR MULTIPLE FILE. 225 WRITE MULTIPLE-REC 226 FORMAT IS "SIGNON" 227 TERMINAL IS LIST-OF-TERMINALS(COUNTER). 続く... デバッグ . . ._________________________________________________________________ _______________________________________________________________________________ F3= 終了プログラム F6= 停止点の追加 / 消去 F10= ステップ F11= 変数の表示 F12= 再開 F17= ウォッチ変数 F18= ウォッチの処理 F24= キーの続き COUNTER = 89.
EVAL デバッグ・コマンドを使用して、変数の値を 16 進型式で表示することができます。 変数を 16 進型式で表示するには、デバッグ・コマンド行で次のように入力します。
EVAL variable-name: x 32
変数名 は、16 進型式で表示したい変数の名前です。 「x」は変数を 16 進型式で表示するということ、「32」は変数の開始後に 32 バイトのダンプが表示されることを指定するものです。 変数の 16 進値が図 46 に示す「評価式」画面に表示されます。 「x」の後に長さを指定しない場合、変数の長さが長さとして使用されます。 最低 16 バイトの長さが、常に表示されます。 変数の長さが 16 バイト未満の場合、16 バイトに達するまで残りのスペースにゼロが埋め込まれます。
評価式 前のデバッグ式 > BREAK 221 > EVAL COUNTER COUNTER = 89. > EVAL B : X 32 00000 F8F90000 00000000 00000000 00000000 - 89.............. 00010 00000000 00000000 00000000 00000000 - ................ 終わり デバッグ . . ._________________________________________________________________ _______________________________________________________________________________ F3= 終了 F9= コマンド複写 F12= 取り消し F16= 検索の反復 F19= 左 F20= 右 F21= コマンド入力 F23= 出力表示
ILE ソース・デバッガーは、ILE COBOL の参照変更の構文をサポートしていません。 その代わりに、EVAL コマンドに %SUBSTR 演算子を使用して、文字ストリング変数のサブストリングを表示することができます。 %SUBSTR 演算子により、いくつかのエレメントのうちのエレメント開始位置から文字ストリング変数のサブストリングが獲得されます。
%SUBSTR 演算子の構文は、次のとおりです。
%SUBSTR(identifier start-element number-of-elements)
ここで、id は文字ストリング変数でなければならず、開始エレメント とエレメント数 は、ゼロ以外の正の整数リテラルでなければなりません。 id は、修飾変数、添え字付き変数、または指標付き変数です。 開始エレメント + エレメント数 - 1 の値は、id のエレメントの合計数以下でなければなりません。
たとえば、%SUBSTR(CHAR20 1 10) を使うと、20 個のエレメントを含む文字ストリングの最初の 10 個のエレメントを取得できます。 %SUBSTR(CHAR8 4 5) を使用すると、8 個のエレメントを含む文字ストリングの最後の 5 個のエレメントを取得できます。 DBCS または DBCS 編集項目の場合、エレメントは DBCS 文字 (すなわち 2 バイト文字) のことです。
%SUBSTR 演算子を使用するなら、文字ストリング変数のサブストリングを別の変数または変数のサブストリングに代入することができます。 ソース変数のデータがターゲット変数に、左から右へコピーされます。 ソース変数またはターゲット変数あるいはその両方がサブストリングの場合、オペランドは、文字ストリング変数の全体ではなく、サブストリングの部分だけです。 ソース変数とターゲット変数のサイズが異なる場合、次の切り捨てまたは埋め込みの規則が適用されます。
図 47 は、%SUBSTR 演算子の使用法を示す例です。
評価式 前のデバッグ式 > EVAL CHAR10 CHAR10 = '10CHARLONG' > EVAL CHARA CHARA = 'A' > EVAL CHARA = %SUBSTR(CHAR10 3 5) CHARA = 'C' > EVAL %SUBSTR(CHAR10 1 2) = 'A' CHAR10 = 'A CHARLONG' > EVAL %SUBSTR(CHAR10 1 2) = 'XYZ' CHAR10 = 'XYCHARLONG' > EVAL %SUBSTR(CHAR10 7 4) = 'ABCD' CHAR10 = 'XYCHARABCD' > EVAL %SUBSTR(CHAR10 1 2) = %SUBSTR(CHAR10 7 4) CHAR10 = 'ABCHARABCD' 終わり デバッグ . . ._________________________________________________________________ _______________________________________________________________________________ F3= 終了 F9= コマンド複写 F12= 取り消し F16= 検索の反復 F19= 左 F20= 右 F21= コマンド入力 F23= 出力表示
ILE ソース・デバッガーの EVAL コマンドの %ADDR 演算子を 使用して、レベル 01 またはレベル 77 のデータ項目のアドレスを表示でき ます。 レベル 01 またはレベル 77 の変数のアドレスを表示するには、次のよ うに入力します。
EVAL %ADDR(variable-name)
ILE COBOL には間接参照演算子はありませんが、 それでもポインター・データ項目が指す領域を複数の 16 進値または文字 値として表示することはできます。 ポインター・データ項目のターゲット領域を複数の 16 進値で表示す るには、以下のように入力します。
EVAL pointer-name: x size
ポインター・データ項目のターゲット領域を複数の文字値で表示するに は、以下のように入力します。
EVAL pointer-name: c size
(C) Copyright IBM Corporation 1992, 2006. All Rights Reserved.