デバッグシンボルのdbgsymでパッケージをデバッグする手順を記載します。
Table of Contents
1 debian-debugリポジトリを追加する
debigan-debugリポジトリを追加します。
$ cat <<EOF | sudo tee /etc/apt/sources.list.d/dbgsym.list deb http://debug.mirrors.debian.org/debian-debug/ stretch-debug main EOF $ sudo apt update -y
2 dbgsymをインストールする
dbgsymというサフィックスが付いているパッケージがデバッグシンボルです。
<pkg>-dbgsym
この記事ではcoreutilsのデバッグシンボルをインストールします。
$ sudo apt install -y coreutils-dbgsym
デバッグシンボルは/usr/lib/debugに格納されます。GDBは/usr/lib/debugを自動的に走査します。
$ dpkg -L coreutils-dbgsym /. /usr /usr/lib /usr/lib/debug /usr/lib/debug/.build-id /usr/lib/debug/.build-id/04 /usr/lib/debug/.build-id/04/7a2dfd63f9e20b837c04e874b56b47b60f564a.debug /usr/lib/debug/.build-id/09 /usr/lib/debug/.build-id/09/16ef8fc767ab302f1468c5c515929f313b9e54.debug /usr/lib/debug/.build-id/0a <snip>
3 パッケージをデバッグする
GDBをインストールします。
$ sudo apt install -y gdb
coreutilsのソースコードをインストールします。
$ mkdir coreutils $ cd coreutils $ apt source coreutils-dbgsym $ cd ./coreutils-*
GDBでcoreutilsのlsコマンドをデバッグします。
$ gdb ls (gdb) la src (gdb) b main (gdb) r
main関数でブレークしました。