Quiz Entry - updated: 2026.07.06
How do you identify what a call instruction calls when the name is not shown?
Read the target: a <name> is resolved from symbols, <name@PLT> is an external library call, and call *%reg is a function pointer you must inspect at runtime.
Named function:
call <strings_not_equal>
The disassembler resolved the name from the symbol table.
Address only:
call *%rax
This calls a function pointer — examine %rax at runtime:
(gdb) p/a $rax
(gdb) x/i $rax
PLT calls (external library):
call <sscanf@PLT>
The @PLT suffix means it goes through the Procedure Linkage Table to call a shared library function.
Examining an unknown function:
(gdb) disas 0x401234
Or set a breakpoint and step into it:
(gdb) break *0x401234
(gdb) run
(gdb) si
(gdb) disas
Go deeper: