Debuginfod
関連記事
Debuginfod は、HTTP API 経由でデバッグ情報を提供するサービスです。
インストール
DEBUGINFOD_URLS
環境変数 が存在する場合、gdb は自動的にデバッグ ファイルのダウンロードを試みます。
gdb の依存関係である libelf は、/etc/profile.d/debuginfod.sh
および /etc/profile.d/debuginfod に同梱されています.csh
スクリプトはログイン時に変数を設定するため、追加のパッケージをインストールする必要はありません。
オプションで、debuginfod-find(1) ユーティリティを提供する debuginfod パッケージを インストール することができます。このパッケージは、delve での debuginfod サポートに必要です。
使い方
このツールは、DEBUGINFOD_URLS
環境変数 で指定された debuginfod サーバー上でデバッグシンボルを検索します。値は、スペースで区切られた URL の文字列です。
例えば:
DEBUGINFOD_URLS="https://debuginfod.archlinux.org/"
デバッガは、適切なデバッグパッケージをインストールしなくても、デバッグシンボルをフェッチできるようになりました。
$ gdb /usr/bin/i3
[...] Reading symbols from /usr/bin/i3... Downloading 1.56 MB separate debug info for /usr/bin/i3 Reading symbols from /home/user/.cache/debuginfod_client/29129d26dbe557d2b56daf90327f64f527304dc1/debuginfo... (gdb)
たとえば次のようにすることもできます。
# coredumpctl gdb
そして、gdb 内では次のようになります。
bt full
システム内で最後にクラッシュしたアプリのデバッグシンボルが表示されます。
使用法については、debuginfod-find(1) を参照してください。
デバッガのサポート
いくつかのデバッガは、デバッグシンボルとソースコードリストを検索するための debuginfod の利用をサポートしています。
パッケージ | ステータス | ノート |
---|---|---|
gdb | サポートされています | |
delve | サポートされています | |
KDE Crash Report | サポートされています | |
valgrind | サポートされています |