通常,当您通过GDB运行程序时,您可以按Ctrl + C来中断它,例如,如果它陷入无限循环并且您想要获得回溯.
我正在调试一个程序(xmms2d,因为它发生),但只在这个程序中,当我按下Ctrl + C它被视为GDB没有运行 - 程序干净地关闭,然后GDB告诉我程序正常退出.
如何恢复常用的GDB行为,Ctrl + C会中断程序?或者是否存在另一种在GDB中产生相同反应的方法,就像Ctrl + C通常那样?
小智 28
我敢打赌,xmms2d正在使用sigwait()来处理信号,这会破坏gdb捕获CTRL-C的能力.请参阅https://bugzilla.kernel.org/show_bug.cgi?id=9039
在Linux上失败的断言后,通过阅读继续调试,我得到了一个解决方法的想法? - 当我准备好在gdb中断时,我从另一个终端窗口运行"kill -TRAP <pid>".