COBOL2002 使用の手引 操作編


5.2.18 TDコマンド群

一つにまとまった処理をするためのTDコマンドの集まりをTDコマンド群として指定できます。TDコマンド群は,次のTDコマンドで指定できます。

使用例
SET BREAK STATEMENT(100) DO
 DISPLAY DATA(品名)
 SET BREAK STATEMENT(500) DO  *> ネスト
   DISPLAY DATA(番号)
 ENDDO
ENDDO

データ監視条件の設定,または中断点の設定による中断が一つの文で同時に成立したときは,次の順番でTDコマンド群が実行されます。

  1. 「データ監視条件の設定」のTDコマンド群

  2. 「中断点の設定」のTDコマンド群

さらに,データ監視条件の設定によって,一つの文で複数のデータ監視条件が同時に成立したときは,監視識別子の昇順にTDコマンド群が実行されます。

使用例

次のTDコマンドを実行し,一つの文で同時に中断が成立すると,「データ監視の設定(SET WATCH(DATAA))」「データ監視の設定(SET WATCH(WORK))」「中断点の設定」の順番でTDコマンド群が実行されます。

TDコマンド群
SET BREAK STATEMENT(5000)               *> 中断点の設定
DO
  DISPLAY COMMENT("TEST#1 OK!")
ENDDO
SET WATCH(WORK) CONDITION(WORK NOT = 0) *> データ監視の設定(1)
DO
  DISPLAY DATA(WORK)
ENDDO
SET WATCH(DATAA) CONDITION(DATAA NOT = 0) *> データ監視の設定(2)
DO
  DISPLAY DATA(DATAA)
ENDDO
実行結果

[図データ]

次のプログラムを続行するTDコマンドをTDコマンド群に指定すると,プログラムの実行が再開されてしまうために,それ以降のTDコマンドは実行されません。TDコマンド群が複数ある場合,最初に実行されるTDコマンド群にプログラムを続行するTDコマンドが指定されていたときは,それ以降のTDコマンド群は実行されません。

TDコマンド群が実行されなかったとき,カウンタ変数は加算されません。中断点を設定したときのスキップ回数のカウントは加算されます。

使用例

次のTDコマンドを実行した結果,文番号6000で比較条件式A = 50が成立したとします。SET WATCHコマンドで指定されたTDコマンド群が実行され,GOコマンドによってプログラムが続行されます。SET BREAKコマンドで指定された無条件中断のTDコマンド群のDISPLAY DATAコマンドは実行されません。カウンタ変数Cの値も変化しません。

SET WATCH(WATCH50)  CONDITION(A = 50)
DO
  GO
ENDDO
 
SET BREAK STATEMENT(6000) COUNTER(C)
DO
  DISPLAY DATA(B)
ENDDO
注意事項
  • 「データ監視条件の設定」と「中断点の設定」が成立しても,TDコマンド群でプログラムを続行するコマンドが実行されたときは,入力待ちにならないで,実行が継続されます。

  • ステップイン,ステップオーバーまたはジャンプで中断した文で,同時に「データ監視条件の設定」と「中断点の設定」が成立しても,TDコマンド群は一切実行しません。

  • 中断点のスキップ回数は,TDコマンド群の実行には関係なく,中断点を通過した場合には必ず更新されます。

  • 中断点に達した場合のメッセージおよびデータ監視条件が成立した場合のメッセージは,TDコマンド群の実行に関係なく表示されます。

  • コマンド実行中に割り込みを指示した場合は,その時点で実行しているTDコマンド以降のコマンドは実行されないで中断します。

  • シミュレーション手続きの場合は,シミュレーション対象入出力文の次の文でプログラムが中断します。