例外が発生するこのプログラムをデバッグしています。たとえば、これによりデバッガはいくつかのソースコードを見つけますが、それは../sysdeps/unix/sysv/linux/raise.c
見つかりません。
今私はこれらのリソースを持っている必要はないことに気づいていますが、まだそのようなリソースがそこにあったらと思います。
私はDevuan Chimaera GNU / Linuxシステムを開発しています。
gdbでこれらのソースを使用してターゲティングできるようにする最も簡単な方法は何ですか?
ベストアンサー1
最も簡単な方法は、パッケージのソースコードをどこかに抽出することです。適切なディレクトリに移動して、次を実行します。
apt source glibc
では、コマンドをgdb
使用してdirectory
ソースパスに適切なディレクトリを追加します。
別々のデバッグシンボルが必要な場合もあります。 Devuanが一般的なデバッグシンボルパッケージを提供しているかどうかはわかりませんが、同じ目的でdbgsym
リリースされているのを見ました。libc6-dbg
sudo apt install libc6-dbg
以下はサンプルgdb
セッションです。
$ gdb ls
...
(gdb) directory ~/Debian/glibc
Source directories searched: /home/steve/Debian/glibc:$cdir:$cwd
(gdb) break malloc
Breakpoint 1 at 0x46c8
(gdb) run
Starting program: /bin/ls
Breakpoint 1, malloc (n=1441) at dl-minimal.c:50
50 if (alloc_end == 0)