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¶
顯示此命令的說明和用法,但不將選項分組到類別中。
- -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> 的父代。
- -r <N>, --recurse-depth=<N>¶
顯示偵錯資訊條目時,僅顯示最大深度為 <N> 的子代。
- --show-section-sizes¶
顯示所有偵錯區段的大小,以位元組表示。
- --show-sources¶
列印偵錯資訊中提及的所有原始程式碼檔案。盡可能提供絕對路徑。
- --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。