zxdb:Fuchsia 调试程序

Zxdb 是一种控制台模式调试程序,适用于在 Fuchsia 上运行的原生代码。

它主要支持 C、C++ 和 Rust 代码,但任何能够原生编译并导出 DWARF 符号的语言都应该在一定程度上可以使用。

不支持 Dart 和 JavaScript 等解释型代码。

运行 zxdb

zxdb 附加到组件的方法有多种 ffx component debug:

ffx component debug component-identifier

例如,以下命令会附加到名为 cobalt.cm 的组件:

ffx component debug cobalt.cm

这将显示如下输出:

Waiting for process matching "job 20905".
Type "filter" to see the current filters.
👉 To get started, try "status" or "help".
Attached Process 1 state=Running koid=21057 name=cobalt.cm component=cobalt.cm
Loading 15 modules for cobalt.cm ...Done.
[zxdb]

您还可以使用其他类型的组件标识符,例如组件 名称。

例如,以下示例会附加到 core/cobalt 组件标识名:

ffx component debug core/cobalt

此外,您还可以使用更短的组件标识符,例如 cobalt

ffx component debug cobalt

但是,如果 zxdb 无法确定您引用的是哪个组件 您可能会看到如下输出:

The query "cobalt" matches more than one component instance:
core/cobalt
core/cobalt_system_metrics

To avoid ambiguity, use one of the above monikers instead.

在这种情况下,请务必明确说明要将 zxdb 附加到哪个组件。

使用 Fuchsia 软件包网址

您还可以使用完整的 Fuchsia 软件包网址:

ffx component debug fuchsia-pkg://fuchsia.com/cobalt#meta/cobalt.cm

这将显示如下输出:

Waiting for process matching "job 20905".
Type "filter" to see the current filters.
👉 To get started, try "status" or "help".
Attached Process 1 state=Running koid=21057 name=cobalt.cm component=cobalt.cm
Loading 15 modules for cobalt.cm ...Done.
[zxdb]

查看可用组件

您可以查看可用组件的完整列表:

ffx component list

您应该会看到如下所示的输出:

...
bootstrap
bootstrap/archivist
bootstrap/archivist/archivist-pipelines
...
core/brightness_manager
core/build-info
core/cobalt
...

使用 zxdb

成功连接到 zxdb 调试程序后,您可能需要执行以下操作:

您还可以按照 zxdb 教程操作:

此外,如果您有意为 zxdb 做出贡献,请执行以下操作: