Mirror of the gdb mailing list
 help / color / mirror / Atom feed
From: Vladimir Prus <ghost@cs.msu.su>
To: gdb@sources.redhat.com
Subject: Re: MI -thread-list-ids output issue
Date: Thu, 16 Feb 2006 16:06:00 -0000	[thread overview]
Message-ID: <200602161906.28549.ghost@cs.msu.su> (raw)
In-Reply-To: <20060216155606.GA11681@brasko.net>

On Thursday 16 February 2006 18:56, Bob Rossi wrote:
> On Thu, Feb 16, 2006 at 06:48:01PM +0300, Vladimir Prus wrote:
> > Hello!
> >
> > At the moment, the response to -thread-list-ids looks like this:
> >
> >   ^done,thread-ids={thread-id="3",thread-id="2",thread-id="1"},
> >
> >
> > The grammar says that {} is a tuple, but not that all fields in the tuple
> > have the same name, so it can be only indexed by integer. While this is
> > allowed by the grammar, it's pretty inconvenient.
> >
> > Essentially this will require me to add, in MI parser I use, special
> > operation "treat this as list, even though it looks like a tuple", which
> > is pretty nasty.
> >
> > Maybe, it's still possible to change this output to be:
> >
> >   ^done,thread-ids=["3","2","1"]
> >
> > Or, if changing the existing output is deemed impossible even in this
> > case, what about:
> >
> >   ^done,threads=["3", "2", "1"],
> >         thread-ids={thread-id="3",thread-id="2",thread-id="1"},
>
> Do you have a small C example I can use to generate this output with
> GDB? I would like to use the parser i have written to see if I have the
> same problem you have.

Sure:

  http://websvn.kde.org/branches/work/kdevelop-debugger-mi/tests/threads/

The .cpp extension does not matter -- it's C subset.

The session is:

    -break-insert thread
    ^done,bkpt={number="1",type="breakpoint",disp="keep",
	enabled="y",addr="0x080484ea",func="thread(void*)",
	file="threads.cpp",line="6",times="0"}
    (gdb)
    -exec-run
    ^running
    (gdb)
    ~"[Thread debugging using libthread_db enabled]\n"
    ~"[New Thread -1211476288 (LWP 8708)]\n"
    ~"[New Thread -1211479120 (LWP 8726)]\n"
    ~"[New Thread -1219871824 (LWP 8727)]\n"
    ~"[Switching to Thread -1211479120 (LWP 8726)]\n"
    *stopped,reason="breakpoint-hit",bkptno="1",thread-id="2",
    frame={addr="0x080484ea",func="thread",args=[],file="threads.cpp",
    fullname="........../threads.cpp",
    line="6"}
    (gdb)
    -thread-list-ids
    ^done,thread-ids={thread-id="3",thread-id="2",thread-id="1"},
    number-of-threads="3"
    (gdb)

> Also, you wouldn't be able to change the output of MI in a non-backwards
> compatible way unless a new major version of MI is released. Also, even
> then, it's probably a bad idea.

It might be good idea to start drafting all changes for a new MI version. Not 
that I understand why to change MI if I have to workaround all issues in 
current gdb/MI anyway :-/

- Volodya





      parent reply	other threads:[~2006-02-16 16:06 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-02-16 15:48 Vladimir Prus
2006-02-16 15:56 ` Bob Rossi
2006-02-16 16:03   ` Daniel Jacobowitz
2006-02-16 16:06   ` Vladimir Prus [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200602161906.28549.ghost@cs.msu.su \
    --to=ghost@cs.msu.su \
    --cc=gdb@sources.redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox