llvm-readobj - LLVM 物件讀取器

概要

llvm-readobj [選項] [輸入…]

說明

llvm-readobj 工具程式會顯示關於一或多個物件檔案的底層、特定格式資訊。

如果 input 為 “-”,llvm-readobj 會從標準輸入讀取。否則,它會從指定的 filenames 讀取。

與 LLVM-READELF 的差異

llvm-readelfllvm-readobj 工具程式的別名,具有稍微不同的命令列介面和與 GNU 相容的輸出。以下是 llvm-readelfllvm-readobj 之間的差異列表

  • llvm-readelf 預設為 --elf-output-style 選項使用 GNUllvm-readobj 使用 LLVM

  • llvm-readelf 允許單字母群組旗標(例如 llvm-readelf -SWllvm-readelf -S -W 相同)。llvm-readobj 不允許群組。

  • llvm-readelf 提供 -s 作為 --symbols 的別名,以與 GNU readelf 相容,而它在 llvm-readobj 中是 --section-headers 的別名。

  • llvm-readobj 提供 -t 作為 --symbols 的別名。llvm-readelf 沒有。

  • llvm-readobj 提供 --sr--sd--st--dt 作為 --section-relocations--section-data--section-symbols--dyn-symbols 的別名。 llvm-readelf 不提供這些別名,以避免與群組旗標衝突。

通用和多格式選項

這些選項適用於多種檔案格式,或與檔案格式無關。

--all

相當於指定與檔案格式相關的所有主要顯示選項。

--addrsig

顯示位址顯著性表。

--decompress, -z

-x-p 一起使用時,傾印解壓縮的區段內容。如果區段未壓縮,則會按原樣顯示。

--demangle, -C

在輸出中顯示還原修飾的符號名稱。此選項僅適用於 ELF 和 XCOFF 檔案格式。

--expand-relocs

--relocs 一起使用時,以展開的多行格式顯示每個重定位。

--file-header, -h

顯示檔案標頭。

--headers, -e

相當於設定:--file-header--program-headers--sections

--help

顯示命令列選項的摘要。

--hex-dump=<section[,section,...]>, -x

以十六進位位元組顯示指定的區段。section 可以是區段索引或區段名稱。

--memtag

顯示二進位檔中存在的記憶體標記相關資訊。這包括各種特定於記憶體標記的動態條目、已解碼的全域描述符區段和已解碼的 Android 特定 ELF 註記。

--needed-libs

顯示所需的函式庫。

--no-demangle

請勿在輸出中還原修飾符號名稱。此選項僅適用於 ELF 和 XCOFF 檔案格式。預設啟用此選項。

--relocations, --relocs, -r

顯示檔案中的重定位條目。

--sections, --section-headers, -S

顯示所有區段。

--section-data, --sd

--sections 一起使用時,顯示每個顯示區段的區段資料。此選項對於 GNU 樣式輸出沒有效果。

--section-relocations, --sr

--sections 一起使用時,顯示每個顯示區段的重定位。此選項對於 GNU 樣式輸出沒有效果。

--section-symbols, --st

--sections 一起使用時,顯示每個顯示區段的符號。此選項對於 GNU 樣式輸出沒有效果。

--sort-symbols=<sort_key[,sort_key]>

指定在顯示符號表之前對符號進行排序的鍵。sort_key 的有效值為 nametype

--stackmap

顯示堆疊映射區段的內容。

--string-dump=<section[,section,...]>, -p

將指定的區段顯示為字串列表。section 可以是區段索引或區段名稱。

--string-table

顯示字串表的內容。

--symbols, --syms, -s

顯示符號表。

--unwind, -u

顯示堆疊回溯資訊。

--version

顯示 llvm-readobj 可執行檔的版本。

@<FILE>

從回應檔案 <FILE> 讀取命令列選項。

ELF 特定選項

以下選項僅針對 ELF 檔案格式實作。

--arch-specific, -A

顯示特定於架構的資訊,例如 ARM 上的 ARM 屬性區段。

