記錄核心追蹤記錄

核心會將記錄寫入內部緩衝區,以追蹤各種動作。 以便日後擷取、列印及查看

核心追蹤格式

核心追蹤格式使用 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,請前往 核心指令列參數的完整清單