読者です 読者をやめる 読者になる 読者になる

デバッグ情報取得

GNU/Linux

概要

gdbデバッグした時のメモ。

環境

Vagrant CentOS6.8 on Mac

デバック情報(debuginfo)

各パッケージにはデバッグ情報が付いてこない。よって別途、デバッグ情報をインストールする必要がある。デバッグ情報とはシンボル情報やソースコードで、GDBなどのデバッカはバイナリの命令とソースコードを紐付けてくれる。デフォルトでデバッガは機械語から逆アセンブラしてくれて、アセンブラレベルでデバッグはできるが、やはりC言語デバッグしたいのでとても便利。

デバッグ情報インストール

man debuginfo-install

NAME
       debuginfo-install

SYNOPSIS
       debuginfo-install package

DESCRIPTION
       debuginfo-install is a program which installs the RPMs needed to debug the specified package.  The package argument can be a wildcard, but will only
       match installed packages.  debuginfo-install will then enable any debuginfo repositories, and install the relevant debuginfo rpm.

EXAMPLES
       Download and install all the RPMs needed to debug the kernel RPM:
              debuginfo-install kernel

debuginfo-install パッケージ名 でデバッグ情報のパッケージをインストール。

gcc -g などでコンパイルすれば、glibcの中もCのソースコードデバッグできる。

既存のバイナリ

既存のバイナリのパッケージに対しては、ソースからビルドし直せばソースコードへのリンク付きでバイナリが生成されるのでソースコードレベルでデバッグできるようになるようだ。

カーネル

カーネルのdebuginfo導入方法

yum install kernel-debuginfo debuginfo-install kernel