トレースバック情報の使用

Fortran プログラムが重大なエラー状態のために終了すると,Fortran 実行時システムは実行時メッセージの後に診断情報を表示します。

Fortran 実行時システムは,呼び出しの流れを遡り,基本診断メッセージ・レポートの一部として,エラーの前の呼び出し列のレポートを生成しようと試みます。最小限表示される情報には次のものがあります。

「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) でコンパイルされていた場合,次のように変わります。

/traceback オプションを指定すると,エラー・メッセージ情報にプログラム・カウンターとソース・ファイル行の関係付けの情報が表示されるので,重大な実行時エラーの原因を特定する作業が単純化されます。/traceback を指定して生成された Fortran オブジェクトについては,コンパイラは Fortran 実行時システムが PC (プログラム・カウンター) 値を,それが実行されたルーチン名,Fortran ソース・ファイル,およびソース・ファイル中の行番号と自動的に関係付けるために使用する付加な情報を生成します。この情報は実行時エラーの診断レポートに表示されます。

自動的な PC の関係付けは,Fortran コードでのみサポートされます。Fortran 以外のコードでは,16 進の PC 位置だけが報告されます。

次に示す節では,トレースバックに関連するツールを紹介し,トレースバックに関連する環境変数のリストを示し,トレードオフと制約条件について説明し,例を示します。