核心會將記錄寫入內部緩衝區,以便擷取各種動作的追蹤記錄。接著,您可以透過 Perfetto 等工具擷取、列印及查看這些追蹤記錄。
核心追蹤格式
核心追蹤格式會使用 FXT。
追蹤緩衝區大小
追蹤記錄緩衝區的大小會在開機時固定,並由 ktrace.bufsize
核心指令列參數控制。其值為緩衝區大小 (以 MB 為單位)。預設值為 32 MB。
控制要追蹤的內容
您可以透過核心指令列參數 ktrace.grpmask
控制要追蹤的內容。值會指定為 0xNNN
,並為要啟用的追蹤群組的位元遮罩。請參閱 system/ulib/zircon-internal/include/lib/zircon-internal/ktrace.h
中的 KTRACEGRP 值。根據預設,這個值為 0xfff
,可追蹤所有內容。
您也可以使用 ktrace
指令列公用程式,動態控制要追蹤的內容。
ktrace
指令列公用程式
您可以使用 ktrace
指令列公用程式控制核心追蹤功能。
使用 ktrace --help
查看所有可用指令:
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
查看追蹤記錄。您必須先擷取追蹤記錄,才能查看追蹤記錄。
開始對目標進行追蹤:
ktrace start 0xfff ... do something ...
停止追蹤:
ktrace stop
將追蹤記錄儲存至
/tmp/save.ktrace
:ktrace save /tmp/save.ktrace
使用
fx cp
將檔案複製到開發主機:fx cp --to-host /tmp/save.ktrace save.fxt
在
ui.perfetto.dev
中查看追蹤記錄檔案。
搭配 Fuchsia 追蹤功能使用
Fuchsia 的追蹤系統支援透過 ktrace_provider
追蹤供應器收集核心追蹤記錄。如要進一步瞭解 Fuchsia 的追蹤系統,請參閱「Fuchsia 追蹤系統」。