在C文件中设置GDB断点

在编译之前,是否可以在C文件中添加GDB断点?目前,我必须在通过GDB编译后指定断点.

我正在寻找类似JavaScript的调试器;声明.

最佳答案
不是这样,但你可以插入一些有用的函数调用:

一种选择是创建一个函数:

void break_here ()
{
  /* do nothing */
}

然后在任何你想要的地方调用它,但要小心它不会被内联(将它放在不同的文件中,或添加“noinline”属性).

然后,在GDB中,只需在break_here上设置一个断点,就完成了.如果您发现每次设置该断点都很繁琐,可以在主目录或包含断点命令的当前工作目录中创建名为.gdbinit的文件.

在Linux上运行的另一个选项是使用信号:

raise (SIGUSR1);

你可以使用你喜欢的任何信号,但最好使用一个不会杀死你的程序的信号(尽管你可以配置GDB不将它们传递给你的程序,如果你选择的话).

转载注明原文:在C文件中设置GDB断点 - 代码日志