gdb
调试的多进程可能是本地可能是远程的.
gdb
为把每一个进程都视作inferior
即下级追踪子进程.
虽然大部分都是子进程,但是也有可能是一个任务.
inferior
在进程之前创建,在进程死之后还存在.
绑定正在执行的进程除外.
查看当前正在调试的进程
info inferiors
输出分别是:inferior
对应编号;进程号;进程种类,本地还是远程进程,包含连接信息以及对应连接编号;最后是对应可执行程序.
当前正在调试的最开头有个*
查看当前正在调试的进程
inferior
查看进程的连接信息
info inferiors
输出分别是:连接编号;连接种类;连接描述;
切换进程
inferior inferiornumber
使用前面输出的进程编号进行切换.
添加新进程
add-inferior [ -copies n ] [ -exec executable ] [-no-connection ]
创建多少个,可执行程序是什么,连接的gdb
服务器是谁.
复制现有的
clone-inferior [ -copies n ] [ infno ]
复制现有的,无参复制当前的一份,不执行.
n
表示多少个新的.无参表示一个.
infno
表示复制的对象是谁,无参表示当前的.
删除
remove-inferiors infno...
删除之前需要保证进程没有在执行,可以通过kill,detach
的方式进行关闭.
关闭
detach inferior infno...
解除绑定,进程可能死亡可能还在执行.
不过这个时候的调试进程为NULL
.虽然为NULL
但是inferior
对象还在.
kill inferiors infno...
杀死指定进程.inferior
都在,但是也为NULL
.