デバッグ情報を生成するには、-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 | デバッグ用のシンボルと行番号が生成されます。 |