该计划非常简单:
#include<iostream>
using namespace std;
void test(){ cout<<"hello from function"<<endl; }
int main(){
cout<<"hello from main"<<endl;
return 0;
}
我编写的程序如下:
g++ -g main.cpp -o main
打开gdb,设置断点并运行。
Breakpoint 1, main () at main.cpp:9
9 cout<<"hello from main";
然后调用函数:
(gdb) call test()
(gdb)
什么都没发生.....为什么???
答案 0 :(得分:1)
断点处的GDB输出与您的源不匹配(缺少endl
)。
我猜你在endl
内添加test()
,在这种情况下你在GDB下的行为是预期由于缓冲。
尝试按目前的说法重新构建完全的程序,然后再次在GDB下重新运行它。机会是,它现在可以工作。