通訊協定
供應商
在 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
|
無預設 |