PROTOCOLS
提供商
在 fuchsia.tracing.provider/provider.fidl 中定义
提供程序接口,应用必须实现该接口并向 TraceRegistry 注册才能参与跟踪。
如需查看此接口的 C++ 实现,请参阅 //zircon/system/ulib/trace-provider/,该实现可由应用轻松配置。
GetKnownCategories
获取此提供程序可能生成的轨迹类别。
请求
<EMPTY>
响应
| 名称 | 类型 |
|---|---|
categories |
vector<fuchsia.tracing/KnownCategory>:5000
|
初始化
初始化跟踪,并准备使用 fifo 进行信号处理,将指定 categories 中的事件的跟踪记录写入 buffer。
轨迹记录尚未开始,仍需要调用 Start()。
一次最多只能有一个轨迹处于有效状态。在调用 Terminate() 之前收到的后续 Initialize() 请求必须被忽略。
请求
| 名称 | 类型 |
|---|---|
config |
ProviderConfig
|
开始
开始跟踪。
如果已开始跟踪,提供程序必须忽略该请求。
没有结果。提供程序必须在 fifo 上发送 TRACE_PROVIDER_STARTED 数据包,以指示启动成功/失败。
请求
| 名称 | 类型 |
|---|---|
options |
StartOptions
|
停止
停止跟踪。
如果轨迹记录已停止,提供程序必须忽略该请求。
提供程序完成将所有最终事件写入轨迹缓冲区后,必须在 fifo 上发送 TRACE_PROVIDER_STOPPED 数据包。请注意,在 Initialize,Terminate 之间可能会收到多个 Start,Stop 请求。
请求
<EMPTY>
终止
终止跟踪。
如果跟踪尚未停止,则先停止跟踪。
跟踪完全终止后,提供程序必须关闭 buffer 和 fifo,以向跟踪管理器表明跟踪已完成。
请求
<EMPTY>
注册类型
在 fuchsia.tracing.provider/provider.fidl 中定义
跟踪提供程序用于向跟踪系统注册自身的服务。 请注意,此接口的一个属性是,一旦注册完成,提供方就可以断开此连接。
RegisterProvider
注册轨迹提供程序。
注意:注册是异步的,只有在此方法返回后的某个时间点,提供程序才会实际注册。如需取消注册,只需关闭提供程序管道即可。
pid 是提供方的进程 ID,name 是提供方的名称。这两者都用于日志记录和诊断消息。
请求
| 名称 | 类型 |
|---|---|
provider |
client_end:Provider
|
pid |
zx/Koid
|
name |
string:100
|
RegisterProviderSynchronously
同步注册轨迹提供程序。在提供方注册之前,该调用不会返回。
如果注册成功,返回时 s 为 ZX_OK。
如果跟踪已开始,则 started 为 true。这会向提供程序发出提示,如果提供程序不希望在收到 Start() 之前丢弃跟踪记录,则应等待 Start() 消息,然后再继续。
如需取消注册,只需关闭提供程序管道即可。
pid 是提供方的进程 ID,name 是提供方的名称。这两者都用于日志记录和诊断消息。
请求
| 名称 | 类型 |
|---|---|
provider |
client_end:Provider
|
pid |
zx/Koid
|
name |
string:100
|
响应
| 名称 | 类型 |
|---|---|
s |
zx/Status
|
started |
bool
|
STRUCTS
ProviderConfig 资源
在 fuchsia.tracing.provider/provider.fidl 中定义
轨迹提供程序配置。
| 字段 | 类型 | 说明 | 默认 |
|---|---|---|---|
buffering_mode |
fuchsia.tracing/BufferingMode
|
添加:11
|
无默认值 |
buffer |
handle<vmo>
|
用于写入跟踪记录的缓冲区。 |
无默认值 |
fifo |
handle<fifo>
|
当轨迹提供程序在 |
无默认值 |
categories |
vector<string:100>:5000
|
要收集哪些跟踪类别的数据。 添加:11
|
无默认值 |
StartOptions
在 fuchsia.tracing.provider/provider.fidl 中定义
用于在启动时控制跟踪的其他选项。
| 字段 | 类型 | 说明 | 默认 |
|---|---|---|---|
buffer_disposition |
fuchsia.tracing/BufferDisposition
|
开始收集数据时是否以及如何清除缓冲区。 这样一来,例如,就可以在同一缓冲区中收集多个开始/停止轨迹运行。 添加:11
|
无默认值 |
additional_categories |
vector<string:100>:5000
|
要添加到 添加:11
|
无默认值 |