dbgsymパッケージを導入してパッケージをGDBでデバッグします。
Table of Contents
1 dbgsymパッケージ用リポジトリの追加
#!/bin/sh -e U=http://ddebs.ubuntu.com C=$(lsb_release -cs) cat <<EOF | sudo tee /etc/apt/sources.list.d/ddebs.list deb ${U} ${C} main restricted universe multiverse #deb ${U} ${C}-security main restricted universe multiverse deb ${U} ${C}-updates main restricted universe multiverse deb ${U} ${C}-proposed main restricted universe multiverse EOF wget -O - http://ddebs.ubuntu.com/dbgsym-release-key.asc | \ sudo apt-key add - sudo apt update -y
2 例としてbashをデバッグする
<pkgname>-dbgsymをインストールする。
$ sudo apt install -y bash-dbgsym
こちらの手順でソースコードをダウンロードする。
$ mkdir bash $ cd bash $ apt source bash
GDBをインストールして、実行する。
$ sudo apt install -y gdb
directoryコマンドでソースツリーのトップディレクトリを指定できる。
(gdb) directory bash-5.0 Source directories searched: /home/hiroom2/bash/bash-5.0:$cdir:$cwd (gdb) b main Breakpoint 1 at 0x2ebd0: file .././shell.c, line 364. (gdb) r Starting program: /usr/bin/bash Breakpoint 1, main (argc=1, argv=0x7fffffffe188, env=0x7fffffffe198) at .././shell.c:364 364 {
GDB単体でデバッグする場合はla srcコマンドがソースコードを追跡しやすい。