llvm-size - 列印大小資訊

語法

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

說明

llvm-size 是一個用於列印二進制檔案大小資訊的工具。它旨在成為 GNU size 的替代品。

該工具會列印每個指定 輸入 的大小資訊。如果未指定輸入,則程式會列印 a.out 的大小資訊。如果指定了“-”作為輸入檔案,llvm-size 會從標準輸入流讀取檔案。如果輸入是封存檔,則會顯示其所有成員的大小資訊。

選項

-A

等同於 --format,其值為 sysv

--arch=<arch>

要顯示大小資訊的 Mach-O 通用二進制檔案的架構。

-B

等同於 --format,其值為 berkeley

--common

berkeley 輸出格式中將 ELF 通用符號大小包含在 bss 大小中,或作為 sysv 輸出的獨立區段項目。如果未指定,則會忽略這些符號。

-d

等同於 --radix,其值為 10

-l

darwin 格式顯示 Mach-O 檔案中區段和區塊的詳細地址和偏移量資訊。

--format=<format>

將輸出格式設定為指定的 <format>。可用的 <format> 選項有 berkeley(預設)、sysvdarwin

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

顯示命令列選項的摘要。

-m

等同於 --format,值為 darwin

-o

等同於 --radix,值為 8

--radix=<value>

以指定的進制顯示大小資訊。允許的值為 810(預設)和 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 可執行檔的版本。

-x

等同於 --radix,值為 16

@<FILE>

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

結束狀態

如果發生錯誤,llvm-size 會以非零的結束代碼退出。否則,它會以代碼 0 退出。

錯誤

要回報錯誤,請造訪 <https://github.com/llvm/llvm-project/labels/tools:llvm-size/>。