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

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。