fuchsia.tracing.provider

添加时间:7

协议

提供方

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

应用必须实现并向 TraceRegistry 注册以参与跟踪的提供程序接口。

请参阅 //zircon/system/ulib/trace-provider/,了解此应用可轻松配置的 C++ 实现。

已知类别

获取此提供程序可能生成的跟踪类别。

添加日期:11

请求

<空>

响应

名称类型
categories vector<fuchsia.tracing/KnownCategory>[5000]

初始化

初始化跟踪,并将指定 categories 中的事件的跟踪记录记录到 buffer 中,以使用 fifo 作为信号。跟踪尚未开始,仍需进行 Start() 调用。

一次最多只能有一个跟踪记录处于活动状态。必须忽略在 Terminate() 调用之前收到的后续 Initialize() 请求。

请求

名称类型
config ProviderConfig

开始

开始跟踪。

如果跟踪已经开始,提供商必须忽略该请求。

没有相符的结果。提供程序必须在 fifo 上发送 TRACE_PROVIDER_STARTED 数据包,以表明启动成功/失败。

请求

名称类型
options StartOptions

停止

停止跟踪。

如果跟踪已经停止,提供程序必须忽略该请求。

当提供程序将任何最终事件写入跟踪缓冲区后,必须在 fifo 上发送 TRACE_PROVIDER_STOPPED 数据包。请注意,可在 Initialize,Terminate 之间收到多个 Start,Stop 请求。

请求

<空>

终止

终止跟踪。

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

请求

<空>

注册表

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

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

注册提供程序

注册跟踪记录提供程序。注意:注册是异步进行的,只有在系统返回提供程序实际注册之后的某个时间点。要取消注册,只需关闭 Provider 管道即可。 pid 是提供程序的进程 ID,name 是提供程序的名称。二者均用于日志记录和诊断消息。

请求

名称类型
provider Provider
pid zx/Koid
name string[100]

寄存器提供程序同步

同步注册跟踪记录提供程序。在提供程序注册之前,调用不会返回。如果注册成功,返回 s 时为 ZX_OK。如果跟踪已经开始,则为 started(如果提供程序希望在收到 Start() 之前不丢弃跟踪记录,则提示等待 Start() 消息后再继续)。 要取消注册,只需关闭 Provider 管道即可。 pid 是提供程序的进程 ID,name 是提供程序的名称。二者均用于日志记录和诊断消息。

请求

名称类型
provider Provider
pid zx/Koid
name string[100]

响应

名称类型
s zx/Status
started bool

结构

ProviderConfig 资源

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

跟踪记录提供程序配置。

字段类型说明默认
buffering_mode fuchsia.tracing/BufferingMode
添加日期:11
没有默认电话服务提供方
buffer handle<vmo>

向其写入轨迹记录的缓冲区。

没有默认电话服务提供方
fifo handle<fifo>

当跟踪记录提供程序在 fifo 上观察 ZX_FIFO_PEER_CLOSED 时,必须假设跟踪记录管理器异常终止(因为 Stop 未照常接收),并自动停止跟踪,从而舍弃所有传输中的跟踪记录数据。

没有默认电话服务提供方
categories vector<string>[5000]
添加日期:11
没有默认电话服务提供方

StartOptions

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

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

字段类型说明默认
buffer_disposition fuchsia.tracing/BufferDisposition
添加日期:11
没有默认电话服务提供方
additional_categories vector<string>[5000]
添加日期:11
没有默认电话服务提供方