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
用户指南。