我正在使用gdb来调用一个简单的c ++函数,但它失败了

时间:2014-05-07 12:07:06

标签: c++ gdb

该计划非常简单:

#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)

什么都没发生.....为什么???

1 个答案:

答案 0 :(得分:1)

断点处的GDB输出与您的源不匹配(缺少endl)。

我猜你在 忘记在endl内添加test(),在这种情况下你在GDB下的行为是预期由于缓冲。

尝试按目前的说法重新构建完全的程序,然后再次在GDB下重新运行它。机会是,它现在可以工作。