2.4.1 マルチスレッド対応COBOLプログラムのテストデバッグ
マルチスレッド対応COBOLプログラムのデバッグのための機能と注意事項を説明します。
マルチスレッド対応COBOLプログラムは,プロセス内で動作するすべてのCOBOLプログラムを,-MultiThreadコンパイラオプションを使ってコンパイルしないと,実行時の動作は保証しません。
マルチスレッド対応COBOLプログラムの詳細については,マニュアル「COBOL2002 使用の手引 手引編」の,マルチスレッド環境での実行についての説明を参照してください。
- 〈この項の構成〉
(1) プログラムの実行
マルチスレッド対応COBOLプログラムを実行するときの仕様は次のとおりです。
-
中断点の設定による中断
スレッドに依存しないで,中断点に達すれば中断します。
-
データ監視条件による中断
マルチスレッド対応COBOLプログラムでは,スレッドごとにデータ値の変化を監視します。どれかのスレッドでデータの値が変化するか,または,比較条件式が成立したときに中断します。
-
特定スレッドに対応するデータの値だけを監視する設定もできます。この場合,設定時のプログラムによって,監視するデータは次のとおりになります。
-
プログラムの中断時
中断しているスレッドの指定ソース要素のデータ
-
プログラムの起動前
プログラムの起動後に,最初に生成された指定ソース要素を実行するスレッドのデータ
-
-
ステップイン
ステップインが実行されると,スレッドが切り替わるタイミングに関係なく,次に実行される文で中断します。つまり,ステップインを実行した直後にスレッドの切り替えが発生すると,ステップイン実行前の中断位置とステップイン実行後の中断位置は別のスレッドで実行されるプログラムとなります。
-
ステップオーバー
ステップオーバーを実行したスレッドと同じスレッドで,CALL文,INVOKE文および関数呼び出しを行う文を1文として実行して中断します。中断点の設定,データ監視,実行時エラー,割り込みによる中断がなければ,ステップオーバーを実行したスレッド以外で中断しません。
-
ジャンプ,ジャンプ実行
ジャンプ,ジャンプ実行したスレッドで,指定された文にジャンプします。ただし,ジャンプ,ジャンプ実行の直後に,別スレッドに切り替わり,そのプログラムで中断点の設定・データ監視・実行時エラー・割り込みなどによって中断した場合は,ジャンプ,ジャンプ実行は行われません。
-
呼び出し順序番号
マルチスレッドで実行するプログラムの場合は,スレッドごとに呼び出し順序番号の増加と減少が行われます。
-
ファイルシミュレーション
ファイルシミュレーションは,COBOL言語のファイル結合子ごとに行います。スレッドごとにファイル結合子が生成されるファイルでは,スレッドごとにファイルシミュレーションされます。
-
使用できない機能
AIXの場合,次の機能は,マルチスレッドプログラムでは使用できません。
-
DCシミュレーション
-
領域の確保と解放
-
- 注意事項
-
-
AIXの場合,マルチスレッドプログラムをデバッグ対象とする場合は,各ユーザスレッドが一つのカーネルスレッドにマップされる1:1モデルで動作する必要があります。1:1モデル以外で動作した場合,テストデバッグの動作は保証しません。1:1モデルの設定は,環境変数AIXTHREAD_SCOPEにSを設定することで行えます。
設定例
AIXTHREAD_SCOPE=S
export AIXTHREAD_SCOPE
-
Linuxの場合,マルチスレッド対応COBOLプログラムのテストデバッグはできません。
-