インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス

debug (Linux* および macOS*)

デバッグ情報の生成を有効/無効にします。

構文

Linux* および macOS*:

-debug [keyword]

Windows*:

なし

引数

keyword

コンパイラーが生成するデバッグ情報の種類。設定可能な値は以下のとおりです。

none

デバッグ情報の生成を無効にします。

full または all

詳細なデバッグ情報を生成します。

minimal

デバッグの行番号情報を生成します。

[no]emit_column

デバッグ用に列番号情報を生成するかどうかを指定します。

[no]expr-source-pos

式レベルの粒度でソース位置情報を生成するかどうかを指定します。

[no]inline-debug-info

インライン展開されたコードの拡張デバッグ情報を生成するかどうかを指定します。

[no]pubnames

コンパイラーが DWARF debug_pubnames セクションを生成するかどうかを指定します。

[no]semantic-stepping

ブレークポイントとステップ処理に役立つ拡張デバッグ情報を生成するかどうかを指定します。

[no]variable-locations

スカラーローカル変数の検索に役立つ拡張デバッグ情報を生成するかどうかを指定します。

extended

詳細なデバッグ情報を生成します。キーワード値 semantic-stepping および variable-locations も設定します。

[no]parallel (Linux* のみ)

スレッドデータ共有と再入可能な呼び出し検出に役立つ、並列デバッグコードのインストルメンテーションを生成するかどうかを指定します。

これらのキーワードのデフォルト以外の設定については、「説明」セクションを参照してください。

デフォルト

それぞれ異なる

通常、デフォルトは -debug none でデバッグ情報は生成されません。ただし、Linux* では、最適化 (オプション -O2 以上) とデバッグ (オプション -g) を有効にしてコンパイルすると、デフォルトで -debug inline-debug-info オプションが有効になります。

説明

このオプションは、デバッグ情報の生成を有効/無効にします。

デフォルトでは、デバッグを有効にすると最適化が無効になります。デバッグと最適化の両方を有効にするには、-debug オプションと最適化オプション (-O3-O2、または -O3 のいずれか) を一緒に指定します。

semantic-steppinginline-debug-infovariable-locations および extended キーワードはそれぞれを組み合わせて使用することができます。競合するキーワードが一緒に使用された場合、コマンドラインで最後に指定されたものが優先されます。

オプション

説明

-debug none

デバッグ情報の生成を無効にします。

-debug full または -debug all

詳細なデバッグ情報を生成します。これは、keyword なしで -debug を指定するのと同じです。

-debug minimal

デバッグの行番号情報を生成します。

-debug emit_column

デバッグの列番号情報を生成します。

-debug expr-source-pos

文レベルの粒度でソース位置情報を生成します。

-debug inline-debug-info

インライン展開されたコードの拡張デバッグ情報を生成します。

インライン展開される関数では、シンボルはデフォルトで呼び出し元に関連付けられます。このオプションを指定すると、インライン展開される関数のシンボルが、呼び出される関数のソースに関連付けられます。

-debug pubnames

コンパイラーは DWARF debug_pubnames セクションを生成します。コンパイル単位のグローバル・オブジェクトと関数の名前をリストできます。

-debug semantic-stepping

ブレークポイントとステップ処理に役立つ拡張デバッグ情報を生成します。最終的に影響するソース文のマシン命令でデバッガーを停止します。

例えば、代入文の場合、プログラム変数に値を代入するストア命令になります。関数呼び出しの場合、呼び出しを実行するマシン命令になります。これらのソース文用に生成された他の命令は、ステップ処理中は表示されません。

このオプションは、最適化が有効でないと効果はありません。

-debug variable-locations

スカラーローカル変数の検索に役立つ拡張デバッグ情報を生成します。「ロケーション・リスト」として知られる Dwarf オブジェクト・モジュールの機能を使用します。

この機能は、ローカルスカラー変数のランタイム・ロケーションがより正確に指定されるようにします。つまり、コード中の指定された位置において、メモリーまたはマシンレジスターにある変数値を見つけることができます。

-debug extended

キーワード値 semantic-stepping および variable-locations を設定します。また、行情報に列番号を含めるようにコンパイラーに指示します。

詳細なデバッグ情報を生成します。キーワード値 semantic-stepping および variable-locations も設定します。-debug full または -debug all よりも強力な設定です。

-debug parallel

スレッドデータ共有と再入可能な呼び出し検出に必要な、並列デバッグコードのインストルメンテーションを生成します。データ共有と再入可能な呼び出しを検出するには、-qopenmp オプションを指定する必要があります。

Linux* システムでは、デバッガーは実行ファイルからデバッグ情報を読み取ります。そのため、情報はオブジェクト・ファイルに書き込まれ、そしてリンカーにより実行ファイルに追加されます。

macOS* システムでは、デバッガーはオブジェクト・ファイルからデバッグ情報を読み取ります。そのため、実行ファイルにはデバッグ情報が含まれません。したがって、これらのシステムでデバッグを行う場合は、オブジェクト・ファイルを残しておかなければなりません。

IDE オプション

Visual Studio*: なし

Eclipse*: [Advanced Debugging (高度なデバッグ)] > [Enable Parallel Debug Checks (並列デバッグチェックを有効にする)] (-debug parallel)

[Debug (デバッグ)] > [Enable Expanded Line Number Information (行番号情報の出力を有効にする)] (-debug expr-source-pos)

Xcode*: なし

代替オプション

-debug full-debug all、または -debug

Linux* および macOS*: -g

Windows*: /debug:full/debug:all、または /debug

-debug variable-locations の場合

Linux* および macOS*: -fvar-tracking

Windows*: なし

-debug semantic-stepping の場合

Linux* および macOS*: -fvar-tracking-assignments

Windows*: なし

関連情報