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

时间:2009-07-09 04:51:05

标签: gdb sigint

有没有办法在不使用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中那样的“信号”本机概念,我无法弄清楚如何在阻塞等待进程C时中断GDB打断或打破断点。

1 个答案:

答案 0 :(得分:2)

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

编辑:似乎是-exec-interrupt会中断执行。