在没有信号的情况下停止GDB中的劣质过程?

有没有办法在不使用Ctrl C(或从另一个进程发送的等效信号?)的情况下阻止下级?我正在使用
Windows平台并从另一个进程管理GDB,因此没有信号概念,似乎没有在没有任何断点的情况下自由运行时,这是打破程序执行的好方法.

编辑清晰度:

这里涉及2个过程.有进程A,它是GDB的父进程. GDB正在管理一个进程,但它位于远程主机上,我们将调用该进程C.

当我告诉GDB“运行”时,它会启动远程主机上的进程C并阻塞直到命中断点,进程C遇到错误或致命信号,或者GDB本身接收到中断信号.如果以交互方式工作,您只需在GDB命令控制台上按CTRL C,GDB将其解释为SIGINT(以某种方式),触发GDB以停止进程C.因为我实际上正在使用进程A管理GDB(而不是以交互方式处理它)在shell)我不能很好地按下Ctrl C,并且由于Windows没有像UNIX中那样的“信号”本机概念,我无法弄清楚当GDB阻塞等待进程C中断时如何中断GDB或打一个断点.

最佳答案 您是否尝试过查看远程控制协议?例如,
EMACS使用
MI来控制GDB,您应该检查它们是如何/如果它们提供这样的ctrl-C机制,以及它们如何实现它.

编辑:似乎是-exec-interrupt中断了执行.

点赞