在下面的函数中,假设 EIP 是 0x400688。现在,我想跳过调用而不是进入子例程。
0x40067a <main+4> sub $0x20,%rsp │
│0x40067e <main+8> mov $0x3c00,%edi │
│0x400683 <main+13> mov $0x0,%eax │
>│0x400688 <main+18> callq 0x400560 <alarm@plt> │
│0x40068d <main+23> mov 0x2009ac(%rip),%rax # 0x601040 <stdout@@GLIBC_2.2.5> │
│0x400694 <main+30> mov $0x0,%ecx │
│0x400699 <main+35> mov $0x2,%edx │
│0x40069e <main+40> mov $0x0,%esi
我使用了下一个命令,但是它开始执行 main() 函数本身,而不是只在指令处执行调用和中断:0x40068d,如下所示:
(gdb) next
Single stepping until exit from function main,
which has no line number information.