From: Yao Qi <yao@codesourcery.com>
To: <gdb-patches@sourceware.org>
Subject: [PATCH 0/5] Preparatory patches for ITSET in GDBserver
Date: Fri, 16 Mar 2012 15:01:00 -0000 [thread overview]
Message-ID: <1331909994-9473-1-git-send-email-yao@codesourcery.com> (raw)
Hi,
This patch series include something that will be used when we support
ITSET in GDBserver, and even in IPA.
I applied Pedro's patches [1] on top of CVS trunk, and move most of ITSET
code to gdb/common/, so that both GDB, GDBserver and IPA supports
ITSET. I am still looking at the regressions in native testing
and remote testing caused by patch 2/14 `running all-stop on top of
non-stop', meanwhile I've queued too many patches in my local tree, so
I think it is good if I:
- Send some refactor patches upstreams first, to reduce the length
of my patch queue, and to be motivated to look at the rest of
regressions :)
- Post my thoughts on supporting ITSET in GDB, GDBserver and IPA, to
get feedbacks as early as possible.
Before explain these patches, I want to explain my design on supporting
ITSET in GDB, GDBserver and IPA. In patch series [1], ITSET is
supported in GDB naturally. When supporting ITSET in GDBserver and IPA,
GDB has to send ITSET to them in some format over RSP and IPA protocol.
One decision we have to make here is the format of ITSET when sending
it. We have two choices here,
- ITSET spec, which is a string. GDB just sends a compiled version
of ITSET (which is still an ITSET, but with different contents, I'll
explain it later). Then GDBserver and IPA should be able to parse
ITSET spec, build up a tree, and evaluate thread/cores on a given
ITSET instance.
- Agent Expression. GDB just transform ITSET from a string format
to agent expression, and send agent expression to GDBsever and IPA.
Agent expression has been supported in GDBserver and IPA, so we may
have to add new opcode specific to ITSET operations, which is hard
to me In ITSET, set is a unit in each operation, such as
INTERSECTION and UNION. Looks hard to operate sets with arbitrary
number of elements in a stack machine model. Then, I give up on
this direction.
Finally I choose the former approach. When GDB sending ITSET, it
"compiles" itset to a new instance of itset which
a) still complies to ITSET spec,
b) replaced thread/inferior information that GDBserver or IPA
understands.
The string of compiled itset is sent over RSP to GDBserver, and
get parsed there. In other words, GDBserver and IPA has
equivalent ITSET functionality compared with GDB, so most of
itset code is moved to gdb/common/. Then, it needs GDBserver
can give similar support in GDB to ITSET code, so these patches
come up.
[1] [RFC/WIP I/T sets V2 PATCH 00/14] I/T sets. http://sourceware.org/ml/gdb-patches/2011-12/msg00550.html
next reply other threads:[~2012-03-16 15:01 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-03-16 15:01 Yao Qi [this message]
2012-03-16 15:01 ` [PATCH 1/5] Define target_core_of_thread in gdbserver Yao Qi
2012-03-16 15:01 ` [PATCH 4/5] move server.h to inferior.h Yao Qi
2012-04-13 17:37 ` Tom Tromey
2012-03-16 15:01 ` [PATCH 3/5] s/struct process_info/struct inferior/ Yao Qi
2012-03-20 16:28 ` Doug Evans
2012-03-20 17:55 ` Pedro Alves
2012-03-20 21:31 ` Doug Evans
2012-03-21 4:27 ` Yao Qi
2012-03-21 3:18 ` Yao Qi
2012-03-16 15:02 ` [PATCH 2/5] Move vec to common/ Yao Qi
2012-03-16 15:02 ` [PATCH 5/5] move server.h to gdbthread.h Yao Qi
2012-04-13 17:43 ` Tom Tromey
2012-04-19 4:35 ` Yao Qi
2012-04-29 6:46 ` [committed]: " Yao Qi
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=1331909994-9473-1-git-send-email-yao@codesourcery.com \
--to=yao@codesourcery.com \
--cc=gdb-patches@sourceware.org \
/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