通訊協定
供應商
在 fuchsia.tracing.provider/provider.fidl 中定義
應用程式必須實作及註冊的供應商介面
並藉由 TraceRegistry 參與追蹤記錄。
如需此介面的 C++ 實作項目,請參閱 //zircon/system/ulib/trace-provider/,應用程式可輕鬆設定此介面。
GetKnownCategories
取得這個提供者可能產生的追蹤類別。
要求
<EMPTY>
回應
| 名稱 | 類型 | 
|---|---|
| categories | vector<fuchsia.tracing/KnownCategory>:5000 | 
初始化
初始化追蹤功能,並準備使用 fifo 進行訊號傳送,將指定 categories 中的事件追蹤記錄寫入 buffer。追蹤尚未開始,仍需呼叫 Start()。
一次最多只能啟用一個追蹤記錄。後續 Initialize()
都必須忽略 Terminate() 呼叫之前收到的要求。
要求
| 名稱 | 類型 | 
|---|---|
| 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 | 
結構
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 | 無預設 |