在函数结束前写入stdout时,Eclipse CDT调试失败

在函数结束前写入stdout时,Eclipse CDT调试失败,c,linux,eclipse,debugging,stdout,C,Linux,Eclipse,Debugging,Stdout,今天在使用Eclipse时,我遇到了一些无法解释的问题 基本上,当我试图调试一个在结束前写入stdout的函数时,Eclipse不会从该函数返回,而是会在那里停止调试。(该函数可以执行其他操作,只要它最后写入标准输出。) 导致意外行为的程序可能是,例如: #include <stdio.h> void testfunc(void) { puts("I hate you "); } int main(void) { testfunc(); printf(

今天在使用Eclipse时,我遇到了一些无法解释的问题

基本上,当我试图调试一个在结束前写入stdout的函数时,Eclipse不会从该函数返回,而是会在那里停止调试。(该函数可以执行其他操作,只要它最后写入标准输出。)

导致意外行为的程序可能是,例如:

#include <stdio.h>

void testfunc(void)
{
    puts("I hate you ");

}

int main(void)
{
    testfunc();

    printf("so, so much.");
    return 3;
}
获取发送到进程的SIGSEGV信号,同时:

void testfunc(void)
{
    int a;

    puts("I hate you ");
    a=3;
}
工作没有问题

正如我所说,单步执行函数或只是运行程序(而不是调试)都可以很好地工作,就像使用gcc手动编译和在终端上运行程序一样

我正在运行Fedora19,Eclipse的版本是:4.3.1,构建id:5fc19

有什么想法吗

void testfunc(void)
{
    int a;

    puts("I hate you ");
    a=3;
}