GDB:使用修改后的代码同步断点

时间:2013-10-29 07:57:59

标签: gdb

在调试期间设置了一些断点,然后使用save breakpoints bps保存。 通过在文件中间添加几行来修改代码。

当再次启动gdb并完成source bps时,那些在第一次出现代码修改之上的断点就可以了,其余部分相对移动了。

有没有办法与修改过的文件进行断点的智能同步?

2 个答案:

答案 0 :(得分:2)

  

有没有办法与断点进行智能同步   修改过的文件?

这取决于您设置断点的方式。您可以尝试独立于行号设置它们,例如在函数名称:

(gdb) b main

这样,断点位置与行号无关,并自动与修改后的文件同步。

答案 1 :(得分:2)

您可以通过int 3

在源代码中添加断点
#include <stdio.h>

#define __DEBUG

#ifdef __DEBUG
#define __breakpoint__() __asm__ __volatile__("int $3\n")
#else
#define __breakpoint__()
#endif

int main(int argc, char **argv) {
  const char *p = "Hello world!";

  __breakpoint__();
  printf("'%s'\n", p);

  return 0;
}