2.2.2 プログラムの実行
プログラムの実行を制御する機能には次の種類があります。
(2) ステップイン
STEP INコマンドで,プログラムを1文ずつ実行して中断できます。CALL文,INVOKE文および関数呼び出しをする文は,呼び出したプログラムに制御が渡って中断されます。
STEP INコマンドについては「5.4 TDコマンドの詳細」の「5.4.5 STEP IN(ステップイン実行の開始/再開)」を参照してください。
(3) ステップオーバー
STEP OVERコマンドで,プログラムを1文ずつ実行して中断できます。ただし,ステップインと異なり,CALL文,INVOKE文および関数呼び出しをする文は,呼び出したプログラムに制御が渡って中断されることはありません。
STEP OVERコマンドについては「5.4 TDコマンドの詳細」の「5.4.6 STEP OVER(ステップオーバー実行の開始/再開)」を参照してください。
- 注意事項
-
-
呼び出し先プログラムで,中断点の設定があるとき,データ監視の条件が成立したとき,割り込みが実行されたとき,および実行時エラーが発生したときは,これらの条件が起きた文でプログラムが中断されます。
-
USE手続きにプログラムの制御が渡る文でステップオーバーした場合は,USE手続きの文では中断されないで,USE手続きを終了した次の文で中断されます。
-
プログラムの入口を示すものとして,PROCEDUREまたはENTRYを使用します。プログラムの出口を示すものとして,END PROGRAMまたはEND METHODを使用します。省略された場合は空白行が挿入され,使用されます。
-
(4) ジャンプ
STEP TOコマンドで,中断点と異なる文に中断位置をジャンプできます。次にプログラムの実行を再開したときは,移動した中断位置からプログラムが実行されます。
STEP TOコマンドについては「5.4 TDコマンドの詳細」の「5.4.7 STEP TO(ステップツー実行の再開)」を参照してください。
- 注意事項
-
-
中断点が属するソース要素の文へジャンプできます。手続き部に宣言部分があるときにできるジャンプは次のとおりです。
・宣言部分以外で中断しているとき
宣言部分以外にジャンプできる。宣言部分にはジャンプできない。
・宣言部分で中断しているとき
中断点が属する節の中の文にジャンプできる。
-
ソース要素の入口・出口およびENTRY文へのジャンプはできません。
-
-Optimize,2コンパイラオプションによる最適化を指定してコンパイルしたプログラムでは文が最適化されることがあります。このため,文を選択してもジャンプ,ジャンプ実行ができないことがあります。また,プログラムの実行順序を変更するジャンプ操作をすると,その後のプログラムの動作が保証されない場合があります。
-
(5) ジャンプ実行
GOコマンドで,中断点と異なる文から,プログラムの実行を再開できます。
GOコマンドについては「5.4 TDコマンドの詳細」の「5.4.4 GO(実行の開始/再開)」を参照してください。
(6) 実行の強制終了
STOPコマンドで,プログラムの実行を強制的に終了できます。
STOPコマンドについては,「5.4 TDコマンドの詳細」の「5.4.8 STOP(プログラムの強制終了)」を参照してください。
(7) 実行の開始と開始時にできる指定
プログラムの実行は,次の操作で開始できます。
-
連続実行
-
ステップイン
-
ステップオーバー
プログラムが終了したあとも,上記の操作で,再びプログラムを開始させることができます。
プログラムの開始時には,次の指定ができます。
-
プログラムへ渡す引数
-
カバレージ情報の蓄積
プログラムへ渡す引数は,文字列を指定します。指定された文字列は,空白の区切りによって,複数の引数に分けられます。空白を含む文字列を一つの引数として指定するときは,引用符(")で囲みます。
実行の開始と開始時にできる指定の詳細については,「5.4 TDコマンドの詳細」の「5.4.4 GO(実行の開始/再開)」を,ステップインについては,「5.4 TDコマンドの詳細」の「5.4.5 STEP IN(ステップイン実行の開始/再開)」を,ステップオーバーについては,「5.4 TDコマンドの詳細」の「5.4.6 STEP OVER(ステップオーバー実行の開始/再開)」を参照してください。
カバレージ情報の蓄積を指定すると,プログラムの実行中にカバレージ情報が蓄積され,プロセスが終了したときに,蓄積されたカバレージ情報がプログラム情報ファイルに蓄積されます。蓄積されたカバレージ情報は,カバレージの表示機能で表示できます。
カバレージ情報の表示については,「7.3 カバレージ情報の表示(テキスト形式)」および「7.4 カバレージ情報の表示(CSV形式)」を参照してください。
- 注意事項
-
プログラムへ渡す引数は,Cインタフェース形式(-Main,SystemコンパイラオプションまたはC言語のプログラムから呼ばれるプログラム),およびVOS3形式(-Main,V3コンパイラオプション)の二つがあります。
プログラムへ渡す引数については,マニュアル「COBOL2002 使用の手引 手引編」を参照してください。
- 使用例1
-
Cインタフェース形式の引数に,GOコマンドで値を設定します。
- COBOLプログラム
01 ARGC PIC 9(8) USAGE COMP. 01 ARGV. 02 ARGV1 ADDRESS. 02 ARGV2 ADDRESS. 02 ARGV3 ADDRESS. PROCEDURE DIVISION USING BY VALUE ARGC BY REFERENCE ARGV. ・ ・ ・
- TDコマンド
-
-
ARGCに3,ARGV1にプログラム名のアドレス,ARGV2に文字列APPLEのアドレス,ARGV3に文字列ORANGEのアドレスを設定します。
GO PARAMETER('APPLE ORANGE')
-
ARGCに2,ARGV2に文字列APPLE ORANGEのアドレスを設定します。
GO PARAMETER('"APPLE ORANGE"')
-
- 使用例2
-
VOS3形式の引数に,GOコマンドで値を設定します。
- COBOLプログラム
01 PARM. 02 PLEN PIC S9(4) USAGE COMP. 02 PCHAR PIC X(30). PROCEDURE DIVISION USING PARM. ・ ・ ・
- TDコマンド
-
-
PLENに5,PCHARにAPPLEを設定します。
GO PARAMETER('APPLE')
-
PLENに12,PCHARにAPPLE ORANGEを設定します。
GO PARAMETER('"APPLE ORANGE"')
-