本页介绍了如何使用 Fuchsia 跟踪系统在 Fuchsia 设备上记录和直观呈现跟踪记录。
前提条件
许多现有的 Fuchsia 组件已注册为跟踪记录提供方,其跟踪记录数据通常可以充分概览系统。因此,如果您只需要记录一般跟踪记录(例如,在 bug 报告中添加详细信息),则可以继续阅读以下部分。但是,如果您想从特定组件收集其他自定义跟踪记录事件,则需要先完成以下任务:
记录跟踪记录
如需从宿主机在 Fuchsia 设备上记录跟踪记录,请运行以下命令:
ffx trace start --duration <SECONDS>此命令会使用默认设置启动跟踪记录,以捕获目标设备的一般概览。
跟踪记录会持续指定的时间(如果未指定时间,则会持续到按下 ENTER 键为止)。跟踪记录完成后,跟踪记录数据会自动保存到当前目录中的trace.fxt文件中(可以通过指定--output标志来更改此目录;例如,ffx trace start --output <FILE_PATH>)。如需直观呈现此文件中存储的跟踪记录结果,请参阅下面的直观呈现跟踪记录部分。
直观呈现跟踪记录
Fuchsia 跟踪记录格式 (.fxt) 是 Fuchsia 的
二进制格式,可直接对原始跟踪记录数据进行编码。如需直观呈现
.fxt 跟踪记录文件,您可以使用
Perfetto 查看器。
您可以使用以下任一方法直观呈现跟踪记录结果:
- 上传到 GCS: 记录时传递
--upload标志(例如,ffx trace start --upload)。跟踪记录完成后,跟踪记录会上传到 Google Cloud Storage (GCS),并且输出中会显示 Perfetto 跟踪记录查看器 的直接链接。 - 手动打开本地文件:
- 在网络浏览器中访问 Perfetto 查看器 网站。
- 点击导航栏中的打开跟踪记录文件 。
- 从宿主机中选择您的
.fxt文件。
借助此查看器,您还可以使用 SQL 查询跟踪记录数据。如需了解实用的 查询方法和自动分类工具,请参阅 使用 PerfettoSQL 和 fx perf-analyze 分析跟踪记录。
类别
借助类别,您可以控制要查看的事件。例如:
- 跟踪记录包含所有默认类别以及“cat”:
ffx trace start --categories '#default,cat'- 跟踪记录不包含任何默认类别,仅包含调度器和线程/进程数据:
ffx trace start --categories "kernel:sched,kernel:meta"实用类别
kernel:sched + kernel:meta
详细概览每个 CPU 上运行的内容
kernel:ipc
为每个 FIDL 调用发出一个事件,并使用流将它们连接起来
kernel:syscall
为每个系统调用发出一个事件
gfx
查看帧时序细分