インテル® デバッガ (idb) は、ソースレベルでデバッグを行うシンボリック・デバッガであり、次のような機能を持ちます:
プログラムの各ソース行の実行を制御できます。
特定のソース行に、またはさまざまな条件を基に、プログラムを停止するポイント (ブレークポイント) を設定できます。
プログラム内の変数の値を変更できます。
シンボリック名を使用して、プログラム内の特定の位置を参照できます。デバッガは、インテル® Fortran 言語についての知識を利用し、適切なスコーピング規則と値の評価方法および表示方法を判断します。
変数の値を出力し、トレースポイント (トレース) を設定して、変数の値が変更された時に通知します。(トレースポイントは、ウォッチポイントとも呼ばれています)。
コアファイルの検査、コールスタックの検査、およびレジスタの表示など、その他の機能を実行します。
idb デバッガには、次の 2 つのモードがあります:
dbx (デフォルト・モード)
gdb (オプション・モード)
本書のすべての例は、dbx モードで示します。
注
idb に関する詳細は、idb の man ページまたはオンラインの『Intel Debugger (IDB) Manual』(英語) を参照してください。
デバッガを使用するには、ifort コマンドで -g コマンドライン・オプションを指定します。デバッグには、トレースバック情報およびシンボルテーブル情報の両方が必要です。-g を指定した場合、コンパイラは、シンボリック・デバッグに必要なシンボルテーブル情報とトレースバック情報を提供します。(-notraceback オプションを指定すると、トレースバック情報を取得しません)。
これらのオプションをプログラム開発のさまざまな工程で使用する例を次に挙げます :
プログラム開発の初期段階では、-g オプションを使用して、非最適化コード (最適化レベル -O0) を作成します。また、このオプションは、後の段階で、報告された問題をデバッグするためにも使用できます。
トレースバック情報およびシンボルテーブル情報によって、より大きなオブジェクト・ファイルが生成されます。プログラム開発の後期段階では、-g0 または -g1 を使用してオブジェクト・ファイルのサイズを最小化します。その結果、最適化コードにより、プログラムの実行に必要なメモリの量も最小化されます。(-g0 オプションは、トレースバック情報を削除します)。
プログラムのデバッグ終了後に、コンパイルとリンクを再度行うことで、最適化された実行プログラムを作成できます。また、strip コマンドを使用することで、トレースバック情報およびシンボルテーブル情報を削除できます。(strip(1) を参照)
デバッグを向上する設定についての詳細は、-debug keyword オプションを参照してください。
注
インテル® プラットフォームでは、最適化されたコードのデバッグが完全にはサポートされていません。