How can I get info on the UNDEF section or the imports section of an object file from BFD?

Ian Lance Taylor ian@wasabisystems.com
Thu Apr 8 19:22:00 GMT 2004


"Liang, James" <jliang@sandia.gov> writes:

> Does anyone know how I can get info on the UNDEF section or the imports
> section of an object file from BFD?
> 
> Consider that I have a snippet:
> extern struct someStruct externData;
> 
> 	void function() {
> 	  printf("%d\n",externData.accessCounter);
> 	}
> 
> This basically compiles to:
>   push [externData+8]
>   push "%d\n"
>   call printf
> 
> Where the push instruction is just a   "ff 35 6c 00 00 00"
> 
> By looking at it through IDA Pro, I can easily see that the 6c byte is there
> because it put externData in a section called UNDEF, that holds all of the
> imported symbols, at offset 64.  Thus it simply added the offset of +8 to
> the 64 where the externData resides and got 6c.  
> 
> I would like to be able to read info about the UNDEF section using BFD so
> that I can see that externData is at offset 64, see the ff 35 6c, and use it
> to calculate the "externData +8".  The problem is that I can't seem to
> figure out how to get info about the imports section using the BFD
> libraries.  Without this info, I can't figure out how to fixup the extern.
> I tried getting this info from objdump, but can't quite seem to get it to
> give that either. 
> 
> Where is this info stored?  How can I access it?

I don't know what IDA Pro is, and I'm confused by your terminology.
What does objdump show about your file?

If the symbol externData is in a section named UNDEF, that suggests
that it is actually an undefined symbol.  Is there an actual section
named UNDEF?  That is, do you see such a section using objdump -h?
How does objdump show the symbol using objdump -t?

I don't know what you mean by the imports section.  I don't know of
any such thing in ordinary COFF.

Since your question seems to be related to relocations, what do you
see using objdump -r?

Ian



More information about the Binutils mailing list