プログラムのデバッグ

デバッグによって、プログラム内の実行時エラーを検出、診断、および 除去することができます。 ILE ソースを使用して、ILE プログラムおよび OPM プログラムをデバッグすることができます。

変更の始まりRational® Developer for i でデバッガーを使用します。これは推奨される方法であり、プログラムのデバッグに関する資料が製品のオンライン・ヘルプに記載されています。IBM® i 上で実行されているプログラムをワークステーション上のグラフィカル・ユーザー・インターフェースからデバッグできます。 また、デバッガーの実行前に、ソース中に直接停止点を設定 することができます。 統合 Rational Developer for i・ユーザー・インターフェースでは、プログラム実行を制御することもできます。例えば、プログラムの実行、行の設定、ウォッチができ、またエントリー・ポイント・ブレークポイントの設定、 プログラム命令のステップスルー、変数の値の表示、およびコール・スタック内容の表示ができます。 また、異なる言語で作成された複数のアプリケーションであっても、単一のウィンドウで デバッグできます。デバッグする各セッションは、「デバッグ」ビュー内に個別に表示されます。変更の終わり

この章では、ILE ソースを使用して次のことを行う方法について説明します。
  • デバッグのために ILE RPG プログラムを準備する
  • デバッグ・セッションを開始する
  • デバッグ・セッションでプログラムを追加および除去する
  • デバッグ・セッションからプログラム・ソースを表示する
  • ブレークポイントおよびウォッチ条件を設定および除去する
  • プログラムをステップスルーする
  • フィールドの値を表示し変更する
  • フィールドの属性を表示する
  • 簡略名をフィールド、式、またはデバッグ・コマンドに対応させる

プログラムのデバッグおよびテスト中、既存の実際のデータが影響を受け ることのないように、プログラムがテスト・データの入っている テスト・ライブラリーを指定するようにライブラリー・リストを変更してください。

次のコマンドのいずれかを使用して、プロダクション・ライブラリー中のデータベース・ファイルが、 意図せずに変更されてしまうのを防ぐことができます。
  • デバッグ開始 (STRDBG) コマンドを使用して、UPDPROD パラメーターを デフォルトの *NO のままにしておきます。
  • デバッグ変更 (CHGDBG) コマンドを使用して、 UPDPROD パラメーターを *NO に指定します。
  • 「モジュール・ソースの表示」画面の SET デバッグ・コマンドを使用して、 UPDPROD NO を指定します。

(プログラムまたはサービス・プログラムのデバッグに必要な権限、および最適レベルの効果を含め) ILE ソースの詳細については、「ILE 概念」のデバッグに関する章を参照してください。

デバッガーの使用に慣れていない場合は、以下のステップに従ってプログラムを作成およびデバッグしてください。 プログラム PROOF 用のソースはすべてのシステムの QGPL 内にあります。
  1. ===> CRTBNDRPG QTEMP/PROOF DBGVIEW(*ALL)
  2. ===> STRDBG QTEMP/PROOF
  3. 計算行にカーソルを置き、F6 を押してブレークポイントを設定します。
  4. F12 で「DSPMODSRC」画面を終了します。
  5. ===> CALL QTEMP/PROOF

    ブレークポイント行が強調表示されたソースが再度表示されます。

  6. カーソルをプログラム・ソース (定義仕様書、入力仕様書、計算仕様書または出力仕様書) 内の変数上に移動し、F11 を押します。 画面の下部に変数の値が表示されます。
  7. F10 を押してプログラムの残りをステップスルーするか、または F12 を押して最後まで実行します。

ブレークポイントを設定した後に、プログラムを直接呼び出す必要はありません。 最終的にプログラムを呼び出すことになるアプリケーションを開始します。

プログラム全体をステップスルーする場合には、入出力仕様書をステップスルーすることになります。 入出力仕様書をスキップするには、ヘッダー仕様書またはプログラムのコンパイル時に OPTION(*NODEBUGIO) を指定します。

これらのステップの詳細は本章内で後述します。