37.7.2 アプリケーションエラー
-DebugInf,-DebugInf,Trace,-DebugCompati,-DebugData,-TDInf,-CVInf,-DebugRangeオプションのどれも指定しないでコンパイルしたプログラムの実行でハードウェア例外やソフトウェア例外が発生した場合,OSがアプリケーションエラーのダイアログボックスを表示します。代表的なアプリケーションエラーと対処法を「表37‒3 代表的なアプリケーションエラー」に示します。
アプリケーションエラーが発生した場合は,次の手順で発生している例外種別および発生個所を調べてください。
-
-DebugInfまたは-DebugInf,Traceオプションを指定して再度コンパイルと実行をする
-
異常終了時要約情報リストで発生している例外種別および発生個所を調べる
発生個所がCALL文を指している場合は,その呼び出し先プログラムも調査の対象としてください。
例外名称(例外コード) |
意味と対処方法 |
---|---|
アクセス違反 (0xc0000005) |
(原因)アクセスが許されていないメモリに読み書きしようとした。 (対処)このエラーは主に次の要因で発生する。これに該当しないかを確認する。
1.〜3.の場合,-DebugRangeを指定してコンパイル・実行することで,そのエラーであることおよび発生個所を特定できる。 |
ゼロ除算 (0xc0000094) |
(原因)ゼロで除算しようとした(被除数,除数ともに浮動小数点データでない場合)。 (対処)ゼロによる除算が発生しないようにプログラムを変更する。 |
スタックオーバフロー (0xc00000fd) |
(原因)プログラムが使用するスタックサイズが,プログラムで許されたスタックの上限を超えた。再帰属性プログラム,メソッド,および利用者定義関数で,次の場合に発生しやすくなる。
(対処)プログラムのスタックの上限は,-STACKオプションで変更できる。このオプションで変更してから再リンクして,スタックの上限を変更する。-STACKオプションについては,「38.1.3 オプション」を参照のこと。 COBOLプログラムが使用するスタック領域については,「31.3 COBOLプログラムが使用するスタック領域」を参照のこと。 |