启动 Fuchsia 调试程序

ffx debug connect 命令会启动 Fuchsia 调试程序(称为 zxdb),用于调试设备上的 Fuchsia 组件。

概念

zxdb 是 Fuchsia 自带的调试程序,可让您附加在设备上运行的 Fuchsia 组件。将组件附加到 zxdb 后,您可以执行交互式调试操作,例如添加断点、逐步调试代码,以及检查组件的堆栈轨迹和变量。

为了让 zxdb 理解和解压缩 Fuchsia 组件的代码,开发环境中必须提供该组件的调试符号。(如需详细了解调试符号,请参阅注册调试符号。)

当您运行 ffx debug connect 命令时,它会建立与 Fuchsia 设备的连接,并在宿主机上启动 zxdb 终端。在此终端中,您可以使用 zxdb 命令以交互方式调试设备上运行的 Fuchsia 组件。

运行 Fuchsia 调试程序

如需启动 Fuchsia 调试程序,请运行以下命令:

ffx debug connect

成功连接到 Fuchsia 设备后,此命令会启动 zxdb 终端,例如:

$ ffx debug connect
Connecting (use "disconnect" to cancel)...
Connected successfully.
👉 To get started, try "status" or "help".
[zxdb]

zxdb 终端中,您可以开始执行交互式调试操作。以下示例显示 zxdb 已附加到 memory_monitor 组件,并在该组件的 main 函数处创建了一个断点:

[zxdb] attach memory_monitor.cm
Waiting for process matching "memory_monitor.cm".
Type "filter" to see the current filters.
Attached Process 1 state=Running koid=47467 name=memory_monitor.cm
[zxdb] process
  # State    Koid Name
▶ 1 Running 47467 memory_monitor.cm
[zxdb] break $main
Created Breakpoint 1 @ $main
   48
 ◉ 49 int main(int argc, const char** argv) {
   50   auto command_line = fxl::CommandLineFromArgcArgv(argc, argv);
[zxdb]

如需退出 zxdb 终端,请输入 exit 或按 Ctrl-D

如需详细了解 zxdb 的用法和最佳实践,请参阅 zxdb 用户指南