如何在gdb中跳过函数调用?

时间:2015-02-22 16:47:24

标签: c++ gdb

我想了解我们如何跨越函数调用。例如,在以下最简单的程序中:

 #include<iostream>
 #include "test.h"

 using std::cout;
 using std::endl;

 Uint u;

 int main()
 {
         cout << "executin starting..." << endl;
         cout << u.a << endl;
         cout << "execution completed" << endl;
 }

好的,我通过break 11命令在第11行设置断点。现在,我想跳过将要调用的所有指令,以打印"executin starting..."并停止operator <<调用打印endl符号。我怎样才能做到这一点?我应该使用哪个命令?

1 个答案:

答案 0 :(得分:6)

在gdb中,step表示单步执行(将调用内部函数),next表示单步执行(继续并在下一行停止)。

但在您的特定情况下,next可能不是您想要的,我建议首先step进入函数打印“executin starting ...”,然后使用finish继续直到它返回,以便程序停在<<endl