--bb-addr-map

顯示基本區塊位址映射區段的內容,其中包含每個函式的位址,以及每個基本區塊的相對偏移。

當存在 pgo 分析映射時,所有分析都會以其原始值列印。

--pretty-pgo-analysis-map

當基本區塊位址映射區段中存在 pgo 分析映射時,具有特殊格式的分析(即 BlockFrequency、BranchProbability 等)會使用與其各自分析傳遞相同的格式列印。

需要 --bb-addr-map 才能生效。

--dependent-libraries

顯示相依性函式庫區段。

--dyn-relocations

顯示動態重定位條目。

--dyn-symbols, --dyn-syms, --dt

顯示動態符號表。

--dynamic-table, --dynamic, -d

顯示動態表。

--cg-profile

顯示呼叫圖設定檔區段。

--histogram, -I

顯示動態符號雜湊表的儲存桶列表直方圖。

--elf-linker-options

顯示連結器選項區段。

--elf-output-style=<value>

以指定的樣式格式化 ELF 資訊。有效選項為 LLVMGNUJSONLLVM 輸出(預設值)是一種展開且結構化的格式。GNU 輸出模仿對等的 GNU readelf 輸出。JSON 是 JSON 格式的輸出,旨在供機器使用。

--section-groups, -g

顯示區段群組。

--gnu-hash-table

顯示動態符號的 GNU 雜湊表。

--hash-symbols

顯示具有動態符號資料的展開雜湊表。

--hash-table

顯示動態符號的雜湊表。

--memtag

顯示二進位檔中存在的記憶體標記相關資訊。這包括各種動態條目、已解碼的全域描述符區段和已解碼的 Android 特定 ELF 註記。

--notes, -n

顯示所有註記。

--pretty-print

--elf-output-style 一起使用時,JSON 輸出將以更易讀的格式格式化。

--program-headers, --segments, -l

顯示程式標頭。

--section-mapping

顯示區段到段的映射。

--stack-sizes

顯示堆疊大小區段的內容,即函式名稱及其堆疊框架大小的配對。目前僅針對 GNU 樣式輸出實作。

--version-info, -V

顯示版本區段。

MACH-O 特定選項

以下選項僅針對 Mach-O 檔案格式實作。

--macho-data-in-code

顯示程式碼中資料命令。

--macho-dsymtab

顯示 Dsymtab 命令。

--macho-indirect-symbols

顯示間接符號。

--macho-linker-options

顯示 Mach-O 特定連結器選項。

--macho-segment

顯示段命令。

--macho-version-min

顯示最小版本命令。

PE/COFF 特定選項

以下選項僅針對 PE/COFF 檔案格式實作。

--codeview

顯示 CodeView 偵錯資訊。

--codeview-ghash

啟用 CodeView 型別串流重複資料刪除的全域雜湊。

--codeview-merged-types

顯示合併的 CodeView 型別串流。

--codeview-subsection-bytes

傾印 CodeView 偵錯區段和記錄的原始內容。

--coff-basereloc

顯示 .reloc 區段。

--coff-debug-directory

顯示偵錯目錄。

--coff-tls-directory

顯示 TLS 目錄。

--coff-directives

顯示 .drectve 區段。

--coff-exports

顯示匯出表。

--coff-imports

顯示匯入表。

--coff-load-config

顯示載入組態。

--coff-resources

顯示 .rsrc 區段。

XCOFF 特定選項

以下選項僅針對 XCOFF 檔案格式實作。

--auxiliary-header

顯示 XCOFF 輔助標頭。

--exception-section

顯示 XCOFF 例外區段條目。

--loader-section-header

顯示 XCOFF 載入器區段標頭。

--loader-section-symbols

顯示載入器區段的符號表。

--loader-section-relocations

顯示載入器區段的重定位條目。

結束狀態

llvm-readobj 在正常操作下傳回 0。如果發生任何錯誤,則傳回非零結束代碼。

參見

llvm-nm(1), llvm-objdump(1), llvm-readelf(1)