8.2. デバッグプログラムの準備
デバッグ情報を使用したプログラムのコンパイル
GNU デバッガー が読み取り可能なデバッグ情報で C プログラムをコンパイルするには、-g オプションを指定して gcc コンパイラーが実行されていることを確認します。
$ scl enable devtoolset-12 'gcc -g -o output_file input_file...'
同様に、デバッグ情報を使用して C++ プログラムをコンパイルするには、以下を実行します。
$ scl enable devtoolset-12 'g++ -g -o output_file input_file...'
例8.1 デバッグ情報を使用した C プログラムのコンパイル
以下の内容を fibonacci.c 含むという名前のソースファイルについて考えてみましょう。
#include <stdio.h>
#include <limits.h>
int main (int argc, char *argv[]) {
unsigned long int a = 0;
unsigned long int b = 1;
unsigned long int sum;
while (b < LONG_MAX) {
printf("%ld ", b);
sum = a + b;
a = b;
b = sum;
}
return 0;
}GNU デバッガー のデバッグ情報とともに、Red Hat Developer Toolset の GCC を使用してコマンドラインでこのプログラムをコンパイルします。
$ scl enable devtoolset-12 'gcc -g -o fibonacci fibonacci.c'
これにより、現在の作業ディレクトリーに fibonacci という名前のバイナリーファイルが作成されます。
既存パッケージのデバッグ情報のインストール
システムにすでにインストールされているパッケージのデバッグ情報をインストールするには、次のコマンドを実行します。
# debuginfo-install package_name
debuginfo-install ユーティリティーをシステムで使用できるようにするには、yum-utils パッケージがインストールされている必要があることに注意してください。
例8.2 glibc パッケージのデバッグ情報のインストール
glibc パッケージのデバッグ情報をインストールします。
# debuginfo-install glibc
Loaded plugins: product-id, refresh-packagekit, subscription-manager
--> Running transaction check
---> Package glibc-debuginfo.x86_64 0:2.17-105.el7 will be installed
...