Table of Contents
1 debian-debugリポジトリを追加する
debigan-debugリポジトリを追加します。
$ cat <<EOF | sudo tee /etc/apt/sources.list.d/dbgsym.listdeb http://debug.mirrors.debian.org/debian-debug/ stretch-debug mainEOF$ 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関数でブレークしました。