記錄核心追蹤記錄

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

  1. 開始對目標進行追蹤:

    ktrace start 0xfff
    ... do something ...
  1. 停止追蹤:

    ktrace stop
  2. 將追蹤記錄儲存至 /tmp/save.ktrace

    ktrace save /tmp/save.ktrace
  3. 使用 fx cp 將檔案複製到開發主機:

    fx cp --to-host /tmp/save.ktrace save.fxt
    
  4. ui.perfetto.dev 中查看追蹤記錄檔案。

搭配 Fuchsia 追蹤功能使用

Fuchsia 的追蹤系統支援透過 ktrace_provider 追蹤供應器收集核心追蹤記錄。如要進一步瞭解 Fuchsia 的追蹤系統,請參閱「Fuchsia 追蹤系統」。