gdb: multiple process debug

gdbserver自身不支持multiple process;如果你调试parent process时在子进程上下断点,子进程在运行到那个断点时就会SIGTRAP。

如果你要调试fork出来的子进程:

1. 运行父进程,fork,得到child pid;

2. 子进程sleep;

3. 开gdb,attach到child pid。

这里面的step 2是个可选项;如果你不需要调试子进程的启动阶段,就不需要sleep:step 2的目的是为了让你在子进程真正运行起来前有时间attach上去。

如果你用gdbserver做remote debug:

$ gdbserver --attach ip:port pid

原文地址:https://www.cnblogs.com/byeyear/p/4286140.html