3.2.5 シンボル情報

-show=symbolを指定した場合、外部定義シンボルまたは静的内部定義シンボルのアドレス、サイズ、種別をアドレス順に出力します。また、-show=referenceを指定した場合は、各シンボルの参照回数、最適化実行の有無も出力します。シンボル情報の出力例を示します。

*** Symbol List ***
SECTION= (1)
(2)          (3)          (4)              (5)
FILE=        START        END              SIZE
  (6)           (7)          (8)              (9)           (10)    (11)
  SYMBOL        ADDR         SIZE             INFO          COUNTS  OPT
SECTION=P
FILE=test.obj
                00000000     00000428             428
  _main
                00000000            2         func ,g            0
  _malloc
                00000000           32         func ,l            0
FILE=mvn3
                00000428     00000490              68
  $MVN#3
                00000428            0         none ,g            0

項番

説明

(1)

セクション名を表示します

(2)

ファイル名を表示します

(3)

(2)のファイルに含まれる該当セクションの先頭アドレスを表示します

(4)

(2)のファイルに含まれる該当セクションの最終アドレスを表示します

(5)

(2)のファイルに含まれる該当セクションのセクションサイズを表示します

(6)

シンボル名を表示します

ただし、__を含むシンボル名は名前が変わる場合があります

(7)

シンボルアドレスを表示します

**OVER**と表示された場合は、アドレスが32bitで表現できる範囲を超えたことを示しています

(8)

シンボルサイズを表示します

(9)

シンボル種別を次のように表示します

データ種別

func: 関数名

data: 変数名

entry: エントリ関数名

none: 未設定(ラベル、アセンブラシンボル)

宣言種別

g: 外部定義

l: 内部定義

(10)

シンボル参照回数を表示します

-show=referenceを指定した場合のみ表示します

参照回数を表示しないときは、*を表示します

(11)

最適化有無を次のように表示します

ch: 最適化によって変更されたシンボル

cr: 最適化によって生成されたシンボル

mv: 最適化によって移動されたシンボル

 

show=structを指定した場合は、コンパイル時に-debugを指定したファイル内で定義した構造体/共用体メンバの情報も出力します。構造体メンバ情報の出力例を以下に示します。

*** Symbol List ***
 
SECTION=
FILE=                               START        END    SIZE
  SYMBOL                            ADDR        SIZE    INFO      COUNTS  OPT
    (1)                                         (2)
    STRUCT                                      SIZE
      (3)                           (4)         (5)     (6)
      MEMBER                        ADDR        SIZE    INFO
 
SECTION=B
FILE=tp.obj
                                  00000000  0000000b         c
  _st
                                  00000000         c   data ,g         0
    struct  {
                                                   c
      _st.mem1
                                  00000000         1   char
      _st.mem2
                                  00000004         4   int
      _st.mem3
                                  00000008         2   short
    }

項番

説明

(1)

構造体の場合はstruct、共用体の場合はunion

(2)

構造体または共用体全体のサイズ

(3)

メンバ名をシンボル名に“.”(ドット)で連結して表示

(4)

メンバアドレスを表示

(5)

メンバのサイズを表示

(6)

メンバの型を表示