This is the mail archive of the gdb@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Question about when stdout is flushed in gdb/mi mode


On Tue, Feb 19, 2008 at 08:32:16AM -0800, Gordon Prieur wrote:
> Hi,
>
>    If I do several printf command before a breakpoint in normal
> command line gdb, the stdout gets flushed prior to showing the stop
> message in gdb. If I do the same thing in mi mode from a tty, I get
> the same results. But if I do this from NetBeans (where gdb isn't
> running in a tty), the output doesn't get flushed and hence doesn't
> get shown before the stop.

Yes.  By default, stdout is line buffered in TTYs and block buffered
otherwise.  On pipes, or Cygwin terminals with a mingw32 GDB (where
isatty returns false), stdout ends up block buffered.  This applies to
both GDB's stdout and the program being debugged.

GDB never, ever flushes the stdout of the program being debugged.
That would be a real pain if it affected anything you were debugging,
because the buffering is done in the C library, not in the kernel.

You can run the program being debugged in a new TTY, for instance with
"set tty".

-- 
Daniel Jacobowitz
CodeSourcery


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]