9.2.2 プログラムの実行
プログラムの実行を制御する機能には次の種類があります。
(1) 連続実行
テストデバッグウィンドウの[プログラムの制御]メニューから[実行]を選ぶか,またはGOコマンドで,プログラムを連続して実行できます。
GUIモードでの連続実行については,「10.10.2 連続実行」を参照してください。
GOコマンドについては「12.4 TDコマンドの詳細」の「(13) GO(実行の開始/再開)」を参照してください。
(2) ステップイン
テストデバッグウィンドウの[プログラムの制御]メニューから[ステップイン]を選ぶか,またはSTEP INコマンドで,プログラムを1文ずつ実行して中断できます。CALL文,INVOKE文および関数呼び出しを行う文は,呼び出したプログラムに制御が渡って中断されます。
GUIモードでのステップインについては,「10.10.3 ステップイン」を参照してください。
STEP INコマンドについては「12.4 TDコマンドの詳細」の「(26) STEP IN(ステップイン実行の開始/再開)」を参照してください。
(3) ステップオーバー
テストデバッグウィンドウの[プログラムの制御]メニューから[ステップオーバー]を選ぶか,またはSTEP OVERコマンドで,プログラムを1文ずつ実行して中断できます。ただし,ステップインと異なり,CALL文,INVOKE文および関数呼び出しを行う文は,呼び出したプログラムに制御が渡って中断されることはありません。
GUIモードでのステップオーバーについては,「10.10.4 ステップオーバー」を参照してください。
STEP OVERコマンドについては「12.4 TDコマンドの詳細」の「(27) STEP OVER(ステップオーバー実行の開始/再開)」を参照してください。
- 注意事項
-
-
呼び出し先プログラムで,中断点の設定があるとき,データ監視の条件が成立したとき,割り込みが実行されたとき,および実行時エラーが発生したときは,これらの条件が起きた文でプログラムが中断されます。
-
USE手続きにプログラムの制御が渡る文でステップオーバーした場合は,USE手続きの文では中断されないで,USE手続きを終了した次の文で中断されます。
-
プログラムの入口を示すものとして,PROCEDUREまたはENTRYを使用します。プログラムの出口を示すものとして,END PROGRAMまたはEND METHODを使用します。省略された場合は空白行が挿入され,使用されます。
-
(4) ジャンプ
ソーステキストウィンドウのポップアップメニューから[ジャンプ]を選ぶか,またはSTEP TOコマンドで,中断点と異なる文に,中断位置をジャンプできます。次にプログラムの実行を再開したときは,移動した中断位置からプログラムが実行されます。
GUIモードでのジャンプについては「10.10.5 ジャンプ」を参照してください。
STEP TOコマンドについては「12.4 TDコマンドの詳細」の「(28) STEP TO(ステップツー実行の再開)」を参照してください。
- 注意事項
-
-
中断点が属するソース要素の文へジャンプできます。手続き部に宣言部分があるときにできるジャンプは次のとおりです。
・宣言部分以外で中断しているとき
宣言部分以外にジャンプできる。宣言部分にはジャンプできない。
・宣言部分で中断しているとき
中断点が属する節の中の文にジャンプできる。
-
ソース要素の入口・出口およびENTRY文へのジャンプはできません。
-
-Optimize,2コンパイラオプションによる最適化を指定してコンパイルしたプログラムでは文が最適化されることがあります。このため,文を選択してもジャンプ,ジャンプ実行ができないことがあります。また,プログラムの実行順序を変更するジャンプ操作をすると,その後のプログラムの動作を保証しない場合があります。
-
(5) ジャンプ実行
ソーステキストウィンドウのポップアップメニューから[ジャンプ実行]を選ぶか,またはGOコマンドで,中断点と異なる文から,プログラムの実行を再開できます。
GUIモードでのジャンプ実行については「10.10.6 ジャンプ実行」を参照してください。
GOコマンドについては「12.4 TDコマンドの詳細」の「(13) GO(実行の開始/再開)」を参照してください。
(6) 実行の強制終了
[プログラムの制御]メニューから[プログラムの実行を終了]を選ぶか,またはSTOPコマンドで,プログラムの実行を強制的に終了できます。
GUIモードでの実行の強制終了については「10.10.7 実行の中止」を参照してください。
STOPコマンドについては,「12.4 TDコマンドの詳細」の「(29) STOP(プログラムの強制終了)」を参照してください。
- 注意事項
-
-Lib,GUIコンパイラオプションを指定してコンパイルしたプログラムは,プログラムの実行結果をコンソールウィンドウに表示します。プログラムの終了時には,コンソールウィンドウを閉じる代わりに,テストデバッグウィンドウのメニューからプログラムを終了できます。
(7) 実行の開始と開始時にできる指定
プログラムの実行は,次の操作で開始できます。
-
連続実行
-
ステップイン
-
ステップオーバー
プログラムが終了したあとも,上記の操作で,再びプログラムを開始させることができます。
プログラムの開始時には,次の指定ができます。
-
プログラムへ渡す引数
-
カバレージ情報の蓄積
プログラムへ渡す引数は,文字列を指定します。指定された文字列は,空白の区切りによって,複数の引数に分けられます。空白を含む文字列を一つの引数として指定するときは,引用符(")で囲みます。
実行の開始と開始時にできる指定の詳細については,「12.4 TDコマンドの詳細」の「(13) GO(実行の開始/再開)」を,ステップインについては,「12.4 TDコマンドの詳細」の「(26) STEP IN(ステップイン実行の開始/再開)」を,ステップオーバーについては,「12.4 TDコマンドの詳細」の「(27) STEP OVER(ステップオーバー実行の開始/再開)」を参照してください。
[ツール]メニューから[オプション]を選ぶと,GUIモードでのテストデバッグのためのオプションが設定できます。詳細については,「10.18 テストデバッグのオプション設定」を参照してください。
カバレージ情報の蓄積を指定すると,プログラムの実行中にカバレージ情報が採取され,プロセスが終了したときに,採取されたカバレージ情報がプログラム情報ファイルに蓄積されます。蓄積されたカバレージ情報は,カバレージの表示機能で表示できます。
カバレージウィンドウの[カバレージ情報]メニューから[表示]を選ぶと,蓄積されたカバレージ情報を表示できます。詳細については,「14.3.3 カバレージ情報」の「(2) 表示」を参照してください。バッチモードでのカバレージ情報の表示については,「15.3 カバレージ情報の表示(テキスト形式)」を参照してください。
- 注意事項
-
プログラムへ渡す引数は,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 ORANGE')
- PLENに12,PCHARにAPPLE ORANGEを設定します。
GO PARAMETER('"APPLE ORANGE"') GO PARAMETER("""APPLE ORANGE""")
-