Menu Close
2.2.3. GCC で C および C++ のアプリケーションのデバッグの有効化
デバッグの情報が大きいと、デフォルトでは実行ファイルが含まれません。GCC を使用した C および C++ のアプリケーションのデバッグを有効にするには、ファイルを作成するように、コンパイラーに明示的に指定する必要があります。
コードのコンパイルおよびリンク時に、GCC でデバッグ情報の作成を有効にするには、-g
オプションを使用します。
$ gcc ... -g ...
-
コンパイラーとリンカーで最適化を行うと、実行可能なコードを、元のソースコードと関連付けることが難しくなります。変数の最適化、ループのアンロール、周りの操作へのマージなどが行われる可能性があります。このため、デバッグに影響を及ぼす場合があります。デバッグの体験を向上するには、
-Og
オプションを指定して、最適化を設定することを考慮してください。ただし、最適化レベルを変更すると、実行可能なコードが変更になり、バグを取り除くための動作が変更する可能性があります。 -
デバッグ情報にマクロ定義も追加するには、
-g
の代わりに-g3
オプションを使用します。 -
GCC オプション
-fcompare-debug
では、GCC でコンパイルしたコードを、デバッグ情報を使用して (または、デバッグ情報を使用せずに) テストします。このテストでは、出力されたバイナリーファイルの 2 つが同一であれば合格します。このテストを行うことで、実行可能なコードがデバッグオプションによる影響は受けないようにするだけでなく、デバッグコードにバグが含まれないようにします。-fcompare-debug
オプションを使用するとコンパイルの時間が大幅に伸びることに留意してください。このオプションに関する詳細は、GCC の man ページを参照してください。
関連情報
- GNU コンパイラーコレクション (GCC) の使用 - Options for Debugging Your Program
- GDB を使用したデバッグ - Debugging Information in Separate Files
GCC の man ページ:
$ man gcc