3

请考虑以下代码:

main()
{
    ....
    retval = func();
}

假设我在给定函数上放置了一个断点:

gdb$ b func

现在,这个断点被命中,我在函数 func() 中“完成”:

gdb$ fin

我的问题是:

执行“完成”让我回到 main(),这里:

retval = func();

我想在不退出 func() 的情况下停在 func() 的末尾。

有人可以建议一些通用方法(独立于func()中的代码行数)来实现这一点吗?

谢谢。

4

2 回答 2

3

没有办法做到这一点。编译器通常不会发出所需的调试信息位(有一个 GCC 错误公开);即使他们这样做了,gdb 也不会读取它;即使这样做了,您也需要新的语法才能将其指定为断点位置。

我不记得是否有 gdb 错误,但应该有。

于 2013-08-16T02:35:34.573 回答
-1

您可以键入两个命令“s”和“finish”。

s - step in to func() function

finish - finish function and go back to the outside func(). In this case to the main()

于 2020-06-15T06:37:43.877 回答