我使用的gdb-multiarch版本9.1在Ubuntu上连接到qemu-mipsel-static运行的daemonizes本身与MIPS应用程序版本4.2.0 fork(),以及正在运行内置的gdbserver。这是相关的 GDB 输出:
Breakpoint 5, 0x7f5bb874 in daemon () from ./lib/libc.so.0
接下来的指令jalr来fork
(gdb) si
0x7f5738e0 in fork () from ./lib/libc.so.0
现在我们进入了fork(),让我们检查一下状态follow-fork-mode
(gdb) show follow-fork-mode
Debugger response to a program call of fork or vfork is "child".
一切看起来都不错,让我们完成函数并检查我们的返回值
(gdb) finish
Run till exit from #0 0x7f5738e0 in fork () from ./lib/libc.so.0
0x7f5bb87c in daemon () from ./lib/libc.so.0
(gdb) p $v0
$7 = 119052
(gdb) # what
PID 表明我们仍然附加到父进程