objdump --syms output

Nick Clifton nickc@redhat.com
Fri Sep 7 16:54:00 GMT 2007


Hi Nameer,

> Unfortunately they use utterly different letter abbreviations. It is
> so different

*sigh* You are right and I am wrong.  I really should have checked the output 
of the two programs before writing my original reply.

Oh well, I am attaching a patch to add some documentation about objdump --sym's 
output.  What do you think of it ?  Does it help ?

To save you some time, here is the relevant section from the objdump manpage:

        -t
        --syms
            Print the symbol table entries of the file.  This is similar to the
            information provided by the nm program, although the display format
            is different.  The format of the output depends upon the format  of
            the  file  being  dumped,  but there are two main types.  One looks
            like this:

                    [  4](sec  3)(fl 0x00)(ty   0)(scl   3) (nx 1) 0x00000000 .bss
                    [  6](sec  1)(fl 0x00)(ty   0)(scl   2) (nx 0) 0x00000000 fred

            where the number inside the square brackets is the  number  of  the
            entry  in  the  symbol table, the sec number is the section number,
            the fl value are the symbol's flag bits, the ty number is the  sym-
            bol's type, the scl number is the symbol's storage class and the nx
            value is the number of auxiliary entries associated with  the  sym-
            bol.  The last two fields are the symbol's value and its name.

            The  other common output format, usually seen with ELF based files,
            looks like this:

                    00000000 l    d  .bss   00000000 .bss
                    00000000 g       .text  00000000 fred

            Here the first number is the symbol's value (sometimes  referred  to
            as  its  address).   The next field is actually a set of characters
            and spaces indicating the flag bits that are  set  on  the  symbol.
            These  characters  are  described below.  The next field is another
            number associated with the symbol, which for common symbols is  the
            alignment  and  for other symbol is the size.  Finally the symbol's
            name is displayed.

            The flag characters are divided into 7 groups as follows:

            "l"
            "g"
            "!" The symbol is local (l), global (g), neither (a space) or  both
                (!).   A symbol can be neither local or global for a variety of
                reasons, eg because it is used for debugging, but it is  proba-
                bly an indication of a bug if it is ever both local and global.
          "w" The symbol is weak (w) or strong (a space).

            "C" The symbol denotes a constructor (C) or an ordinary  symbol  (a
                space).

            "W" The  symbol  is  a warning (W) or a normal symbol (a space).  A
                warning symbol's name is a message to be displayed if the  sym-
                bol following the warning symbol is ever referenced.

            "I" The  symbol is an indirect reference to another symbol (I) or a
                normal symbol (a space).

            "d"
            "D" The symbol is a debugging symbol (d) or a dynamic symbol (D) or
                a normal symbol (a space).

            "F"
            "f"
            "O" The  symbol  is  the name of a function (f) or a file (F) or an
                object (O) or just a normal symbol (a space).

Cheers
   Nick
-------------- next part --------------
A non-text attachment was scrubbed...
Name: binutils.texi.patch.bz2
Type: application/x-bzip2
Size: 2161 bytes
Desc: not available
URL: <https://sourceware.org/pipermail/binutils/attachments/20070907/a00dec32/attachment.bz2>


More information about the Binutils mailing list