本页介绍了如何使用 Fuchsia 跟踪系统在 Fuchsia 设备上记录和可视化轨迹。
前提条件
许多现有的 Fuchsia 组件已注册为轨迹提供程序,其轨迹数据通常可提供充分的系统概览。因此,如果您只需要记录一般轨迹(例如,在 bug 报告中包含详细信息),可以继续阅读以下部分。不过,如果您想从特定组件收集其他自定义跟踪事件,则需要先完成以下任务:
记录轨迹
如需从宿主机在 Fuchsia 设备上记录轨迹,请运行以下命令:
ffx trace start --duration <SECONDS>此命令会使用默认设置启动轨迹,捕获目标设备的总体概览。
轨迹会持续指定的时间(如果未指定时长,则直到按下 ENTER 键为止)。跟踪完成后,跟踪数据会自动保存到当前目录中的 trace.fxt 文件中(如果使用 --compressed 标志,则保存到 trace.fxt.zst 中;您还可以使用 --output 标志指定自定义文件名,例如 ffx trace start --output <FILE_PATH>)。如需直观呈现此文件中存储的跟踪结果,请参阅下文中的直观呈现跟踪记录部分。
直观呈现轨迹
Fuchsia 跟踪格式 (.fxt) 是 Fuchsia 的二进制格式,可直接对原始跟踪数据进行编码。如需直观呈现 .fxt(或 .fxt.zst 压缩)轨迹文件,您可以使用 Perfetto 查看器。
您可以使用以下任一方法直观呈现轨迹结果:
- 上传到 GCS:在记录时传递
--upload标志(例如,ffx trace start --upload)。跟踪记录完成后,系统会将跟踪记录上传到 Google Cloud Storage (GCS),并在输出中显示指向 Perfetto Trace Viewer 的直接链接。 - 手动打开本地文件:
- 在网络浏览器中访问 Perfetto 查看器网站。
- 点击导航栏中的 Open trace file。
- 从宿主机中选择
.fxt或.fxt.zst文件。
您还可以使用 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 调用发出一个事件,并将这些事件与流程相关联
内核:系统调用
针对每个系统调用在整个系统范围内发出事件
gfx
查看帧计时细分数据