この節では,例外と実行時エラーの場所を特定するためのいくつかのガイドラインを示します。Visual Fortran の実行時エラー・メッセージは,通常はエラーを引き起こしているソース内の正確な位置は示しません。
エラーの原因を特定するには,各種のコンパイラ・オプションを使ってコンパイル時または実行時にプログラミング上のエラーを確定したり,デバッガーを使って例外の原因を特定します。
/[no]warn オプションはコンパイル時の診断メッセージを制御します。これは,状況によっては実行時エラーの原因を判断するのに役立つことがあります。Microsoft ビジュアル開発環境では,「Project Settings」ダイアログボックスの「Fortran」タブで,「General」カテゴリの「Warning Level」を指定するか,「Compilation Diagnostics」カテゴリの「Warning Level」を指定します。
/check:keyword オプションは,特定の状態を実行時に捕捉するための余分なコードを生成します (「/[no]check」を参照。ビジュアル開発環境では,「Run time」カテゴリの「Runtime Error Checking」を指定します)。次に例を示します。
/check:bounds オプションは,配列または文字列の境界を越えた参照を捕捉するための余分なコードを生成します。
/check:overflow オプションは,整数オーバーフロー条件を捕捉するための余分なコードを生成します。
/check:noformat,/check:nooutput_conversion,および /check:nopower オプションは,関連付けられた実行時エラーの重大度レベルを下げて,プログラムを続行できるようにします。
/check:underflow オプションは,実行時の浮動小数点アンダーフロー例外の報告を制御します。
/traceback オプションにより,プログラム・カウンターをソース・ファイル行と関係付けることができます。これにより,重大な実行時エラーの原因を特定する作業が単純化されます。/traceback がなければ,エラーの原因を特定するためには,通常はリンク・マップ・ファイルとソース・リストが必要となります。「トレースバック情報の使用」で説明しているように,重大な実行時エラーでは,いくつかのトレースバック関連の情報が提供されます。
/fpe オプションは,実行時の浮動小数点算術例外 (IEEE 算術) の処理を制御します。ビジュアル開発環境では,「Floating Point」カテゴリの「Floating-Point Exception Handling」を指定します。
たとえば,/fpe:3 を指定すると,IEEE 例外値に関連する例外は報告されず,アプリケーションは IEEE 例外値を生成する可能性があります。このため,後にアプリケーション内で例外や予期しない値が生成されることがあります。アプリケーションを /fpe:0 で再コンパイルすれば,IEEE 例外値が生成されたときにプログラムは早い段階で終了し,エラーを報告します。
また,FOR_GET_FPE および FOR_SET_FPE ルーチンを使うと,特定の算術例外の実行時処理を確認し設定することができます。
「デバッグ中の実行時エラーの場所を特定する方法」で説明しているように,デバッガーを使って例外の場所を特定することができます。