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

Orlando Arias
Fri Mar 26 16:22:05 GMT 2021


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.


-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature
Type: application/pgp-signature
Size: 195 bytes
Desc: OpenPGP digital signature
URL: <>

More information about the Binutils mailing list