COBOL2002 使用の手引 操作編


5.4.1 SET BREAK/RESET BREAK(中断点の設定と解除)

〈この項の構成〉

(1) SET BREAK(中断点の設定)

プログラムの実行を中断させる中断点を設定します。中断したときに実行するTDコマンドの指定もできます。

形式

[図データ]

  • STATEMENT(文番号指定)

    文へ中断点を設定します。

  • STATEMENT(文番号指定..文番号)

    指定した範囲内のすべての文および手続き名に中断点を設定します。

  • PARAGRAPH(手続き名指定)

    手続きへ中断点を設定します。

  • PARAGRAPH(手続き名指定 ..手続き名)

    指定した範囲内のすべての文および手続き名に中断点を設定します。

  • PROCEDURE(入口出口指定)

    指定したソース要素の入口または出口に中断点を設定します。

  • ALLENTRY(翻訳単位指定 | #ALL)

    次のソース要素の入口に中断を設定します。

    ・翻訳単位指定:指定した翻訳単位に属するソース要素

    ・#ALL:プログラムに属するすべてのソース要素

  • ALLEXIT(翻訳単位指定 | #ALL)

    次のソース要素の出口に中断を設定します。

    ・翻訳単位指定:指定した翻訳単位に属するソース要素

    ・#ALL:プログラムに属するすべてのソース要素

  • EXTERNAL

    ALLENTRYオペランドの指定があるときは,ほかの翻訳単位の呼び出し文から呼び出される入口だけに中断点を設定します。ALLEXITオペランドの指定があるときは,ほかの翻訳単位に戻る出口だけに中断点を設定します。

    中断点を設定する入口と出口は,次のとおりになります。

入口または出口に中断点を設定するソース要素
  • プログラム

    外部プログラム

  • クラス

    メソッド

  • 利用者定義関数

入口または出口に中断点を設定しないソース要素
  • プログラム

    内部プログラム

  • SKIP(スキップ回数)

    設定した中断点で中断する周期を指定できます。中断してから次に中断するまで,スキップ回数分,中断点で止まらずに通過させることができます。指定できるのは,1〜2,147,483,647の整数です。スキップ回数のカウントは,プログラムの開始時に0が設定されます。

  • COUNTER(カウンタ変数)

    カウンタ変数は,プログラムの開始時に0が設定され,DO〜ENDDOオペランドで指定したTDコマンド群が実行されるたびに1ずつ値が増加します。

  • MESSAGE | NOMESSAGE

    中断を知らせるメッセージを表示するかどうかを指定します。

  • DO 〔 TDコマンド群 〕 ENDDO

    中断時に実行するTDコマンド群を指定します。

注意事項
  • 中断点が設定されている文または手続きに,再度,中断点の設定をしたときは,前の設定が解除され,新しい指定が有効となります。指定方法が異なる場合でも,同じ文に対する設定のときは,次のように,新しい指定が有効になります。

使用例

SET BREAK PARAGRAPH (P1) SKIP (10)の指定で,SET BREAK STATEMENT (100) SKIP(1)は解除されます。

       SET BREAK STATEMENT(100)  SKIP(1)
       SET BREAK PARAGRAPH(P1)   SKIP(10)

[図データ]

  • 中断点が設定されている入口または出口に,再度中断点を設定したときは,前の設定が解除され,新しい指定が有効となります。指定方法が異なる場合でも,同じ入口または出口に対する設定のときは,次のように,新しい指定が有効になります。

使用例

プログラム「社員」の入口に設定された中断点のSKIP指定は20となります。

SET BREAK  ALLENTRY (#ALL) EXTERNAL  SKIP(10)
SET BREAK  PROCEDURE (#PROGRAM(社員/社員)  #ENTRY)  SKIP(20)
  • STATEMENTオペランドとPARAGRAPHオペランドの範囲指定,ALLENTRYオペランド,ALLEXITオペランドは,複数の中断点を一度に設定します。カウンタ変数とスキップ回数は,設定された個々の中断点ごとにカウントされます。

  • 中断点を設定できる文が存在しない文番号を指定した場合は,その文番号よりあとで最も近い中断点を設定できる文に中断点を設定します。ただし,指定した文番号よりあとに中断点を設定できる文がないときは,翻訳単位の最後の文を仮定します。

  • STATEMENTオペランドで範囲を指定したとき,最後の文番号に中断点を設定できる文がないときは,指定した文番号より前で最も近い文にまで,中断点を設定します。

  • STATEMENTオペランドとPARAGRAPHオペランドの範囲指定では,終了位置が開始位置より前にあってはなりません。

(2) RESET BREAK(中断点の解除)

SET BREAKコマンドで設定した中断点を解除します。

形式

[図データ]

  • STATEMENT(文番号指定)

    文の中断点を解除します。

  • STATEMENT(文番号指定 ..文番号)

    指定した範囲内のすべての文および手続き名の中断点を解除します。

  • PARAGRAPH(手続き名指定)

    手続きの中断点を解除します。

  • PARAGRAPH(手続き名指定 ..手続き名)

    指定した範囲内のすべての文および手続き名の中断点を解除します。

  • PROCEDURE(入口,出口指定)

    指定したソース要素の入口または出口の中断点を解除します。

  • ALLENTRY(翻訳単位指定 | #ALL)

    次のソース要素の入口の中断点を解除します。

    ・翻訳単位指定:指定した翻訳単位に属するソース要素

    ・#ALL:プログラムに属するすべてのソース要素

  • ALLEXIT(翻訳単位指定 | #ALL)

    次のソース要素の出口の中断点を解除します。

    ・翻訳単位指定:指定した翻訳単位に属するソース要素

    ・#ALL:プログラムに属するすべてのソース要素

  • EXTERNAL

    ALLENTRYオペランドの指定があるときは,ほかの翻訳単位の呼び出し文から呼び出される入口の中断点を解除します。ALLEXITオペランドの指定があるときは,ほかの翻訳単位に戻る出口の中断点を解除します。

    EXTERNALオペランド指定時に解除される入口,出口の中断点は,「(1) SET BREAK(中断点の設定)」の入口または出口に中断点を設定するソース要素と同様となります。

  • BREAK(#ALL)

    すべての中断点を解除します。

注意事項

中断点を設定したときのSET BREAKコマンドの指定方法と同一の指定方法でなくても解除できます。

使用例

すべてのソース要素の入口に中断点を設定したあと,プログラムPGM01とPGM02の外部プログラムの入口の中断点だけを解除します。

  SET  BREAK  ALLENTRY (#ALL)  EXTERNAL
 
  RESET BREAK  ALLENTRY (#PROGRAM(PGM01))  EXTERNAL
  RESET BREAK  ALLENTRY (#PROGRAM(PGM02))  EXTERNAL