How to extract function caller callee relation from an object file?

Orlando Arias orlandoarias@gmail.com
Fri Mar 26 16:22:05 GMT 2021


Greetings,

On 3/26/21 12:13 PM, Nick Clifton via Binutils wrote:
>> Also, I don't quite understand "   b:    e8 00 00 00 00          
>> callq  10
>> <print+0x10>". Why I don't see a call to `puts()`? Thanks.
> 
> The compiler has probably replaced the call to puts() with a call to
> printf() instead.


Not quite. We are dealing with an object file here. At this point,
[link-time] addresses have not been resolved, so we are given a call
instruction with an `empty' predicate. When the linker runs, generating
the final executable, the proper address will be placed in there. This
is what we are seeing in both print() and print2() functions.


Cheers,
Orlando.



-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature
Type: application/pgp-signature
Size: 195 bytes
Desc: OpenPGP digital signature
URL: <https://sourceware.org/pipermail/binutils/attachments/20210326/6b87d0b2/attachment-0001.sig>


More information about the Binutils mailing list