llvm-size - 列印大小資訊¶
語法¶
llvm-size [選項] [輸入…]
說明¶
llvm-size 是一個用於列印二進制檔案大小資訊的工具。它旨在成為 GNU size 的替代品。
該工具會列印每個指定 輸入
的大小資訊。如果未指定輸入,則程式會列印 a.out
的大小資訊。如果指定了“-
”作為輸入檔案,llvm-size 會從標準輸入流讀取檔案。如果輸入是封存檔,則會顯示其所有成員的大小資訊。
選項¶
- --arch=<arch>¶
要顯示大小資訊的 Mach-O 通用二進制檔案的架構。
- --common¶
在
berkeley
輸出格式中將 ELF 通用符號大小包含在 bss 大小中,或作為sysv
輸出的獨立區段項目。如果未指定,則會忽略這些符號。
- -l¶
以
darwin
格式顯示 Mach-O 檔案中區段和區塊的詳細地址和偏移量資訊。
- --format=<format>¶
將輸出格式設定為指定的
<format>
。可用的<format>
選項有berkeley
(預設)、sysv
和darwin
。Berkeley 輸出會總結每個檔案中的文字、資料和 bss 大小,如下所示,適用於一對典型的 ELF 檔案
$ llvm-size --format=berkeley test.o test2.o text data bss dec hex filename 182 16 5 203 cb test.elf 82 8 1 91 5b test2.o
對於 Mach-O 檔案,輸出格式略有不同
$ llvm-size --format=berkeley macho.obj macho2.obj __TEXT __DATA __OBJC others dec hex 4 8 0 0 12 c macho.obj 16 32 0 0 48 30 macho2.obj
Sysv 輸出會顯示大多數區段的大小和位址資訊,每個檔案都單獨列出
$ llvm-size --format=sysv test.elf test2.o test.elf : section size addr .eh_frame 92 2097496 .text 90 2101248 .data 16 2105344 .bss 5 2105360 .comment 209 0 Total 412 test2.o : section size addr .text 26 0 .data 8 0 .bss 1 0 .comment 106 0 .note.GNU-stack 0 0 .eh_frame 56 0 .llvm_addrsig 2 0 Total 199
darwin
格式僅影響 Mach-O 輸入檔案。如果指定了不同檔案格式的輸入,llvm-size 會回到berkeley
格式。產生darwin
格式時,工具會顯示有關區段和區段的資訊$ llvm-size --format=darwin macho.obj macho2.obj macho.obj: Segment : 12 Section (__TEXT, __text): 4 Section (__DATA, __data): 8 total 12 total 12 macho2.obj: Segment : 48 Section (__TEXT, __text): 16 Section (__DATA, __data): 32 total 48 total 48
- --help, -h¶
顯示命令列選項的摘要。
- --radix=<value>¶
以指定的進制顯示大小資訊。允許的值為
8
、10
(預設)和16
,分別代表八進制、十進制和十六進制輸出。範例
$ llvm-size --radix=8 test.o text data bss oct hex filename 0152 04 04 162 72 test.o $ llvm-size --radix=10 test.o text data bss dec hex filename 106 4 4 114 72 test.o $ llvm-size --radix=16 test.o text data bss dec hex filename 0x6a 0x4 0x4 114 72 test.o
- --totals, -t¶
僅適用於
berkeley
輸出格式。除了個別檔案清單之外,還會顯示所有列出欄位的總計。範例
$ llvm-size --totals test.elf test2.o text data bss dec hex filename 182 16 5 203 cb test.elf 82 8 1 91 5b test2.o 264 24 6 294 126 (TOTALS)
- --version¶
顯示 llvm-size 可執行檔的版本。
- @<FILE>¶
從回應檔案
<FILE>
讀取命令列選項。
結束狀態¶
如果發生錯誤,llvm-size 會以非零的結束代碼退出。否則,它會以代碼 0 退出。
錯誤¶
要回報錯誤,請造訪 <https://github.com/llvm/llvm-project/labels/tools:llvm-size/>。