Debuginfod - Arch Linux 中文维基

跳至內容

# Debuginfod

出自 Arch Linux 中文维基

相關文章

- 調試/獲取跟蹤數據

翻譯狀態：

- 本文（或部分內容）譯自 Debuginfod，最近一次同步於 2024-11-24，若英文版本有所更改，則您可以幫助同步與翻譯更改的內容。
- 您可以在 ArchWiki 的對應頁面找到本文翻譯的原始修訂歷史。
- 本文可能與英文原文存在出入。

Debuginfod 是一種通過 HTTP API 提供 debug 信息的服務。

## 安裝

gdb包 會自動嘗試從 `DEBUGINFOD_URLS` 環境變量中指定的伺服器下載調試文件（debug files），該變量是一串以空格分隔的 URL。

libelf包 是 gdb包 的依賴項，附帶了 `/etc/profile.d/debuginfod.sh` 和 `/etc/profile.d/debuginfod.csh` 腳本，這些腳本在登錄時設置變量，因此無需安裝額外的軟體包。這些腳本解析 `/etc/debuginfod/` 中的 .urls 文件，並將 `DEBUGINFOD_URLS` 環境變量默認設置為 `https://debuginfod.archlinux.org`。

提示：還可以使用 `https://debuginfod.elfutils.org/` 作為聯合伺服器並查詢所有可用的 debuginfod 伺服器。

您可以選擇性安裝提供 debuginfod-find(1) 實用程序的 debuginfod包 軟體包，此包是 delve包 中的 debuginfod 支持所必需的。

## 使用

提示：關於 debuginfod 配合 gdb 一起使用，參考 Debugging/Getting traces#Getting the trace。

### 手動下載

如果要手動檢索 zstd包 中某些源文件的調試符號, 可以使用 debuginfod-find包:

    $ debuginfod-find debuginfo /usr/bin/zstd

    /home/user/.cache/debuginfod_client/70e1b456c5813658df6436a3deb71812e75a0267/debuginfo

    $ debuginfod-find source /usr/bin/zstd /usr/src/debug/zstd-1.5.2/programs/fileio.c

    /home/user/.cache/debuginfod_client/70e1b456c5813658df6436a3deb71812e75a0267/source##usr##src##debug##zstd-1.5.2##programs##fileio.c

### 禁用

可以通過清除 `DEBUGINFOD_URLS` 來禁用 debuginfod 客戶端服務：

    $ unset DEBUGINFOD_URLS

如果想使用本地緩存，而不嘗試連接任何伺服器，可以將 `DEBUGINFOD_URLS` 設置為非空字符串，例如 `/dev/null`。

## 調試器支持

多種調試器支持使用 debuginfod 查找調試符號和原始碼列表。

軟體包 | 狀況 | 注意
--- | --- | ---
gdb包 | 支持 |
delve包 | 支持 |
KDE Crash Report | 支持 |
valgrind包 | 支持 |

## 緩存

debuginfod 的緩存存儲在 `$DEBUGINFOD_CACHE_PATH` （如果已設置）指定的位置。否則，如果設置了 `$XDG_CACHE_HOME`，它將使用 `$HOME/.cache/debuginfod_client/` 或 `$XDG_CACHE_HOME/debuginfod_client/`。緩存的大小可能增長得非常快，具體取決於您擁有的調試會話數量以及涉及的軟體包。

有 3 個參數可以配置緩存行為，如 debuginfod(8) § CACHE 手冊中的描述:

- `cache_clean_interval_s`: 每次自動清理之間的間隔（默認為 86400，即 1 天）
- `max_unused_age_s`: 未使用的數據保留多長時間（默認為 604800，即 1 周）
- `cache_miss_s`: 記住失敗的查詢多長時間（默認為 600，即 10 分鐘）

每個參數都由緩存文件夾中同名文件中的數字定義。

如果你很少使用 debuginfod，可以手動刪除緩存中的所有目錄（保留參數文件）或完整的緩存目錄。

## 參見

- 主頁
- The elfutils debuginfod server, FOSDEM 2020

分類：​

- 包開發

Debuginfod
新增話題