1

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

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

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

4

2 回答 2

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;
}
于 2013-10-29T19:16:44.493 回答
2

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

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

(gdb) b main

这种方式断点位置独立于行号,并与修改后的文件自动同步。

于 2013-10-29T09:41:34.307 回答