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

デバッグでのフットプリントの使用

デバッグするときは、以下の点について定期的に検査することが有効です。

これらの作業を行うには、組み込み関数や、PUT DATA および PUT LIST ステートメント、表示ステートメントを使用します。これらの方法について、以降のセクションで詳細に説明します。

組み込み関数
組み込み関数 PROCNAME、PACKAGENAME、および SOURCELINE は、問題の発生した場所やその問題の原因となったイベントのシーケンスを追跡する目的でプログラムの実行をたどるときに役立ちます。次のステートメントは、プロシージャー名や現在実行中のステートメントの行番号を表示したい場所に挿入できます。
  display (procname() || sourceline());
PUT LIST
ストリングおよびデータ項目をデータ・ストリーム (例: プリンター向け出力ファイル) に送信できます。例えば、次のプロシージャーは、FIXEDOVERFLOW 条件が発生したかどうかを示し、その条件の原因となった変数 (この場合は z) の値を印刷出力します。
  Debug: Proc(x);
     dcl x fixed bin(31);
     on fixedoverflow
        begin;
           put skip list('Fixedoverflow raised because z = '||z);
        end;
     end;
     get list(z);
     x = 8 * z;
  

z が大きすぎる場合は、その値に 8 を掛けると、FIXED BIN(31) 変数には大きすぎる値になるため、FIXEDOVERFLOW 条件が発生します。PUT SKIP LIST は、データ (この場合はストリング「Fixedoverflow raised because z = ...」) をデフォルト・ファイル SYSPRINT に送信します。SYSPRINT を定義するには、export DD= ステートメントを使用します。SYSPRINT 使用の詳細については、SYSIN ファイルおよび SYSPRINT ファイルの使用方法を参照してください。

PUT DATA
データ項目の値を出力ストリームに送信できます。例えば、プログラムに次の行を指定すると、string1 および string2 の値が出力ストリーム (例: SYSPRINT) に送信されます。
  put data (string1, string2);
DISPLAY
DISPLAY を使用すれば、情報をモニターに送信できます。この方法は、プログラムがどこまで進行したか、あるいはプログラムがどのプロシージャーを実行しているか、などを知りたいときに有効です。次に例を示します。
  Display ('End of job!');
  Display ('Reached the MATH procedure');
  Display ('Hurrah! Got past the string manipulation stuff...');
DISPLAY と PUT ステートメントを同時に使用した場合は、予測不能な順序で出力されます。DISPLAY ステートメント使用の詳細については、DISPLAY ステートメントの入出力を参照してください。

Terms of use | Feedback

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