llvm-size - サイズ情報を出力

概要

llvm-size [options] [input…]

説明

llvm-size は、バイナリファイルのサイズ情報を出力するツールです。これは、GNU の size の代替として使用することを意図しています。

このツールは、指定された各 input のサイズ情報を出力します。入力が指定されていない場合、プログラムは a.out のサイズ情報を出力します。入力ファイルとして “-” が指定されている場合、llvm-size は標準入力ストリームからファイルを読み取ります。入力がアーカイブの場合、すべてのメンバーのサイズ情報が表示されます。

オプション

-A

--formatsysv の値を指定した場合と同等です。

--arch=<arch>

情報を表示する Mach-O ユニバーサルバイナリからのアーキテクチャ。

-B

--formatberkeley の値を指定した場合と同等です。

--common

berkeley 出力形式の場合、ELF の共通シンボルサイズを bss サイズに含めるか、sysv 出力の場合は別のセクションエントリとして含めます。指定しない場合、これらのシンボルは無視されます。

-d

--radix10 の値を指定した場合と同等です。

-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-sizeberkeley 形式にフォールバックします。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

--formatdarwin の値を指定した場合と同等です。

-o

--radix8 の値を指定した場合と同等です。

--radix=<value>

サイズ情報を指定された基数で表示します。許可される値は、8 進数、10 進数 (デフォルト)、および 16 進数出力それぞれに対して 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

--radix16 の値を指定した場合と同等です。

@<FILE>

レスポンスファイル <FILE> からコマンドラインオプションを読み取ります。

終了ステータス

エラーが発生した場合、llvm-size はゼロ以外の終了コードで終了します。それ以外の場合は、コード 0 で終了します。

バグ

バグを報告するには、<https://github.com/llvm/llvm-project/labels/tools:llvm-size/> をご覧ください。