llvm-dwarfdump - 傾印和驗證 DWARF 除錯資訊

語法

llvm-dwarfdump [選項] [檔案名稱 …]

描述

llvm-dwarfdump 會解析物件檔案、封存和 .dSYM 套件中的 DWARF 區段,並以人類可讀的形式列印其內容。除非指定了其中一個區段特定選項或 --all,否則只會列印 .debug_info 區段。

如果沒有指定輸入檔案,則會改用 a.out。如果 - 被用作輸入檔案,則 llvm-dwarfdump 會從其標準輸入流讀取輸入。

選項

-a, --all

傾印所有支援的 DWARF 區段。

--arch=<架構>

傾印指定 CPU 架構的 DWARF 除錯資訊。架構可以透過名稱或編號指定。此選項可以指定多次,每個所需的架構一次。預設情況下,將會列印所有 CPU 架構。

-c, --show-children

使用 --debug-info=<偏移量> 引數或 --find--name 等選項選擇性地列印時,顯示除錯資訊項目的子項目。

--color

在輸出中使用顏色。

-f <名稱>, --find=<名稱>

在加速器表中搜索確切的文字 <name> 並打印匹配的除錯資訊條目。當沒有加速器表或您要查找的 DIE 名稱在加速器表中找不到時,請嘗試使用速度較慢但更完整的 --name 選項。

-F, --show-form

在 DWARF 屬性類型之後顯示 DWARF 格式類型。

-h, --help

顯示此命令的說明和用法。

--help-list

顯示此命令的說明和用法,但不將選項分組到類別中。

-i, --ignore-case

使用 --name 時忽略大小寫區分。

-n <name>, --name=<name>

查找並打印名稱(DW_AT_name 屬性)為 <name> 的所有除錯資訊條目。

--lookup=<address>

在除錯資訊中查找 <address> 並打印出檔案、函數、區塊和行表詳細資訊。

-o <path>

將輸出重定向到 <path> 指定的檔案,其中 - 是標準輸出流。

-p, --show-parents

使用 --debug-info=<offset> 參數或 --find--name 等選項選擇性打印時,顯示除錯資訊條目的父項。

--parent-recurse-depth=<N>

顯示偵錯資訊條目父代時,僅顯示最大深度為 <N> 的父代。

--quiet

--verify 一起使用,不會輸出到 STDOUT

-r <N>, --recurse-depth=<N>

顯示偵錯資訊條目時,僅顯示最大深度為 <N> 的子代。

--show-section-sizes

顯示所有偵錯區段的大小,以位元組表示。

--show-sources

列印偵錯資訊中提及的所有原始程式碼檔案。盡可能提供絕對路徑。

--statistics

收集偵錯資訊品質指標,並將結果列印為機器可讀的單行 JSON 輸出。輸出格式在以下章節中說明(統計資訊輸出格式)。

--summarize-types

縮寫類型單元條目的描述。

-x, --regex

使用 --name 搜尋時,將所有 <name> 字串視為正規表示式。如果也指定了 --ignore-case,則正規表示式會變成不區分大小寫。

-u, --uuid

顯示每個架構的 UUID。

--diff

以更容易比較兩個不同檔案的 DWARF 輸出的格式傾印輸出。

-v, --verbose

傾印時顯示詳細資訊。這有助於偵錯 DWARF 問題。

--verify

透過驗證編譯單元鏈、DIE 關係圖、位址範圍等來驗證 DWARF 資訊的結構。

--version

顯示工具的版本。

--debug-abbrev, --debug-addr, --debug-aranges, --debug-cu-index, --debug-frame [=<offset>], --debug-gnu-pubnames, --debug-gnu-pubtypes, --debug-info [=<offset>], --debug-line [=<offset>], --debug-line-str, --debug-loc [=<offset>], --debug-loclists [=<offset>], --debug-macro, --debug-names, --debug-pubnames, --debug-pubtypes, --debug-ranges, --debug-rnglists, --debug-str, --debug-str-offsets, --debug-tu-index, --debug-types [=<offset>], --eh-frame [=<offset>], --gdb-index, --apple-names, --apple-types, --apple-namespaces, --apple-objc

依名稱傾印指定的 DWARF 區段。 只有 .debug_info 區段會在預設情況下顯示。某些項目支援添加 =<offset> 作為一種提供要在相應區段內傾印的確切項目的偏移量的可選方式。當提供偏移量時,將僅傾印該偏移量處的項目,否則將傾印整個區段。

--debug-macro 選項會同時列印 .debug_macro 和 .debug_macinfo 區段。

--debug-frame--eh-frame 選項是別名,在同時存在這兩個區段的情況下,一個命令會同時輸出這兩個區段。

@<FILE>

<FILE> 讀取命令列選項。

統計輸出格式

--statistics 選項會產生單行 JSON 輸出,表示已處理偵錯資訊的品質指標。這些指標對於比較兩個編譯器之間的變化很有用,特別是用於判斷對編譯器的變更對偵錯資訊品質的影響。

輸出格式為鍵值對。第一對包含版本號碼。以下命名方案用於鍵

  • variables ==> 區域變數和參數

  • local vars ==> 區域變數

  • params ==> 形式參數

對於聚合值,使用以下鍵

  • sum_of_all_variables(…) ==> 應用於所有變數的總和

  • #bytes ==> 位元組數

  • #variables - entry values … ==> 變數數量(不包括項目值等)

結束狀態

如果輸入檔案已成功解析和傾印,則 llvm-dwarfdump 會傳回 0。否則,它會傳回 1。

另請參閱

dsymutil(1)