fuchsia.tracing.provider

新增時間:7

通訊協定

供應商

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

供應商介面,應用程式必須實作並註冊 TraceRegistry,才能參與追蹤記錄。

請參閱 //zircon/system/ulib/trace-provider/ 瞭解這個介面的 C++ 實作項目,輕鬆設定應用程式。

GetknownCategory

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

新增時間: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.ithl

追蹤記錄供應商使用追蹤系統自行註冊的服務。請注意,此介面的其中一個屬性是,註冊完成後,供應商即可捨棄此連線。

註冊供應商

註冊追蹤記錄供應商。注意事項:註冊為非同步性質,只有在返回供應商實際註冊後,才會失效。如要取消註冊,只要關閉供應商管道即可。 pid 為供應器的程序 ID,name 為供應器的名稱。兩者都會用於記錄和診斷訊息。

要求

姓名類型
provider Provider
pid zx/Koid
name string[100]

RegisterProviderSyncononous

同步註冊追蹤服務供應商。呼叫供應商之後,系統才會傳回呼叫。如果註冊成功,退貨值為 sZX_OK如果已啟用追蹤記錄,started 就是供應商,在供應器之前,要等待 Start() 訊息在收到通知之前有提示,這個訊息將是提示。 如要取消註冊,只要關閉供應商管道即可。 pid 為供應器的程序 ID,name 為供應器的名稱。兩者都會用於記錄和診斷訊息。

要求

姓名類型
provider Provider
pid zx/Koid
name string[100]

回應

姓名類型
s zx/Status
started bool

結構

ProviderConfig 資源

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

追蹤提供者設定。

欄位類型說明預設
buffering_mode fuchsia.tracing/BufferingMode
新增時間:11
無預設
buffer handle<vmo>

將追蹤記錄寫入的目標緩衝區。

無預設
fifo handle<fifo>

追蹤記錄提供者在 fifo 上觀察 ZX_FIFO_PEER_CLOSED 時,必須假設追蹤記錄管理員異常終止 (因為 Stop 無法如預期方式接收),並停止自動追蹤,並捨棄任何傳輸中的追蹤資料。

無預設
categories vector<string>[5000]
新增時間:11
無預設

啟動選項

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

其他用於控制追蹤記錄的其他選項。

欄位類型說明預設
buffer_disposition fuchsia.tracing/BufferDisposition
新增時間:11
無預設
additional_categories vector<string>[5000]
新增時間:11
無預設