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

デバッグでのコンパイル時オプションの使用

PL/I ワークステーション製品は、コンパイル時にプログラムのバグの多くを診断するように設計されており、どのような誤りがどこにあるかを示した コンパイラー・リストを提供します。 さらに、コンパイル時オプションを使用すれば、コンパイラー・リストをより便利なものにすることができます。

以下に示すコンパイル時オプションは、PL/I プログラムのデバッグに役立ちます。

FLAG
一定の重大度を下回る診断メッセージのリストを抑制します。 さらに、メッセージ数が指定の数に到達したらコンパイルを終了します。 プログラムが期待どおりの動作をせず、コンパイラー・メッセージにはその問題についての説明がない場合は、FLAG を使用すれば、 コンパイラー・リストに情報メッセージが含まれるようにすることができます。 このメッセージ (デフォルトで抑制されていたメッセージ) は、プログラムの問題を解釈するのに役立ちます。 FLAG 使用の詳細については、FLAGを参照してください。
GONUMBER
デバッグに必要なステートメント番号テーブルを作成します。
PREFIX
指定された PL/I 条件を使用可能または使用不可にします。 条件にコンパイル時オプションを付けて指定できるので、ソース・プログラムを変更する必要はありません。 PREFIX( SUBRG STRZ STRG) と指定してコンパイルすると、デバッグで非常に役立ちます。 PREFIX 使用の詳細については、PREFIXを参照してください。
RULES
コンパイラーが、さまざまな言語規則をどの程度の厳密性をもって施行するかを指定します。 このオプションは、一般的なプログラミング・エラーのフラグを立てるのに使用できます。

デバッグでは特に、以下の RULES サブオプションが役に立ちます。

NOLAXIF
IF、WHILE、UNTIL、および WHEN 文節を BIT(1) NONVARYING 以外の値に評価することを禁止します。
NOLAXDCL
組み込み関数の場合と SYSIN ファイルおよび SYSPRINT ファイルの場合を除いて、すべての暗黙宣言およびコンテキスト宣言を禁止します。
NOLAXQUAL
コンパイラーは、レベル 1 以外で、ドット修飾のない構造体メンバーへの参照にフラグを立てます。

例えば、次のようなプログラムを考えます。

  program: proc( ax1xcb, ak2xcb );
           dcl (ax1xcb, ax2xcb ) pointer;
           dcl
             1 xcb based,
             2 xcba13 fixed bin,...
           ak1xcb->xcba13 = ax2xcb->xcba13;
  

RULES(NOLAXDCL) を有効にすると、上記の 2 つのタイプミスは、コンパイラーによって暗黙宣言とみなされ、エラーとしてフラグが 立てられます。 RULES 使用の詳細については、RULESを参照してください。

SNAP
プログラム内のエラーを突き止めるのに有効なトレース情報のリストをコンパイラーが生成するように指定します。

デバッグでの SNAP 使用の詳細については、トレース情報の SNAP ダンプを参照してください。

SNAP 構文の詳細については、SNAPを参照してください。

XREF
プログラム内で使用する名前と、その名前が参照または設定されるステートメントの番号をまとめたテーブルを コンパイラー・リストに入れるように指定します。 これにより、名前がソース・プログラム内のどこで使用されるかを容易に追跡できます。 XREF 使用の詳細については、XREFを参照してください。

Terms of use | Feedback

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