与 GNU Binutils 2.34 添加可选的 HTTP 服务器类似,LLVM 15 正在为 debuginfod 添加一个基本的 Web 服务器。开发团队在过去的一周里合并了一个用于 LLVM 的最小 HTTP 服务器;围绕 cpp-httplib,一个 C++ header-only HTTP/HTTPS 服务器和客户端库。
根据介绍,在上述两种情况下,此 HTTP 服务器仅用于向客户端分发 ELF/DWARF 调试信息和源代码。开发人员客户端可以查询 Web 服务器以获取在给定系统上本地未找到的调试文件。
Debuginfod 是一个 HTTP 文件服务器,可将调试资源提供给类似调试器的工具。服务器定期扫描目录树和 RPM 存档,以提取找到的任何可执行文件和 debuginfo 文件的构建 ID。它包含一个 SQLite 数据库,该数据库将构建 ID 索引到文件名或(包、内容)元组。
GNU Debugger (GDB) 增加了 debuginfod 的集成,以及其他拥抱它的开源开发者工具。Arch Linux、Fedora 和 Debian 都是拥抱 debuginfod 的发行版。
预计从 LLVM 15 开始,将有一个 LLVM debuginfod 服务器可用。