COBOL2002 操作ガイド


9.2.1 プログラムの中断

テスト中のプログラムの実行を任意に中断させることができます。中断させた状態で,次の操作をし,プログラムを調査できます。

プログラムを中断させるには,次の方法があります。

また,GUIモードでは,次の場合にもプログラムを中断させます。

〈この項の構成〉

(1) 中断点の設定による中断

プログラムの実行を,任意の個所で中断させるには,中断点を設定します。中断点を設定すると,実行中のプログラムが中断点に達したときに,中断状態になります。中断中は,中断状態で実行できるTDコマンドだけを指定できます。処理が繰り返し実行されるような個所に中断点を設定する場合は,スキップ回数を指定できます。この指定によって,不要な中断回数を減らすことができ,効率良くプログラムをテストできます。

設定した中断点は,一時的に無効な状態にできます。無効な状態の中断点では,プログラムは中断しません。中断点の有効・無効をすばやく切り替えながらテストデバッグできます。設定した中断点は,一覧を表示して確認できます。中断点の一覧表示については,「10.8.3 中断点一覧の表示」を参照してください。

GUIモードの場合,[中断]メニューから[中断点の設定/解除]を選ぶと,中断点が設定できます。設定した中断点に達したときに,プログラムが中断します。GUIモードでの中断点設定の詳細については,「10.8 中断点の設定と解除」を参照してください。

TDコマンドの場合,SET BREAKコマンドやRESET BREAKコマンドで,中断点を設定したり,解除したりできます。SET BREAKコマンドおよびRESET BREAKコマンドの詳細については,「12.4 TDコマンドの詳細」の「(19) SET BREAK/RESET BREAK(中断点の設定と解除)」を参照してください。

(2) データ監視条件の設定による中断

データの値を監視し,その状態によってプログラムを中断できます。監視したいデータの値に条件式を指定することもできます。

GUIモードの場合,[データの操作]メニューから[データ監視条件の設定]を選ぶと,データ監視条件が設定できます。設定した条件が成立したときに,プログラムが中断します。GUIモードでのデータ監視条件設定の詳細については,「10.9 データ監視条件の設定と解除」を参照してください。

TDコマンドの場合,SET WATCHコマンドやRESET WATCHコマンドで,データ監視条件を設定したり,解除したりできます。SET WATCHコマンドおよびRESET WATCHコマンドの詳細については,「12.4 TDコマンドの詳細」の「(25) SET WATCH/RESET WATCH(データ監視条件の設定と解除)」を参照してください。

データ監視条件の設定による中断の詳細は次のとおりです。

注意事項
  • COBOLプログラムの連絡節や局所場所節に定義されたデータ項目および特殊レジスタは,次に示す実行単位ごとに,それぞれ異なるデータとして監視されます。

    ・オブジェクト指向のインスタンス単位

    ・シングルスレッドやマルチスレッドなどのスレッド単位

    ・再帰できるソース要素の再帰単位

注※

再帰できるソース要素とは次のCOBOLプログラムを示します。

  • RECURSIVE指定を伴うプログラム

  • 利用者定義関数

  • メソッド

  • 左辺のデータがファクトリ定義(FACTORY)またはインスタンス定義(OBJECT)に定義されたデータのときは,右辺のデータには同じファクトリ定義またはインスタンス定義に定義されたデータが指定できます。

  • プログラムの中断時に,データ監視条件を設定した場合,監視対象データが参照できればその位置から,参照できなければ参照できる実行時要素に制御が渡ったときにデータの監視が開始されます。

(3) 割り込みによる中断

[中断]メニューから[割り込み中断]を選ぶと,プログラムの実行を強制的に中断できます。実行の強制中断の詳細については,「10.10.8 実行の割り込み中断」を参照してください。

注意事項
  • プログラムが次の状態にあるとき,割り込みによる中断はできません。

    ・-TDInfコンパイラオプションを付けずにコンパイルしたCOBOL2002の翻訳単位を実行している間。

    ・COBOL2002以外の言語で記述されたプログラムを実行している間。

    ・COBOL2002のソース要素の最後の出口から,プログラムの実行が終了するまでの間。

    これらの状態のプログラムを途中で終了させるときは,タスクマネージャなどのWindowsのプロセス管理プロブラムから,プログラムを強制終了させてください。

  • ACCEPT文などによる画面入力の要求中は,画面への入力が行われたあとにプログラムが中断します。

(4) 実行時エラーが発生した場合の中断

GUIモードの場合,実行時エラーが発生したときプログラムが中断します。実行時エラーが発生した文で,プログラムの状態を調べることができます。この中断のための設定は特に必要ありません。

次の条件がすべて当てはまるときに,プログラムが中断します。

実行時エラーによってユーザプログラムが中断したときは,次の手順でユーザプログラムを続行できます。

  1. データの値を変えるなどのデバッガの操作によって実行時エラーの原因を解決する。

  2. 実行時エラーの原因を解決したあとに,ジャンプまたはジャンプ実行によって,実行時エラーが発生した文を再び実行させる。

ただし,実行時エラーの種類によって,ジャンプまたはジャンプ実行ができない場合があります。ジャンプまたはジャンプ実行をしないで,ユーザプログラムを続行したときは,ユーザプログラムが終了します。