デバッグ・オプション

デバッグ情報を生成するには、-g オプションを使用します。-g オプションを指定すると、コンパイラは -O0 オプションを起動して最適化を無効にします。 -g または -O0 オプションを指定すると、自動的に -fp オプションが有効になります (IA-32 のみ)。-fp オプションは、EBP レジスタを汎用レジスタとして使用できないようにします。

-O1-O2、または -O3 とともに -g オプションを指定すると、-fp が無効になり、コンパイラは、最適化の際に EBP レジスタを汎用レジスタとして使用できます。しかし、ほとんどのデバッガはスタック・バックトレースを生成するために EBP レジスタがスタック・フレーム・ポインタとして使用されると想定しています。 -fp オプションを使用すると、生成するコードの効率が少し低下する場合があります。

オプション 結果
-g デバッグ情報が生成され、-O0 による最適化が有効になります。IA-32 を対象にコンパイルする場合は、fp が有効になります。
-g -O1 デバッグ情報が生成され、-O1 による最適化が有効になります。IA-32 を対象にコンパイルする場合は、fp が無効になります。
-g -O2 デバッグ情報が生成され、-O2 による最適化が有効になります。IA-32 を対象にコンパイルする場合は、fp が無効になります。
-g -O3 デバッグ情報が生成され、-O3 による最適化が有効になります。IA-32 を対象にコンパイルする場合は、fp が無効になります。
-g -O3 -fp デバッグ情報が生成され、-O3 による最適化が有効になります。IA-32 を対象にコンパイルする場合は、fp が有効になります。
-ip デバッグ用のシンボルと行番号が生成されます。
-ipo デバッグ用のシンボルと行番号が生成されます。