Re: MI async status output
Bob Rossi <[email protected]>
| Newsgroups | gmane.comp.gdb.devel |
|---|---|
| Message-ID | <20140414103313.GA6159@linux> |
On Fri, Apr 11, 2014 at 08:25:38PM -0400, Bob Rossi wrote:
> On Fri, Apr 11, 2014 at 11:01:40AM +0100, Andrew Burgess wrote:
> > On 10/04/2014 9:12 PM, Bob Rossi wrote:
> > > On Thu, Apr 10, 2014 at 07:00:54PM +0400, Vladimir Prus wrote:
> > >> On 10.04.2014 01:08, Bob Rossi wrote:
> > >>> I'm writing unit tests for my MI parser and was trying to get
> > >>> GDB to output some out of band, async records of type:
> > >>> status-async-output.
> > > ...
> > >>> Does anyone have a simple recipe for getting GDB to output some
> > >>> async status output?
...
> > I did the this:
> > 1. Build hello-world test program
> > 2. Start gdbserver as: gdbserver :1234 helloworld.exe
> > 3. Start gdb as: gdb -i mi helloworld.exe
> > 4. Within gdb:
> > (gdb) -target-select remote :1234
> > (gdb) -target-download
> > # Bunch of +download lines
...
> Thanks! Unfortunately, GDB is dumping invalid MI here.
> ...
> +download,{section=".interp",section-size="28",total-size="2466"}
> ...
> ^done...
> (gdb)
>
> The MI rules are:
> 1)
> +download,{section=".interp",section-size="28",total-size="2466"}
> ^ (+ eaten here)
> status-async-output ==>
> [ token ] "+" async-output nl
>
> 2)
> +download,{section=".interp",section-size="28",total-size="2466"}
> ^ (download eaten by async-class)
> async-output ==>
> async-class ( "," result )*
> async-class ==>
> "stopped" | others (where others includes download i guess)
>
> 3)
> +download,{section=".interp",section-size="28",total-size="2466"}
> ^ (, eaten here)
> async-output ==>
> async-class ( "," result )*
>
> 4) Error here: result must start with a variable name.
> +download,{section=".interp",section-size="28",total-size="2466"}
> ^ (syntax error)
> result ==>
> variable "=" value
> variable ==>
> string
>
> Did I find a bug or is this well known behavior of GDB and MI?
>
> If it's well known behavior, can anyone explain it? It's possible that
> result could be just a 'value' instead of 'variable = value'. In this
> case that would solve the problem perhaps.
>
> Any advice would be appreciated.
Ping.
Bob Rossi