gdb:退出程序而不退出gdb

时间:2012-03-12 14:32:03

标签: c gdb

我正在使用gdb调试程序。首先我load我的可执行文件,然后我continue来运行程序。我有时想要中断我的程序的执行,所以我做Ctrl + C

我的问题是,这会关闭两个我的程序和gdb。如何在不退出gdb的情况下退出程序?

5 个答案:

答案 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)

就像曼利奥所说,在这种情况下,您想要的是kill,它将提示您一条消息,内容为:

Kill the program being debugged? (y or n)

如果键入help running,将看到执行常见操作(例如,停止当前程序的执行)所需的所有重要命令。这些应该是您正在运行的程序的所有命令,而不是gdb。

shell