meaning of this objdump output?

Daniel Jacobowitz drow@mvista.com
Tue Nov 13 15:38:00 GMT 2001


On Mon, Nov 26, 2001 at 06:39:57PM -0500, Phil Edwards wrote:
> The output of objdump -t is documented to be "similar to the information
> provided by the `nm' program."  Except that it isn't.  Reading through
> the code, '-t' forwards to bfd_print_symbol(), which is a macro wrapper
> around something horrible.  :-)  That's where I gave up.
> 
> For example,
> 
>     47% nm -C libstdc++.so | grep S_free_list
>     0009d640 B std::__default_alloc_template<true, 0>::_S_free_list
>     48%
> 
> nm's documentation explains to me (and more importantly, my coworkers!) what
> the B means.  No problems there, nm is a common tool.
> 
> But this output
> 
>     49% objdump -t -C -j .bss libstdc++.so | grep _S_free_list
>     0009d640 g     O .bss   00000080              std::__de[ trim long name ]
>     50%
> 
> isn't similar, doesn't correspond, and isn't documented.  My coworkers
> could figure out the address field (obvious), and the ".bss" and "00000080"
> fields were obvious to me, but none of us can tell what the "g" and "O" are.

The 'g' is Global, and the 'O' is Object.  This really needs to be
better documented :)

-- 
Daniel Jacobowitz                           Carnegie Mellon University
MontaVista Software                         Debian GNU/Linux Developer



More information about the Binutils mailing list