例如,我的代码是:
int main(){
f();
g();
while(1){
h();
}
..
}
我在f,g上设置了断点。当然,程序将停在f()/ g(),但是当我输入“c”然后它会继续运行。目前我必须输入“CTL + C”来阻止它。程序也被杀死了。
如果程序正在运行,有没有其他优雅的方法退出gdb而不杀死程序?
感谢
答案 0 :(得分:1)
我必须输入“CTL + C”来阻止它。程序也被杀死了。
键入“CTL + C”,然后gdb将捕获SIGINT,然后键入detach
,然后键入“Ctrl-D”或quit
。 gdb将从您的进程中分离并退出。您的程序将继续运行,其父进程将变为init
(PID = 1)
<小时/> 更新:
(gdb) info signals SIGINT
Signal Stop Print Pass to program Description
SIGINT Yes Yes No Interrupt