有没有一种方法可以在不使用Ctrl+C(或从另一个进程发送的等效信号?)的情况下停止次进程?我使用的是windows平台,正在从另一个进程管理GDB,因此没有信号的概念,当我的程序在没有任何断点的情况下自由运行时,似乎没有一种好的方法来中断它的执行。
为清晰起见,请编辑:
这里涉及两个过程。有一个进程A,它是GDB的父进程。GDB正在管理一个进程,但它在一个远程主机上,我们称之为进程C。
当我告诉GDB“运行”时,它会启动远程主机上的进程C,并阻塞进程C,直到遇到断点、进程C遇到错误或致命信号,或者GDB本身接收到中断信号。如果以交互方式工作,只需在GDB命令控制台按CTRL+C,GDB将其解释为SIGINT(不知何故),从而触发GDB停止进程C。因为我实际上是用进程A管理GDB(而不是在shell中以交互方式处理它),所以我不能很好地按Ctrl+C,而且windows没有像UNIX中那样的“信号”本机概念,所以当GDB阻塞等待进程C中断或命中断点时,我不知道如何中断它。