進階主題

熟悉 Fuchsia 偵錯工具的基本功能後, zxdb,您可能需要:

偵錯當機傾印檔

Zxdb 支援載入當機報告產生的小型轉儲。

您可以使用 ffx debug core 載入當機報告,例如:

ffx debug core <var>crash_dump_file</var>

下載符號

Zxdb 會自動搜尋 符號索引:表示在任何符號中都沒有的符號 本機設定的符號目錄可以看到 請使用以下指令,在您的符號索引中註冊的伺服器:

ffx debug symbol-index list -a

以遞迴方式掃遍並解析所有包含 的值。若需更多資訊,請參閱: 關於符號設定

顯示的伺服器可用來下載符號檔案,並載入 非同步更新偵錯工具針對特別大型的偵錯資訊檔案,您可以 您會在 zxdb 中看到 sym-stat 的輸出,如下所示:

[zxdb] sym-stat
...
    Base: 0xc37e9000
    Build ID: ba17ef8c43bccf5fb6bf84f9a8d83d9cf3be8976 (Downloading...)
    Symbols loaded: No
...

這表示正在下載。檔案下載完成後 zxdb 會為新下載檔案的符號建立索引, 繼續。

附加至現有程序

在多數情況下,除非您已 自動執行 zxdb 工作流程如果使用沒有自動化功能的 zxdb 應將 zxdb 附加至元件 ID,請參閱執行 zxdb 一文。

您可附加至大多數執行中的處理程序,前提是程序的 Kid ( 核心物件 ID)。zxdb 提供 ps 指令,即可查看 在 Fuchsia 裝置或模擬器上執行的程序。

在嘗試執行 ps 之前,請確認您已將 zxdb 附加至元件。 至少連接 Fuchsia 裝置:

舉例來說,如要連線至 core/starnix_runner 元件:

ffx component debug core/starnix_runner

連結偵錯工具後,即可執行 ps 查看 Fuchsia 裝置或模擬器上運作中的程序:

[zxdb] ps
 j: 1033 root
   p: 1102 bin/component_manager
   j: 1662
     j: 1811 bootstrap/console fuchsia-boot:///console#meta/console.cm
       p: 1845 console.cm
...
     j: 66524 core/starnix_runner fuchsia-pkg://fuchsia.com/starnix#meta/starnix_runner.cm
▶      p: 66562 starnix_runner.cm
     j: 66763
       j: 66764 core/starnix_runner/kernels:RW3JlbU starnix_kernel#meta/starnix_kernel.cm
         p: 66797 starnix_kernel.cm
         p: 67333 init
     j: 88021
       p: 88084 debug_agent.cm
   j: 4227 zircon-shell
     p: 4608 sh:console

從上方的輸出內容中:

  • j 表示一個容器工作。 來處理程序。
  • p 表示程序。

工作或程序後面的數字就是物件的 KOID。然後,你可以執行以下操作:

附加至特定程序

您可以透過 zxdb 控制台附加至特定程序。例如: 可附加至 starnix_kernel.cm 程序,其中 KOID 為 66797

[zxdb] attach 66797
Attached Process 2 state=Running koid=66797 name=starnix_kernel.cm component=starnix_kernel.cm
Loading 15 modules for starnix_kernel.cm ....
[zxdb]

附加至特定工作中的所有程序

您可以透過 zxdb 控制台,附加至項目中的所有程序 工作。舉例來說,如要附加至 core/starnix_kernels:RW3JlbU 工作, 或 KOID 為 66764

[zxdb] attach -j 66764
Waiting for process matching "job 66764".
Type "filter" to see the current filters.
Attached Process 2 state=Running koid=66797 name=starnix_kernel.cm component=starnix_kernel.cm
Attached Process 3 state=Running koid=67333 name=init component=starnix_kernel.cm
Loading 15 modules for starnix_kernel.cm .....Done.
Loading 17 modules for init Done.

附加至工作中的特定程序

您可以透過 zxdb 控制台附加至特定程序, 工作。舉例來說,如要附加至 starnix_kernel.cm 程序, KOID 為 66764 的工作:

[zxdb] attach -j 66764 starnix_kernel.cm
Waiting for process matching "starnix_kernel.cm".
Type "filter" to see the current filters.
Attached Process 2 state=Running koid=66797 name=starnix_kernel.cm component=starnix_kernel.cm
Attached Process 3 state=Running koid=67333 name=init component=starnix_kernel.cm
Loading 15 modules for starnix_kernel.cm .....Done.
Loading 17 modules for init Done.
[zxdb]