llvm-readobj - LLVM 物件檔閱讀器¶
語法¶
llvm-readobj [選項] [輸入…]
描述¶
llvm-readobj 工具會顯示一個或多個物件檔的低階格式特定資訊。
如果 輸入
是「-
」,llvm-readobj 會從標準輸入讀取。否則,它會從指定的 檔案名稱
讀取。
與 LLVM-READELF 的差異¶
llvm-readelf 是 llvm-readobj 工具的別名,具有稍微不同的命令列介面和與 GNU 相容的輸出。以下是 llvm-readelf 和 llvm-readobj 之間的差異列表
llvm-readelf 預設使用 GNU 作為
--elf-output-style
選項。 llvm-readobj 使用 LLVM。llvm-readelf 允許單字母分組標記(例如
llvm-readelf -SW
與llvm-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 檔案格式。
- --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 的有效值為
name
和type
。
- --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 資訊。有效選項為
LLVM
、GNU
和JSON
。LLVM
輸出(預設值)是展開的結構化格式。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。如果有任何錯誤,它會返回非零的結束代碼。