fuchsia.tracing.provider

新增:7

通訊協定

供應商

定義於 fuchsia.tracing.provider/provider.fidl

應用程式必須實作並向 TraceRegistry 註冊的供應器介面,才能參與追蹤。

如需這個介面的 C++ 實作方式,請參閱 //zircon/system/ulib/trace-provider/,應用程式可以輕鬆設定這個介面。

GetKnownCategories

取得這個供應商可能產生的追蹤記錄類別。

新增:11

要求

<EMPTY>

回應

名稱類型
categories vector<fuchsia.tracing/KnownCategory>:5000

初始化

初始化追蹤作業,並準備好為指定 categories 中的事件寫入追蹤記錄,以供 fifo 用於發出信號。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

註冊追蹤記錄供應器。 注意:註冊作業是非同步的,只有在傳回此值之後的某個時間點,供應商才會實際註冊。如要取消註冊,只要關閉 Provider 管道即可。 pid 是供應商的程序 ID,name 是供應商的名稱。這兩者都會用於記錄和診斷訊息。

要求

名稱類型
provider client_end:Provider
pid zx/Koid
name string:100

RegisterProviderSynchronously

同步註冊追蹤記錄供應商。供應商註冊完成前,呼叫不會傳回。如果註冊成功,則傳回 sZX_OK。 如果追蹤作業已開始,started 為 true,這會提示供應商等待 Start() 訊息,再繼續作業 (如果供應商不想在收到 Start() 前捨棄追蹤記錄)。如要取消註冊,只要關閉 Provider 管道即可。 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
無預設值