LoginSignup
3
4

More than 3 years have passed since last update.

【RHEL, CentOS, Fedora】Linux コマンドのデバッグ方法

Last updated at Posted at 2019-02-12

■ はじめに

本稿では、RHEL、CentOS、Fedora といった RedHat 系 Linux のコマンドをデバッグする方法を記載しています。

一例として、free のパッケージである procps-ng のデバッグシンボルを取得し、デバッグを開始するまで行います。

■ 検証環境

[root@hst ~]# uname -r
4.18.11-200.fc28.x86_64

[root@hst ~]# cat /etc/fedora-release 
Fedora release 28 (Twenty Eight)

上記のとおり、検証環境は Fedora ですが、以降の手順は RHEL や CentOS でも使えるはずです。ただし、RHEL, CentOS, Fedora(21以前)の標準のパッケージマネージャは dnf ではなく yum なので、その点は注意です(具体的なコマンドは併せて載せています)。

■ デバッグシンボルの取得方法

主な流れは次のとおりです。

  • デバッグしたいコマンドのパッケージ名を確認
  • デバッグしたいパッケージのデバッグシンボルをインストール

1. 事前準備

はじめに必要なコマンドのパッケージをインストールします。

// Fedora(22以降)の場合
なし

// RHEL, CentOS, Fedora(21以前)の場合
[root@hst ~]# yum install yum-utils

次にデバッグしたいコマンドのパッケージ名を確認します(本稿では free コマンドが対象)。

[root@hst ~]# rpm -qf $(which --skip-alias free)
procps-ng-3.3.12-3.fc28.x86_64

※ .fc28.x86_64 はご使用の環境により変化します。

2. デバッグシンボル取得手順

事前準備で確認したパッケージのデバッグシンボルをインストールします。

// Fedora(22以降)の場合
[root@hst ~]# dnf debuginfo-install procps-ng-3.3.12-3.fc28.x86_64

// RHEL, CentOS, Fedora(21以前)の場合
[root@hst ~]# debuginfo-install procps-ng-x.x.xx-x.xxx

コマンドを実行すると次のように <pkg>-debuginfo と <pkg>-debugsource をインストールしようとします。

Dependencies resolved.
===================================================================================================================================================================================================================
 Package                                                  Arch                                      Version                                            Repository                                            Size
===================================================================================================================================================================================================================
Installing:
 procps-ng-debuginfo                                      x86_64                                    3.3.12-3.fc28                                      updates-debuginfo                                    382 k
Installing weak dependencies:
 procps-ng-debugsource                                    x86_64                                    3.3.12-3.fc28                                      updates-debuginfo                                    229 k 

Transaction Summary
===================================================================================================================================================================================================================
Install  2 Packages

Total download size: 611 k
Installed size: 2.3 M
Is this ok [y/N]: y

念のためデバッグシンボルが読み込まれるか確認します。

[root@hst ~]# gdb -q free
Reading symbols from free...Reading symbols from /usr/lib/debug/usr/bin/free-3.3.12-3.fc28.x86_64.debug...done.
done.

上記のように表示されていれば、そのままデバッグできるはずです。もし、(no debugging symbols found)...done. と表示されている(デバッグシンボルが読み込まれていない)場合は、次のコマンドを実行し、パッケージがインストールされているかご確認ください。

[root@hst ~]# rpm -qa | grep procps-ng
procps-ng-debugsource-3.3.12-3.fc28.x86_64
procps-ng-debuginfo-3.3.12-3.fc28.x86_64
procps-ng-3.3.12-3.fc28.x86_64

以上です。

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4