From: jtc@redback.com (J.T. Conklin)
To: Stephen Smith <ischis2@home.com>
Cc: Andrew Cagney <ac131313@cygnus.com>, GDB <gdb@sources.redhat.com>,
Kevin Buettner <kevinb@cygnus.com>,
Michael Elizabeth Chastain <chastain@cygnus.com>
Subject: Re: GDB's remote protocol: My proposed extention
Date: Wed, 21 Mar 2001 15:59:00 -0000 [thread overview]
Message-ID: <5mofuuvlar.fsf@jtc.redback.com> (raw)
In-Reply-To: <3AB90BE2.B3878F54@home.com>
>>>>> "Stephen" == Stephen Smith <ischis2@home.com> writes:
Stephen> Ok, I have been poking around in the GDB code like you
Stephen> suggested and here is my proposal for changes in the remote.c
Stephen> file:
Stephen>
Stephen> 1) Until this is working use an environment variable to
Stephen> turn on this feature * especially since I don't know how
Stephen> to do it right - yet*
Generally, the way the remote protocol is extended is that a new
command is added and that GDB probes for it's existance. If the debug
agent doesn't support it, it returns an empty packet and GDB modifies
it's behavior accordingly. Recently we've been adding knobs so these
new commands can be explicitly disabled or enabled or probed, but the
default is to probe for the feature. I've got a pending patch for
a "step-over-range" command that was submitted a month or so ago. It
might be useful to check the gdb-patches archive for this.
Stephen> 2) Add a "qLibraries" general query. This query would expect
Stephen> a response of the form "sharedLib1, address1; sharedLib2,
Stephen> address2; sharedLib3, address3"
When would GDB issue this command? Whenever the target stops? We
don't want to add latency to the protocol.
Stephen> 3) For each library/address pair in the return, call
Stephen> add_symbol_file_command() from symfile.c. Advantage is
Stephen> that this is a high level function and should be
Stephen> processor/coef/elf independent.
The flip side of this is that if this high level mechanism is used,
support for shared libraries over low level target interfaces will
decay and bit rot.
How will this new interface play with the existing remote shared
library support?
Stephen> 4) Add a "qNewLibraries" general query which would return a
Stephen> `1` or a `0`.
Again, when will this command be issued?
Another issue is that the remote protocol does not handle dropped or
duplicate packets reliably. The NewLibraries query implies the debug
agent keeps state. We fudge things a bit with the breakpoint packets,
but I'm not sure we can do the same here.
Stephen> What do you think?
I prefer GDB using low level accesses (magic breakpoints, memory
reads, etc.) to support shared libraries over having support in the
debug agent. Yes, there is going to be target-specific knowlege in
either solib-foo.c or in the debug agent, and it might be about the
same amount of code; but I like the agent to be as lean and mean as
it can be to minimize the Heisenberg effect. It also means that the
shared library support is going to work regardless of back end.
--jtc
--
J.T. Conklin
RedBack Networks
next prev parent reply other threads:[~2001-03-21 15:59 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-03-21 15:59 GDB's remote protocol: rCommand Stephen Smith
2001-03-21 15:59 ` Andrew Cagney
2001-03-21 15:59 ` GDB's remote protocol: My proposed extention Stephen Smith
2001-03-21 15:59 ` J.T. Conklin [this message]
2001-03-21 15:59 ` GDB's remote protocol: rCommand Eli Zaretskii
2001-03-21 15:59 GDB's remote protocol: My proposed extention Stephen Smith
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=5mofuuvlar.fsf@jtc.redback.com \
--to=jtc@redback.com \
--cc=ac131313@cygnus.com \
--cc=chastain@cygnus.com \
--cc=gdb@sources.redhat.com \
--cc=ischis2@home.com \
--cc=kevinb@cygnus.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