GDB/MI output command documentation error

Bob Rossi <[email protected]>
Newsgroups gmane.comp.gdb.devel
Message-ID <20140523012631.GB10166@linux>
Hi,

The documentation for a GDB/MI output command says,

output ==>
    ( out-of-band-record )* [ result-record ] "(gdb)" nl 

Where an out-of-band-record is one or more lines starting with
* + = (for async records)
~ @ & (for stream records)

A result record starts with a ^ (if no token is used).
The result record is after the possible out-of-band-records.

This Documentation is incorrect for the most basic GDB/MI command.
When I provide the GDB/MI command, -exec-run I get the following output.
    =library-unloaded,...
    =library-unloaded,...
    =thread-group-started,...
    =thread-created,...
    ^running                <- Incorrect location or docs are wrong
    *running,...
    (gdb)

In mi-interp.c:mi_on_resume the code says:
  /* To cater for older frontends, emit ^running, but do it only once
     per each command.  We do it here, since at this point we know
     that the target was successfully resumed, and in non-async mode,
     we won't return back to MI interpreter code until the target
     is done running, so delaying the output of "^running" until then
     will make it impossible for frontend to know what's going on.

     In future (MI3), we'll be outputting "^done" here.  */ 
  if (!running_result_record_printed && mi_proceeded)
    {
      fprintf_unfiltered (raw_stdout, "%s^running\n",
              current_token ? current_token : "");
    }

So, I assume we aren't going to change what GDB outputs at this point.
For that reason, I would argue the documentation is wrong.

The correct grammar would be something like,
output ==>
  ( out-of-band-record )* [ result-record ] ( out-of-band-record )* "(gdb)" nl 

Right?

Thanks,
Bob Rossi
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.