COBOL2002 使用の手引 手引編
シグナルとは,ハードウェア,およびソフトウェアで発生する割り込みのことです。COBOLでは,-DebugInf,-DebugInf,Trace,-DebugCompati,-DebugData,-TDInf,-CVInf,-DebugRangeオプションのどれかを指定してコンパイルしたプログラムを実行する場合,次に示すシグナルを登録します。
なお,マルチスレッド対応COBOLプログラムでは,さらに次の二つが追加されます。これらは,システムのシグナルではなく,異常終了時要約情報リストに表示されるシグナル種別です。
COBOL以外のプログラムで上記シグナルを登録した場合,異常終了時の結果を保証できない場合があります。詳細は,「19.1 C言語との連携」を参照してください。
上記シグナルが発生した原因として,代表的なものを次に示します。
また,-DebugInf,-DebugInf,Trace,-DebugCompati,-DebugData,-TDInf,-CVInf,-DebugRangeオプションのどれかを指定してコンパイルされたCOBOLプログラムに,一度以上制御が渡り,上記のシグナル発生によって異常終了した場合,COBOLの戻り値は1になります。
割り込み発生条件が,COBOLによって変更されることはありません。
-DebugInf,-DebugInf,Trace,-DebugCompati,-DebugData,-TDInf,-CVInf,-DebugRangeオプションと-MultiThreadオプション(マルチスレッド対応COBOLプログラム)指定によるシグナルの登録と,COBOLプログラム終了時のシグナルの回復について,次に示します。
コンパイラオプション | COBOLのシグナル登録/回復 | ||
---|---|---|---|
-DebugInf -DebugInf,Trace -DebugCompati -DebugData -TDInf -CVInf -DebugRange |
-MultiThread | シグナル登録 | シグナル回復 |
あり | あり | 登録あり シグナルは,すべてのスレッドで有効 |
回復なし |
なし※2 | 登録あり | 回復あり | |
なし※1 | − | 登録なし | − |
あり/なしが混在 | あり | 登録あり シグナルは,すべてのスレッドで有効 |
回復なし |
なし※2 | 登録あり※3 | 回復あり※3 |
異常終了時要約情報リストを出力後,プロセスは終了コード1で終了します。
この環境変数にNOSIGNALを指定すると,デバッグ用コンパイラオプション-DebugInf, -DebugInf,Trace,-DebugCompati,-DebugData,-TDInf,-CVInf,-DebugRange のどれかを指定したプログラムの実行中にシグナル登録をしません。
このため,異常終了要因となるシグナルが発生しても,デバッグ情報は出力しません。終了方法は,制御プログラムの終了処理に依存します。
制御プログラムの終了処理を次に示します。
All Rights Reserved. Copyright (C) 2014, 2017, Hitachi, Ltd.