首页 > 解决方案 > 为什么 gdb 终端中的 Ctrl-c 不会向 gdb 进程发送 STOP 信号

问题描述

要在 gdb 中打破循环,我们需要在 gdb 终端中使用 Ctrl -c,但有时 Ctrl-c 不起作用,有没有办法打破循环?(从另一个窗口向 gdb 进程发送 SIGSTOP 或 SIGTRAP 除外)

源代码是这样的:

   main() {
   Initialize ():
   ...
   while (true)  //the main region of the program
   {
   ret = getmsg (fd, &ctrl, &data, &flags);
   Process (data);
   ...
   }

标签: debugginggdbsignals

解决方案


不确定要求,但如果您不想每次都中断,可以在循环体中放置一个条件断点。现在对于您的具体问题,您可以从 gdb 提示符中发送信号,只需键入 : singal SIGINT


推荐阅读