我正在使用gdb调试程序。首先我load
我的可执行文件,然后我continue
来运行程序。我有时想要中断我的程序的执行,所以我做Ctrl + C
。
我的问题是,这会关闭两个我的程序和gdb。如何在不退出gdb的情况下退出程序?
答案 0 :(得分:21)
您是否尝试过使用gdb内的kill
?
答案 1 :(得分:14)
使用ctrl-c中断应用程序。然后从GDB提示符运行“signal SIGINT”,它会将此信号发送到您的应用程序,使其执行与从命令行执行ctrl-c时通常所做的相同的操作。
答案 2 :(得分:6)
在Windows下,您必须使用Ctrl-Break
而不是Ctrl-C
。请参阅此page。
摘录:
调用SetConsoleMode关闭特殊的MS-Windows程序 键入C-c不能中断“Ctrl-C”键击的含义。 因此,MS-Windows上的gdb支持C-作为 备用中断键序列,可用于中断 debuggee即使它忽略了C-c。
答案 3 :(得分:2)
首先运行程序(不是从gdb内部),然后找到它的pid。
在另一个shell中,运行gdb --pid=<your program's pid>
。这会将gdb附加到正在运行的程序中。它会停止程序的执行,因此请c
继续。
现在退出你的程序,你的gdb会话将保留在那里。
答案 4 :(得分:0)