Debuginfod

提供: ArchWiki
2023年10月15日 (日) 18:57時点におけるKgx (トーク | 投稿記録)による版 (→‎デバッガのサポート: 翻訳)
ナビゲーションに移動 検索に移動

関連記事

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/"
ヒント: https://debuginfod.elfutils.org/ を使用することもできます。これはフェデレーテッド・サーバーとして機能し、利用可能なすべての debuginfod サーバーをクエリします。

デバッガは、適切なデバッグパッケージをインストールしなくても、デバッグシンボルをフェッチできるようになりました。

$ 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 サポートされています

参照