Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
RE: [cdt-dev] The old problem of buffering in the console (Windows)

Actually, I'm not so sure the CDT build console itself is to blame.  I've encountered the same issue just this week in debugging pure Java apps that write to stdout and stderr.  Even with using System.err.flush() and System.out.flush(), it's completely unpredictable where the stderr content will appear.
I think this is the same bug you're seeing.  This is an old one indeed:
 Bug 32205 - [console] Synchronisation problem between System.out and System.err in the console
-- Ed

From: Leherbauer, Anton (Toni) [mailto:Anton.Leherbauer@xxxxxxxxxxxxx]
Sent: Wednesday, March 31, 2010 8:22 AM
To: CDT General developers list.
Subject: RE: [cdt-dev] The old problem of buffering in the console (Windows)

Regarding the stream buffering, please refer to
In short, the Eclipse console is not doing the buffering, but the C library linked into the process.
You'd certainly gain a lot of appreciation from the community if you find a solution to this problem.

From: cdt-dev-bounces@xxxxxxxxxxx [mailto:cdt-dev-bounces@xxxxxxxxxxx] On Behalf Of Omer Strulovich
Sent: Wednesday, March 31, 2010 2:32 PM
To: CDT General developers list.
Subject: [cdt-dev] The old problem of buffering in the console (Windows)

If you've used Eclipse CDT on Windows you know that the Eclipse console has buffering problems.
Basically, it doesn't flush the streams when a newline is received. (Unlike a normal windows console window)
Until lately I used to either add fflush calls when needed or add the following lines in the start of the main function:
setvbuf(stdout, NULL, _IONBF, 0);
setvbuf(stderr, NULL, _IONBF, 0);

Since we're using Eclipse CDT as the recommended IDE for a software development course I need some solution or workaround to allow my students work on CDT.
Having mixed stdout & stderr is unacceptable for a programming newbie. (Seriously, this bug is probably preventing hundred of new C/C++ programmers working on windows from seriously using Eclipse instead of Visual)

I would love if someone could help me with a workaround.
Or even better, direct me to the right piece of code in Eclipse where I can solve this problem myself and be done with it. (I have the time and necessary skills)


Back to the top