コンパイラーが生成したアセンブラー出力リストおよびリンカーが生成したマップファイルは、コンパイラーの最適化による影響、およびアプリケーションがメモリー内でどのように構成されるのかを理解する上で参考になります。また、エラー発生時のスタックトレースにある情報を解釈するのにも役立ちます。
アセンブラー出力を生成する方法
コマンドラインからコンパイルする場合は、-S (Linux* および Mac OS* X) または /asmattr オプションとキーワード (Windows*) を指定します。
ifort -S file.f90 (Linux および Mac OS X)
ifort file.f90 /asmattr:all (Windows)
Linux および Mac OS X システムでは、生成されるアセンブリー・ファイルの拡張子は .s になります。Windows システムでは、アセンブリー・ファイルの拡張子は .asm になります。
さらに、Windows システムでは Visual Studio* 統合開発環境を使用できます。
-
[Project (プロジェクト)] > [Properties (プロパティ)] を選択します。
-
[Fortran] フォルダーをクリックします。
-
[Output Files (出力ファイル)] カテゴリーの [Assembler Output (アセンブラー出力)] 設定を任意のオプションに変更します。これらのオプションには、[No Listing (なし)]、[Assembly-Only Listing (アセンブリー・コードのみ)]、および [Assembly, Machine Code and Source (アセンブリー・コード、マシンコード、ソースコード)] などがあります。
リンクマップ (.map) ファイルを生成する方法
コマンドラインからコンパイルする場合は、-Xlinker と -M オプション (Linux および Mac OS X) または /map (Windows) オプションを指定します。
ifort file.f90 -Xlinker -M (Linux および Mac OS X)
ifort file.f90 /map (Windows)
さらに、Windows では Visual Studio 統合開発環境を使用できます。
-
[Project (プロジェクト)] > [Properties (プロパティ)] を選択します。
-
[Linker (リンカー)] フォルダーをクリックします。
-
[Debug (デバッグ)] カテゴリーから [Generate Map File (マップファイルの作成)] を選択します。