llvm-readobj - LLVM 物件檔閱讀器

語法

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

描述

llvm-readobj 工具會顯示一個或多個物件檔的低階格式特定資訊。

如果 輸入 是「-」,llvm-readobj 會從標準輸入讀取。否則,它會從指定的 檔案名稱 讀取。

與 LLVM-READELF 的差異

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

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

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

  • 為了與 GNU readelf 相容,llvm-readelf 提供 -s 作為 --symbols 的別名,而在 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=<區段[,區段,...]>, -x

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

--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

顯示 stackmap 區塊的內容。

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

將指定的區塊顯示為字串清單。section 可以是區塊索引或區塊名稱。

--string-table

顯示字串表的內容。

--symbols, --syms, -s

顯示符號表。

--unwind, -u

顯示 unwind 資訊。

--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)