Fortran プログラムが重大なエラー状態のために終了すると,Fortran 実行時システムは実行時メッセージの後に診断情報を表示します。
Fortran 実行時システムは,呼び出しの流れを遡り,基本診断メッセージ・レポートの一部として,エラーの前の呼び出し列のレポートを生成しようと試みます。最小限表示される情報には次のものがあります。
エラー状態を説明する標準 Fortran 実行時エラー・メッセージのテキスト。
コール・スタック・フレーム 1 つにつき 1 行を含んでいる表形式のレポート。この情報には,少なくとも実行形式ファイル名と,その実行形式ファイル中の 16 進の PC が含まれています。
「Routine」,「Line」,および「Source」欄に表示される情報は,プログラムが /traceback オプションを指定してコンパイルされていたかどうかによって変わります。/traceback はビジュアル開発環境の「Debug」構成では基本設定ですが,「Release」構成では明示的に要求する必要があります (「Project Settings」ダイアログボックスの「Fortran」タブの「Run Time」カテゴリ)。
たとえば,/traceback が指定されていると,表示される情報は次のようになります。
forrtl: severe (24): end-of-file during read, unit 10, file ... Image PC Routine Line Source DFORRT.dll 1000A3B2 Unknown Unknown Unknown DFORRT.dll 1000A184 Unknown Unknown Unknown DFORRT.dll 10009324 Unknown Unknown Unknown DFORRT.dll 10009596 Unknown Unknown Unknown DFORRT.dll 10024193 Unknown Unknown Unknown teof.exe 004011A9 AGAIN 21 teof.for teof.exe 004010DD GO 15 teof.for teof.exe 004010A7 WE 11 teof.for teof.exe 00401071 HERE 7 teof.for teof.exe 00401035 TEOF 3 teof.for teof.exe 004013D9 Unknown Unknown Unknown teof.exe 004012DF Unknown Unknown Unknown KERNEL32.dll 77F1B304 Unknown Unknown Unknown
同じプログラムが /traceback オプションなし (/notraceback) でコンパイルされていた場合,次のように変わります。
「Routine」,「Line」,「Source」フィールドは,「Unknown」として報告されます。
エラーの原因を特定するためには,一般にリンク・マップ・ファイルとソース・リストが必要となります。
/traceback オプションを指定すると,エラー・メッセージ情報にプログラム・カウンターとソース・ファイル行の関係付けの情報が表示されるので,重大な実行時エラーの原因を特定する作業が単純化されます。/traceback を指定して生成された Fortran オブジェクトについては,コンパイラは Fortran 実行時システムが PC (プログラム・カウンター) 値を,それが実行されたルーチン名,Fortran ソース・ファイル,およびソース・ファイル中の行番号と自動的に関係付けるために使用する付加な情報を生成します。この情報は実行時エラーの診断レポートに表示されます。
自動的な PC の関係付けは,Fortran コードでのみサポートされます。Fortran 以外のコードでは,16 進の PC 位置だけが報告されます。
次に示す節では,トレースバックに関連するツールを紹介し,トレースバックに関連する環境変数のリストを示し,トレードオフと制約条件について説明し,例を示します。