記錄核心追蹤記錄

核心會將記錄寫入內部緩衝區,以擷取各種動作的追蹤記錄。然後,您可以在 Perfetto 等工具中擷取、列印及查看這些追蹤記錄。

核心追蹤格式

核心追蹤格式使用 FXT

追蹤緩衝區大小

追蹤緩衝區的大小會在開機時固定,並由 ktrace.bufsize 核心指令列參數控制。此標頭的值代表緩衝區空間 (以 MB 為單位)。預設值為 32MB。

控制要追蹤的內容

您可以透過核心指令列參數 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 ...
  2. 停止追蹤:

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

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

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

搭配 Fuchsia Tracing 使用

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