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
prev 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