註冊偵錯符號

ffx debug symbol-index 指令的說明 在開發環境中管理 Fuchsia 元件的偵錯符號。

概念

在開發期間,會產生 Fuchsia 元件的偵錯符號 做為建構構件的一部分含有偵錯符號的檔案 .symbol-index.json 為後置字串 (例如, my-component.symbol-index.json)。

在開發過程中註冊 Fuchsia 元件的偵錯符號 環境支援下列工作流程:

除了註冊本機產生的偵錯符號之外,您還可以 設定環境以從線上儲存空間擷取偵錯符號 (例如 Google Cloud Storage)。將線上儲存空間新增至 全域 symbol-index 設定, Fuchsia 偵錯工具 (例如 ffx logffx debug connect) 會自動 下載並使用線上儲存空間提供的偵錯符號。

在 Fuchsia 開發環境中,註冊偵錯符號 通常是在背景執行部分 Fuchsia 工具已設定 來叫用偵錯符號的註冊 (使用 ffx debug symbol-index add) 偵測到偵錯符號時,您可能需要 在開發期間註冊 Fuchsia 元件的偵錯符號。 舉例來說,如果您使用 Fuchsia 的 Bazel 規則,偵錯符號會取得 在建構作業中會自動註冊不過在必要時 不妨使用 ffx debug symbol-index 管理偵錯符號的指令

列出已註冊的偵錯符號

如要查看 symbol-index 全域設定,請執行下列指令:

ffx debug symbol-index list

這個指令會輸出類似以下的輸出內容:

$ ffx debug symbol-index list
SymbolIndex {
    includes: [
        "/usr/alice/home/my-fuchsia-project/my-component.symbol-index.json",
    ],
    build_id_dirs: [],
    ids_txts: [],
    gcs_flat: [
        GcsFlat {
           url: "gs://our-fuchsia-project/debug",
           require_authentication: false,
        },
    ],
    debuginfod: []
}

新增 debuginfod 符號伺服器

使用非 Fuchsia 樹狀結構建構的第三方二進位檔時, 您或許可以新增 debuginfod 伺服器擷取符號。上游 發行版會提供 debuginfod 伺服器 debuginfod.debian.net 或「federated」伺服器 例如 debuginfod.elfutils.org 放送來自許多不同上游來源的符號洽詢上游程式庫 找到其 debuginfod 伺服器 (如果有的話)。通常這些是 做為環境變數,例如:

export DEBUGINFOD_URLS="https://debuginfod.debian.net

如要在符號索引中加入 debuginfod 伺服器 (如上所示),請使用下列指令 指令:

ffx debug symbol-index add <URL>

URL 改成您要新增的偵錯 infod 伺服器網址。 例如,如要新增 Debian 的 debuginfod 伺服器,請執行下列指令:

ffx debug symbol-index add https://debuginfod.debian.net

註冊成功後,指令會在沒有輸出的情況下結束,而且不會輸出。 偵錯工具會自動查詢伺服器,找出無法執行的符號 。

如要驗證註冊 請參閱「列出已註冊的偵錯符號」。

移除 debuginfod 符號伺服器

如要從全域 symbol-index 設定移除 debuginfod 伺服器,請執行 以下指令:

ffx debug symbol-index remove <URL>

URL 替換為要移除的 debuginfod 伺服器網址。 以下範例會移除 debian debuginfod 伺服器:

ffx debug symbol-index remove https://debuginfod.debian.net

手動註冊本機偵錯符號

如要在環境中註冊偵錯符號,請執行下列指令:

ffx debug symbol-index add <PATH_TO_DEBUG_SYMBOLS>

PATH_TO_DEBUG_SYMBOLS 替換為偵錯符號的絕對路徑 檔案。

以下範例會註冊 my-component 的偵錯符號 元件:

$ ffx debug symbol-index add /usr/alice/home/my-fuchsia-project/my-component.symbol-index.json

註冊成功後,指令會在沒有輸出的情況下結束,而且不會輸出。

如要驗證註冊 請參閱「列出已註冊的偵錯符號」。

移除已註冊的本機偵錯符號

如要從全域 symbol-index 設定中移除偵錯符號,請執行 以下指令:

ffx debug symbol-index remove <PATH_TO_DEBUG_SYMBOLS>

PATH_TO_DEBUG_SYMBOLS 替換為已註冊偵錯的確切路徑 。

以下範例會移除 my-component 元件的偵錯符號:

$ ffx debug symbol-index remove /usr/alice/home/my-fuchsia-project/my-component.symbol-index.json

移除成功後,指令會在沒有輸出的情況下自動結束。

清除錯置的偵錯符號

刪除主機電腦上已註冊的偵錯符號檔案,並不表示 您的全域 symbol-index 設定也會自動更新。

如要移除任何過時路徑 (指向已刪除的偵錯符號檔案),請按照下列步驟操作: 通用 symbol-index 設定,請執行以下指令:

ffx debug symbol-index clean

例如,如果 /usr/alice/home/my-fuchsia-project 目錄不再 存在的情況下,這個指令會移除 來自以下使用者的 /usr/alice/home/my-fuchsia-project/my-component.symbol-index.json 個項目: 全域 symbol-index 設定