通訊協定
供應商
定義於 fuchsia.tracing.provider/provider.ithl
供應商介面,應用程式必須實作並註冊 TraceRegistry
,才能參與追蹤記錄。
請參閱 //zircon/system/ulib/trace-provider/ 瞭解這個介面的 C++ 實作項目,輕鬆設定應用程式。
GetknownCategory
取得這個供應商可能產生的追蹤類別。
要求
<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>
終止
終止追蹤記錄。
如果作業尚未停止,系統會先停止追蹤。追蹤記錄完全終止後,供應商必須同時關閉 buffer
和 fifo
,以向追蹤記錄管理員指定已完成追蹤。
要求
<EMPTY>
登錄檔
定義於 fuchsia.tracing.provider/provider.ithl
追蹤記錄供應商使用追蹤系統自行註冊的服務。請注意,此介面的其中一個屬性是,註冊完成後,供應商即可捨棄此連線。
註冊供應商
註冊追蹤記錄供應商。注意事項:註冊為非同步性質,只有在返回供應商實際註冊後,才會失效。如要取消註冊,只要關閉供應商管道即可。
pid
為供應器的程序 ID,name
為供應器的名稱。兩者都會用於記錄和診斷訊息。
要求
姓名 | 類型 |
---|---|
provider |
Provider
|
pid |
zx/Koid
|
name |
string[100]
|
RegisterProviderSyncononous
同步註冊追蹤服務供應商。呼叫供應商之後,系統才會傳回呼叫。如果註冊成功,退貨值為 s
。ZX_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>
|
追蹤記錄提供者在 |
無預設 |
categories |
vector<string>[5000]
|
新增時間:11
|
無預設 |
啟動選項
定義於 fuchsia.tracing.provider/provider.ithl
其他用於控制追蹤記錄的其他選項。
欄位 | 類型 | 說明 | 預設 |
---|---|---|---|
buffer_disposition |
fuchsia.tracing/BufferDisposition
|
新增時間:11
|
無預設 |
additional_categories |
vector<string>[5000]
|
新增時間:11
|
無預設 |