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: gdb/mi log stream messages


On Tue, Aug 30, 2011 at 10:28 PM, Tom Tromey wrote:
>>>>>> "Xavier" == Xavier de Gaye writes:
>
> Xavier> gdb version: 7.3
> Xavier> In the second gdb/mi test of the following two tests, gdb/mi writes
> Xavier> the "No source file named foo.c.\n" message to the log stream.
>
> Xavier> The gdb/mi documentation states at section "24.4.2 GDB/MI Stream
> Xavier> Records" that "The log stream contains debugging messages being
> Xavier> produced by GDB's internals.". The above message is not a debugging
> Xavier> message. So, is the gdb/mi documentation wrong, or should this message
> Xavier> be written to the console output stream instead, or am I missing
> Xavier> something else ?
>
> I tend to think it should be written to the console output stream.


The above gdb/mi log stream message is written by the statement
"exception_print (gdb_stderr, e)" in create_breakpoint().

The function mi_interpreter_init() creates the mi output streams:

  ...
  /* Create MI channels */
  mi->out = mi_console_file_new (raw_stdout, "~", '"');
  mi->err = mi_console_file_new (raw_stdout, "&", '"');
  mi->log = mi->err;
  ...

The function mi_interpreter_resume() maps the gdb streams to the mi
streams:

  ...
  gdb_stdout = mi->out;
  /* Route error and log output through the MI */
  gdb_stderr = mi->err;
  gdb_stdlog = mi->log;
  ...

Since mi->err and mi->log are the same stream, it seems that gdb/mi
writes gdb_stdlog debugging messages and gdb_stderr error messages to
the same stream, which would explain this problem.


Xavier


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