如何在函数结束时停止(不退出)在GDB中?

时间:2013-08-15 15:36:56

标签: gdb

请考虑以下代码:

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

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

gdb$ b func

现在,这个断点被击中&我在函数func()中完成'

gdb$ fin

我的问题是:

做'完成'让我回到main(),这里:

retval = func();

我想在没有退出func()的情况下停在func()的END。

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

感谢。

2 个答案:

答案 0 :(得分:3)

没有办法做到这一点。编译器通常不会发出所需的debuginfo(有一个关于此的GCC错误);即使他们这样做了,gdb也不会读它;即使它确实如此,也需要新的语法才能将其指定为断点位置。

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

答案 1 :(得分:-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()

相关问题