ウォッチの特性

ウォッチを行う前に、ウォッチについて次の特性を知っておいてください。
  • ウォッチはシステム全体で行われます。同時に活動状態にできるウォッチの最大数は 256 です。 この数には、システムが設定したウォッチの数が含まれています。
    システム全体の使用状況に応じて、 所定の時間に設定できるウォッチ条件の数が制限されることがあります。 システム全体で活動状態のウォッチの最大数を超えているときに、さらに ウォッチ条件を設定しようとすると、エラー・メッセージが出され、このウォッチ条件は 設定されません。
    注: 式または変数がページ境界にまたがっている場合、記憶域位置のモニターには 内部的に 2 つのウォッチ条件が使用されます。 したがって、システム全体で同時にウォッチできる式または変数の最大数は、 128 から 256 までです。
  • ウォッチ条件が設定できるのは、 デバッグによりプログラムが停止されている場合に、 ウォッチされる式または変数が有効範囲内にあるときだけです。 これにあてはまらない場合にウォッチが要求されると、 対応する呼び出しスタック項目が存在しないことを示すエラー・メッセージが 出されます。
  • ウォッチ条件が設定された後は、 ウォッチされる記憶域位置のアドレスは変更されません。 したがって、 仮の位置にウォッチが設定されると、ウォッチ条件の疑似通知が 出される場合があります。

    この例として、ILE RPG サブプロシージャーの自動記憶域があり、これはサブプロシージャーの終了後に再使用することができます。

    ウォッチされる変数がもはや有効範囲内にない場合であっても、ウォッチ条件が 登録される場合があります。 そのため、ウォッチ条件が報告されたからといって、変数が有効範囲内にあると 見なすことはできません。

  • 同一ジョブ内の 2 つのウォッチ位置がオーバーラップしてはなりません。 異なるジョブの 2 つのウォッチ位置は、同一の記憶域アドレスから 開始してはなりません。そうでない場合は、オーバーラップが 使用できます。 こうした制約に違反すると、エラー・メッセージが出されます。
    注: ウォッチされる記憶域の位置が、このウォッチ条件を設定したジョブとは 異なるジョブで変更される場合、この変更は無視されます。
  • コマンドが正常に実行された後、セッション内のプログラムが ウォッチされる記憶域位置の内容を変更すると、アプリケーションは停止し、 モジュール・ソース表示画面が表示されます。

    プログラムにデバッグ・データがある場合、使用可能なソース・テキスト・ビューがあれば表示されます。 記憶域位置における内容の変更が検出されたときに実行され ようとしていたステートメントのソース行が強調表示され、 ウォッチ条件が満たされたことを示すメッセージが出されます。

    プログラムをデバッグすることができない場合、画面の テキスト部分はブランクになります。

  • 適格なプログラムがウォッチを停止させると、 このプログラムは、自動的にデバッグ・セッションに追加されます。
  • 同一プログラム・ステートメントが、複数のウォッチ条件に該当した場合には 、最初のウォッチ条件のみが報告されます。
  • デバッグにサービス・ジョブを使用している時、すなわちあるジョブから別の ジョブをデバッグする時にもウォッチ条件を設定できます。