[
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)
|
Hi,
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
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.
Toni
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)
-Omer