Zxdb 是主控台模式偵錯工具,適用於在 Fuchsia 上執行的原生程式碼。
它主要支援 C、C++ 和 Rust 程式碼,但任何原生編譯並匯出 DWARF 符號的語言,在某種程度上都應該可運作。
不支援解譯程式碼,例如 Dart 和 JavaScript。
執行 zxdb
您可以透過 ffx component debug
將 zxdb
附加至元件,方法如下:
ffx component debug component-identifier
舉例來說,下列指令會附加至名為 cobalt.cm
的元件:
ffx component debug cobalt.cm
輸出結果如下:
Waiting for process matching "job 20905".
Type "filter" to see the current filters.
👉 To get started, try "status" or "help".
Attached Process 1 state=Running koid=21057 name=cobalt.cm component=cobalt.cm
Loading 15 modules for cobalt.cm ...Done.
[zxdb]
您也可以使用其他類型的元件 ID,例如 路徑名稱。
例如,這個範例會附加至 core/cobalt
元件別名:
ffx component debug core/cobalt
此外,您也可以使用較短的元件 ID,例如
使用 cobalt
:
ffx component debug cobalt
不過,如果 zxdb
無法判斷您所指的是哪個元件,您可能會看到類似以下的輸出內容:
The query "cobalt" matches more than one component instance:
core/cobalt
core/cobalt_system_metrics
To avoid ambiguity, use one of the above monikers instead.
在這種情況下,請務必特別指定要在哪個元件中 zxdb
。
使用 Fuchsia 套件網址
您也可以使用完整的 Fuchsia 套件網址:
ffx component debug fuchsia-pkg://fuchsia.com/cobalt#meta/cobalt.cm
輸出結果如下:
Waiting for process matching "job 20905".
Type "filter" to see the current filters.
👉 To get started, try "status" or "help".
Attached Process 1 state=Running koid=21057 name=cobalt.cm component=cobalt.cm
Loading 15 modules for cobalt.cm ...Done.
[zxdb]
查看可用的元件
您可以查看可用元件的完整清單:
ffx component list
您應該會看到類似以下的輸出內容:
...
bootstrap
bootstrap/archivist
bootstrap/archivist/archivist-pipelines
...
core/brightness_manager
core/build-info
core/cobalt
...
使用 zxdb
成功連線至 zxdb
偵錯工具後,建議您:
- 開始使用 zxdb
- 使用中斷點
- 使用 zxdb 偵錯測試
- 控制執行緒執行作業 (暫停、逐步執行及繼續執行)
- 評估運算式
- 檢查記憶體
- 列出句柄和核心物件
- 使用組合語言
- 查看帳號代碼
- 瞭解符號的載入方式
- 處理例外狀況
- 查看 zxdb 進階主題
你也可以按照 zxdb 教學課程的指示進行:
此外,如果您想要提供 zxdb 檔案: