在gdb中执行一个函数后,如何插入该函数?

在gdb中执行一个函数后,如何插入该函数?,gdb,Gdb,在gdb中,我可以使用命令“call”调用一个函数,但我如何才能进入该函数?我不想重新启动程序,但函数已经执行,gdb将执行下一条语句,我不知道如何调用函数。gdb已经执行了。您可以在此处使用反向步骤,然后再次运行您的函数。在您的情况下,您希望进入使用gdb命令调用执行的函数。因此,您需要在此函数上设置一个断点,然后执行它。当我想随时介入函数时,我总是这样做。 如果它没有步进这个函数,我想它可能在存储函数及其源代码信息的符号表中有一些问题。您必须使用-g(gdb)reverse step Tar

在gdb中,我可以使用命令“call”调用一个函数,但我如何才能进入该函数?我不想重新启动程序,但函数已经执行,gdb将执行下一条语句,我不知道如何调用函数。

gdb已经执行了。您可以在此处使用
反向步骤
,然后再次运行您的函数。

在您的情况下,您希望进入使用gdb命令调用执行的函数。因此,您需要在此函数上设置一个
断点
,然后执行它。当我想随时介入函数时,我总是这样做。
如果它没有步进这个函数,我想它可能在存储函数及其源代码信息的符号表中有一些问题。您必须使用
-g

(gdb)reverse step Target child不支持此命令,以确保该表是正确的。我想在任意位置插入一个函数来调试它,而不仅仅是reverse。您可以在函数上设置断点并从gdb命令行调用它。你试过了吗?是的,我在函数中设置了断点,然后我用命令“call”调用它,但函数只是被执行,而不是在断点处停止。