不是这样,但你可以插入一些有用的函数调用:
一种选择是创建一个函数:
void break_here ()
{
/* do nothing */
}
Run Code Online (Sandbox Code Playgroud)
然后在任何你想要的地方调用它,但要小心它不会被内联(将它放在不同的文件中,或添加"noinline"属性).
然后,在GDB中,只需设置一个断点break_here,就完成了.如果您发现每次设置该断点都很繁琐,则可以.gdbinit在主目录或包含断点命令的当前工作目录中创建一个文件.
在Linux上运行的另一个选项是使用信号:
raise (SIGUSR1);
Run Code Online (Sandbox Code Playgroud)
你可以使用你喜欢的任何信号,但最好使用一个不会杀死你的程序的信号(尽管你可以配置GDB不将它们传递给你的程序,如果你选择的话).