ffx debug symbol-index
命令帮助
在开发环境中管理 Fuchsia 组件的调试符号。
概念
在开发过程中,系统会为 Fuchsia 组件生成调试符号
作为构建工件的一部分包含调试符号的文件
.symbol-index.json
作为后缀(例如,
my-component.symbol-index.json
)。
在开发中注册 Fuchsia 组件的调试符号 环境支持以下工作流:
- 以符号化的格式查看组件日志。
- 使用 Fuchsia 调试程序逐步执行 代码。
- 实时监控设备上的组件 FIDL 流量。
除了注册本地生成的调试符号之外,您还可以
配置您的环境以从在线存储空间中检索调试符号
(例如 Google Cloud Storage)。将在线存储空间添加到
您的全局 symbol-index
配置,
各种 Fuchsia 调试工具(例如 ffx log
和
ffx debug connect
) 可以自动
请下载并使用在线存储空间中提供的调试符号。
在 Fuchsia 开发环境中,调试符号的注册
通常在后台进行。部分 Fuchsia 工具已配置
以调用调试符号的注册
(使用 ffx debug symbol-index add
)
检测到调试符号时,您可能永远不需要手动
在开发期间注册 Fuchsia 组件的调试符号。
例如,如果您使用的是 Fuchsia 的 Bazel 规则,调试符号将
自动注册为构建的一部分不过,如有必要
您可以使用ffx debug symbol-index
命令直接管理调试符号。
列出已注册的调试符号
如需查看全局 symbol-index
配置,请运行以下命令:
ffx debug symbol-index list
此命令会输出类似于以下内容的输出:
$ ffx debug symbol-index list
SymbolIndex {
includes: [
"/usr/alice/home/my-fuchsia-project/my-component.symbol-index.json",
],
build_id_dirs: [],
ids_txts: [],
gcs_flat: [
GcsFlat {
url: "gs://our-fuchsia-project/debug",
require_authentication: false,
},
],
debuginfod: []
}
添加 debuginfod 符号服务器
使用并非在 Fuchsia 树中构建的第三方二进制文件时, 您可以添加一个 debuginfod 服务器来获取符号。上游 发行版提供 debuginfod 服务器,如 debuginfod.debian.net 或“federated”服务器 例如 debuginfod.elfutils.org,它会 传送来自许多不同上游来源的符号。请与上游联系 源代码查找其 debuginfod 服务器(如果提供)。通常 以环境变量的形式提供,例如:
export DEBUGINFOD_URLS="https://debuginfod.debian.net
要将如上所示的 debuginfod 服务器添加到您的符号索引,请使用以下代码 命令:
ffx debug symbol-index add <URL>
将 URL
替换为您要添加的 debuginfod 服务器的网址。
例如,如需添加 Debian 的 debuginfod 服务器,请运行以下命令:
ffx debug symbol-index add https://debuginfod.debian.net
注册成功后,该命令将静默退出,不会输出任何内容。 调试工具会自动向服务器查询 。
如果您想验证注册, 请参阅列出已注册的调试符号。
移除 debuginfod 符号服务器
如需从全局 symbol-index
配置中移除 debuginfod 服务器,请运行以下命令:
以下命令:
ffx debug symbol-index remove <URL>
将 URL
替换为您要移除的 debuginfod 服务器的网址。
以下示例移除 debian debuginfod 服务器:
ffx debug symbol-index remove https://debuginfod.debian.net
手动注册本地调试符号
如需在您的环境中注册调试符号,请运行以下命令:
ffx debug symbol-index add <PATH_TO_DEBUG_SYMBOLS>
将 PATH_TO_DEBUG_SYMBOLS
替换为调试符号的绝对路径
文件。
以下示例注册了 my-component
的调试符号
组件:
$ ffx debug symbol-index add /usr/alice/home/my-fuchsia-project/my-component.symbol-index.json
注册成功后,该命令将静默退出,不会输出任何内容。
如果您想验证注册, 请参阅列出已注册的调试符号。
移除已注册的本地调试符号
如需从全局 symbol-index
配置中移除调试符号,请运行以下命令:
以下命令:
ffx debug symbol-index remove <PATH_TO_DEBUG_SYMBOLS>
将 PATH_TO_DEBUG_SYMBOLS
替换为已注册调试的确切路径
需要移除的符号文件。
以下示例移除了 my-component
组件的调试符号:
$ ffx debug symbol-index remove /usr/alice/home/my-fuchsia-project/my-component.symbol-index.json
移除成功后,该命令将静默退出,不会输出任何内容。
清理放错位置的调试符号
删除宿主机上已注册的调试符号文件并不意味着
您的全局 symbol-index
配置也会自动更新。
如需从命令行中移除任何过时路径(指向已删除的调试符号文件),
全局 symbol-index
配置,请运行以下命令:
ffx debug symbol-index clean
例如,如果 /usr/alice/home/my-fuchsia-project
目录不再
那么此命令会移除
/usr/alice/home/my-fuchsia-project/my-component.symbol-index.json
个条目,来自
全局 symbol-index
配置。