Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Pedro Alves <palves@redhat.com>
To: Yao Qi <yao@codesourcery.com>
Cc: gdb-patches@sourceware.org
Subject: Re: [patch 5/8] Doc for agent
Date: Fri, 10 Feb 2012 16:28:00 -0000	[thread overview]
Message-ID: <4F3545A2.9020901@redhat.com> (raw)
In-Reply-To: <4F354343.3060302@codesourcery.com>

On 02/10/2012 04:18 PM, Yao Qi wrote:

> The reasons for this kind of design are,
> 
>   #1.  agent, inferior and debugger (GDB or GDBserver) are running
> on the same machine, so protocol doesn't to have to handle machine
> difference, such as endianess, word size, etc.  Binary copy should
> work fine.

Nope, that's not true at all.  Several architectures can run in
different modes (x86 32-bit/64-bit; arm/thumbx big/little/mixed; mips; ppc, etc.).
Several architectures have more than one ABI.  We can have e.g., a 64-bit
gdbserver controlling a 32-bit process on x86.  You can have a gdbserver controlling
an inferior that's running a different endianness on some machines.

The current IPA has the limitation that fast tracepoints only work if the
inferior has the same arch/abi as gdbserver.  If we're adding a new IPC,
and an IPA v2, let's not repeat the mistake.

>   #2.  avoid to transform data twice.  When data is ready, say
> tracepoint, it is efficient to copy data directly, rather than
> transforming to some format, and agent will transform it back later.

Traceframe data is a different matter.  We can open a shared
memory channel for those, for example.  Note traceframes have
a fixed and defined format (so we have the tfile target).

>   #3.  be efficient.  binary presentation is quite compact, and
> memcpy-like operation is efficient as well.

It also doesn't work.  See above.

>   #4.  as close to raw data as possible.  agent is running in the
> same process with inferior, and the same machine with debugger.  The
> process of protocol is like copying parameter from one process to
> another.  We don't have to transform the format of raw data.

The command channel is not the fast path.  You don't need, and shouldn't
be micro-optimizing it.

> It is a piece of new work, I am open to comments.

-- 
Pedro Alves


  reply	other threads:[~2012-02-10 16:28 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-01-23 13:37 [patch 0/8] GDB/GDBserver talks with agents Yao Qi
2012-01-23 13:48 ` [patch 1/8] Generalize interaction with agent in gdb/gdbserver Yao Qi
2012-01-30 11:25   ` Yao Qi
2012-02-09 19:21   ` Pedro Alves
2012-02-14  2:41     ` Yao Qi
2012-02-14 10:16       ` Pedro Alves
2012-01-23 13:50 ` [patch 2/8] Add to_use_agent in target_ops Yao Qi
2012-02-09 19:36   ` Pedro Alves
2012-01-23 13:54 ` [patch 3/8] Command `set agent on|off' Yao Qi
2012-01-23 17:14   ` Eli Zaretskii
2012-01-24  0:28     ` Yao Qi
2012-01-24  5:54       ` Eli Zaretskii
2012-01-26  1:32         ` Yao Qi
2012-02-09 20:19   ` Pedro Alves
2012-01-23 13:58 ` [patch 4/8] `use_agent' for remote and QAgent Yao Qi
2012-01-23 17:17   ` Eli Zaretskii
2012-01-26  2:17     ` Yao Qi
2012-01-26 17:43       ` Eli Zaretskii
2012-02-09 19:55   ` Pedro Alves
2012-01-23 14:03 ` [patch 5/8] Doc for agent Yao Qi
2012-01-23 18:12   ` Eli Zaretskii
2012-01-24  0:51     ` Yao Qi
2012-01-24  8:04       ` Eli Zaretskii
2012-01-26  1:53         ` Yao Qi
2012-01-26 17:15           ` Eli Zaretskii
2012-02-09 19:55   ` Pedro Alves
2012-02-10 13:30     ` Yao Qi
2012-02-10 15:01       ` Pedro Alves
2012-02-10 16:18         ` Yao Qi
2012-02-10 16:28           ` Pedro Alves [this message]
2012-02-23  7:51             ` Yao Qi
2012-02-23 19:50               ` Pedro Alves
2012-01-23 14:07 ` [patch 6/8] Agent's capability Yao Qi
2012-01-24  3:49   ` Yao Qi
2012-02-09 20:09   ` Pedro Alves
2012-02-10 12:25     ` Yao Qi
2012-02-10 12:37       ` Pedro Alves
2012-02-10 13:07         ` Yao Qi
2012-01-23 14:29 ` [patch 7/8] Agent capability for static tracepoint Yao Qi
2012-02-09 20:13   ` Pedro Alves
2012-02-10 14:29     ` Yao Qi
2012-02-10 14:56       ` Pedro Alves
2012-01-23 16:03 ` [patch 8/8] Control agent in testsuite Yao Qi
2012-02-09 20:16   ` Pedro Alves
2012-02-05  4:32 ` [ping] [patch 0/8] GDB/GDBserver talks with agents Yao Qi
2012-02-09 19:02 ` Pedro Alves

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=4F3545A2.9020901@redhat.com \
    --to=palves@redhat.com \
    --cc=gdb-patches@sourceware.org \
    --cc=yao@codesourcery.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