请考虑以下代码:
main()
{
....
retval = func();
}
假设我在给定函数上放置一个断点:
gdb$ b func
现在,这个断点被击中&我在函数func()中完成'
gdb$ fin
我的问题是:
做'完成'让我回到main(),这里:
retval = func();
我想在没有退出func()的情况下停在func()的END。
有人可以建议一些通用方法(独立于func()中的代码行数)来实现这个目的吗?
感谢。
答案 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()