核心會將記錄寫入內部緩衝區,以追蹤各種動作。 以便日後擷取、列印及查看
核心追蹤格式
核心追蹤格式使用 FXT
控管追蹤內容
核心指令列參數提供追蹤項目控制
ktrace.grpmask
。這個值指定為 0xNNN,為位元遮罩
要啟用的追蹤群組請參閱以下項目的 *KTRACE_GRP_* 值:
system/ulib/zircon-internal/include/lib/zircon-internal/ktrace.h
。
預設值為 0xfff,可追蹤所有內容。
追蹤的內容也可透過 ktrace
指令列公用程式
。
追蹤記錄緩衝區空間
追蹤緩衝區的大小在啟動時是固定的,並且由
ktrace.bufsize
核心指令列參數。其值是
緩衝區空間 (單位為 MB)預設值為 32 MB。
ktrace 指令列公用程式
核心追蹤功能可使用 ktrace
指令列公用程式控管。
$ ktrace --help
Usage: ktrace [options] <control>
Where <control> is one of:
start <group_mask> - start tracing
stop - stop tracing
rewind - rewind trace buffer
written - print bytes written to trace buffer
Note: This value doesn't reset on "rewind". Instead, the rewind
takes effect on the next "start".
save <path> - save contents of trace buffer to <path>
Options:
--help - Duh.
查看核心追蹤記錄
追蹤記錄可上傳至 ui.perfetto.dev 查看。或者,主機工具:trace2json
則可將追蹤記錄匯出成更易讀的 JSON 輸出內容。
範例:
先收集目標的追蹤記錄:
$ ktrace start 0xfff
... do something ...
$ ktrace stop
$ ktrace save /tmp/save.ktrace
然後將檔案複製到開發主機,然後匯出檔案:
host$ out/default/host-tools/netcp :/tmp/save.ktrace save.fxt
host$ fx trace2json < save.fxt > save.json
輸出內容可能相當龐大,因此建議您將輸出內容傳送至 檔案,然後在編輯器或其他介面中檢視檔案
與 Fuchsia Tracing 搭配使用
Fuchsia 的追蹤系統支援透過
ktrace_provider
追蹤程式。
如需 Fuchsia 追蹤系統的說明文件,請參閱
Fuchsia 追蹤系統:
更多資訊
如要進一步瞭解 ktrace
,請前往
核心指令列參數的完整清單。