核心會將記錄寫入內部緩衝區,以便擷取各種動作的追蹤記錄。接著,您可以透過 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 追蹤系統」。