CentOS 7: デバッグシンボルでパッケージをデバッグする

debuginfoパッケージを導入してパッケージをGDBでデバッグします。

1 yum-utilsをインストールする

debuginfo-installコマンドはyum-utilsに含まれています。

$ sudo yum install -y yum-utils

2 debuginfoをインストールする

debuginfo-installでパッケージをインストールします。ここの<pkg>はdebuginfoのサフィックスをつけていないものです。

$ sudo debuginfo-install -y <pkg>

3 コマンドをデバッグする

GDBにプログラムを指定します。

$ gdb <prog>

lsコマンドをデバッグする場合は以下の通りです。

$ sudo debuginfo-install -y coreutils
$ gdb ls

4 起動しているプロセスをデバッグする

gdb -pでPIDを指定します。プロセスがひとつだけの場合はpidofも使えます。

$ sudo gdb -p $(pidof <prog>)

rsyslogのプロセスをデバッグする場合は以下の通りです。root権限が必要です。

$ sudo debuginfo-install -y rsyslog
$ sudo gdb -p $(pidof rsyslogd)