📜  gdb 从断点恢复 (1)

📅  最后修改于: 2023-12-03 15:15:14.014000             🧑  作者: Mango

GDB从断点恢复

GDB是一个非常强大的调试器,可以帮助程序员找到代码中的错误并修复它们。当程序在运行时发生错误时,调试器的一个常见用法是在代码中设置断点,以便程序在那个位置停止执行,程序员可以检查变量的值,调用堆栈等信息,以找到错误所在。 在大多数情况下,程序员很快就能修复错误并让程序重新运行,但有时他们可能需要中断正在进行的GDB会话,然后稍后返回并从断点继续执行。

如何从断点恢复?

要从GDB断点恢复,必须先停止GDB会话。可以使用以下命令停止GDB会话:

Ctrl + C

停止GDB会话后,可以使用以下命令退出GDB:

quit

此时,我们可以将GDB会话保存在文件中以备将来使用,如下所示:

(gdb) save gdb_session

然后,如果想要从保存的会话中恢复,可以使用以下命令:

gdb -x gdb_session

在这里,gdb_session是保存的GDB会话文件的名称。这将重新打开GDB并自动从断点位置恢复程序的执行。

代码示例

以下是一个简单的C程序,可以使用GDB设置断点并从中恢复。

#include<stdio.h>

int main() {
   int a = 10, b = 20, c = 0;

   c = a + b;
   printf("The sum of %d and %d is %d\n", a, b, c);

   return 0;
}

在这个程序的第5行,我们可以将断点设置在变量c的计算语句中。要在GDB中设置断点,请键入以下命令:

(gdb) break 6

然后,我们可以运行程序并等待GDB在断点处停止程序的执行:

(gdb) run

在断点处停止了程序的执行后,我们可以使用以下命令检查c的值:

(gdb) print c

现在,我们可以将会话保存到文件中并退出GDB:

(gdb) save gdb_session
(gdb) quit

稍后,我们可以使用以下命令从保存的会话中恢复:

gdb -x gdb_session

这将重新打开GDB,并自动从断点位置恢复程序的执行。