zxdb:Fuchsia 偵錯工具

Zxdb 是主控台模式偵錯工具,適用於在 Fuchsia 上執行的原生程式碼。

它主要支援 C、C++ 和 Rust 程式碼,但任何原生編譯並匯出 DWARF 符號的語言,在某種程度上都應該可運作。

不支援解譯程式碼,例如 Dart 和 JavaScript。

執行 zxdb

您可以透過 ffx component debugzxdb 附加至元件,方法如下:

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 檔案: