fuchsia.tracing.provider

添加:7

PROTOCOLS

提供商

fuchsia.tracing.provider/provider.fidl 中定义

提供程序接口,应用必须实现该接口并向 TraceRegistry 注册才能参与跟踪。

如需查看此接口的 C++ 实现,请参阅 //zircon/system/ulib/trace-provider/,该实现可由应用轻松配置。

GetKnownCategories

获取此提供程序可能生成的轨迹类别。

添加:11

请求

<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>

终止

终止跟踪。

如果跟踪尚未停止,则先停止跟踪。 跟踪完全终止后,提供程序必须关闭 bufferfifo,以向跟踪管理器表明跟踪已完成。

请求

<EMPTY>

注册类型

fuchsia.tracing.provider/provider.fidl 中定义

跟踪提供程序用于向跟踪系统注册自身的服务。 请注意,此接口的一个属性是,一旦注册完成,提供方就可以断开此连接。

RegisterProvider

注册轨迹提供程序。 注意:注册是异步的,只有在此方法返回后的某个时间点,提供程序才会实际注册。如需取消注册,只需关闭提供程序管道即可。 pid 是提供方的进程 ID,name 是提供方的名称。这两者都用于日志记录和诊断消息。

请求

名称类型
provider client_end:Provider
pid zx/Koid
name string:100

RegisterProviderSynchronously

同步注册轨迹提供程序。在提供方注册之前,该调用不会返回。 如果注册成功,返回时 sZX_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

buffering_mode 用于指定缓冲区填满时会发生什么情况。

添加:11
无默认值
buffer handle<vmo>

用于写入跟踪记录的缓冲区。

无默认值
fifo handle<fifo>

当轨迹提供程序在 fifo 上观察到 ZX_FIFO_PEER_CLOSED 时,必须假定轨迹管理器已异常终止(因为未像往常一样收到 Stop),并自动停止轨迹记录,舍弃任何正在传输的轨迹数据。

无默认值
categories vector<string:100>:5000

要收集哪些跟踪类别的数据。

添加:11
无默认值

StartOptions

fuchsia.tracing.provider/provider.fidl 中定义

用于在启动时控制跟踪的其他选项。

字段类型说明默认
buffer_disposition fuchsia.tracing/BufferDisposition

开始收集数据时是否以及如何清除缓冲区。 这样一来,例如,就可以在同一缓冲区中收集多个开始/停止轨迹运行。

添加:11
无默认值
additional_categories vector<string:100>:5000

要添加到 ProviderConfig 中提供的初始集中的轨迹类别。

添加:11
无默认值