26.9.2 実行時デバッグ機能
デバッグ用のオプション(-DebugInf,-DebugInf,Trace,-DebugCompati,-DebugData,-TDInf,-CVInf,-DebugRange)を指定しコンパイルしたマルチスレッド対応COBOLプログラムが,実行時に異常終了,またはエラーが発生した場合,異常終了時要約情報が出力された後,スレッドが終了されます。
- 〈この項の構成〉
(1) シグナルの登録
マルチスレッド対応COBOLプログラムでは,シグナルの登録にsigactionシステムコールを使用します。登録するシグナルに関する詳細は,「36.9 シグナル」を参照してください。
(2) シグナルの種別
マルチスレッド対応COBOLプログラムでは,異常終了時要約情報リスト中のシグナル種別として以下を追加する。
-
RUNTIME ERROR(実行時エラーの発生)
-
CBLABN(CBLABNサービスルーチンの呼び出し)
なお,-MultiThreadオプションの指定がないCOBOLプログラムで,実行時エラーが発生したり,CBLABNサービスルーチンが呼び出されたりした場合には,シグナル種別はSIGIOT(abortによる異常終了)となります。
(3) シグナルに関する注意事項
-
アプリケーションプログラムを実行中に,Cプログラムでシグナルの動作を指示するシステムコールが発行された場合,異常終了時の結果は保証しません。
-
マルチスレッド対応COBOLプログラムの実行時に次の理由で終了した場合,コアダンプは出力されません。
-
COBOLがメッセージを出力して実行を中止したとき
-
デバッグ用のオプション(-DebugInf,-DebugInf,Trace,-DebugCompati,-DebugData,-TDInf,-CVInf,-DebugRange)を指定して異常終了したとき(環境変数CBLCOREは無効となります)
-
CBLABNサービスルーチンを実行したとき
-
-
マルチスレッド対応COBOLプログラムでのシステムのシグナル処理は,プロセス単位の管理となっており,シグナルの登録,回復は,プロセス内すべてのスレッドに影響があります。シグナルの詳細は,「36.9 シグナル」を参照してください。