From: Daniel Jacobowitz <dan@debian.org>
To: nigel@mips.com
Cc: Carsten Langgaard <carstenl@mips.com>,
Ralf Baechle <ralf@linux-mips.org>,
linux-mips@linux-mips.org
Subject: Re: GDB patch
Date: Tue, 10 Dec 2002 14:32:41 -0500 [thread overview]
Message-ID: <20021210193241.GA15908@nevyn.them.org> (raw)
In-Reply-To: <15862.15924.283825.28108@hendon.algor.co.uk>
On Tue, Dec 10, 2002 at 07:19:16PM +0000, Nigel Stephens wrote:
> > On Tue, Dec 10, 2002 at 01:07:31PM +0100, Carsten Langgaard wrote:
> >
> > > I've attached a patch for gdb-stub.c to make it work better with the
> > > sde-gdb.
> > > These changes should be backwards compatible with a standard gdb, so it
> > > shouldn't break anything.
> > > Ralf, could you please apply it.
> >
> >
> > Strongly object. While I didn't check the implementation, it's nice to
> > see 'X' implemented. And P. But what the heck is this?
> >
> >
> > > @@ -816,13 +839,64 @@
> > > case 'k' :
> > > break; /* do nothing */
> > >
> > > + case 'R':
> > > + /* RNN[:SS], Set the value of CPU register NN (size SS) */
> > > + /* FALL THROUGH */
> >
> >
> > > - /*
> > > - * Reset the whole machine (FIXME: system dependent)
> > > - */
> > > case 'r':
> > > - break;
> > > + /* rNN[:SS] Return the value of CPU register NN (size SS) */
> >
> >
> >
> > We're not making up a protocol here, we're implementing one. R and r
> > don't have anything to do with setting registers.
>
> Hi Dan
>
> Actually Carsten *is* trying to implement a protocol, it's just that
> it's an extension to the gdb remote debug protocol, as used in our
> SDE-MIPS toolchain (viz sde-gdb). Algorithmics (now MIPS Technologies
> UK), always extended the gdb remote debug protocol to support reading
> and writing of single registers, and to support variable register
> sizes (to allow a 64-bit debug stub to inter-work with gdb debugging a
> 32-bit application).
My point is that we implement the GDB protocol, for use with GDB -
implementing random extensions to it is not a good idea. I would
strongly prefer these extensions be discussed on the GDB list before
you try adding them to the CVS tree. Also, I bet Andrew has a
different idea of how the 64/32 thing ought to work than you do. He's
the remote protocol maintainer.
These things should be planned on the GDB side before making yet more
stubs use them.
> When we first implemented these extensions we used the 'R' command to
> write a single register, and 'r' to read one (they weren't then used
> by gdb). Since then the remote protocol has gained the 'P' command to
'R' was added in 1995 according to my records. Really?
> write a single register, so we no longer use 'R' - and it would be
> dangerous to do so since it can restart the target (so you can get rid
> of the special 'R' case, Carsten).
>
> But the standard gdb remote protocol still doesn't have the ability to
> read a single register, so I believe that 'r' (or something like it)
> is a useful addition, which speeds up the remote protocol
> significantly when running over a serial line. And it won't break the
> kernel to add support for this extension.
The protocol does, actually. GDB doesn't _implement_ it, but the
extension is documented in the manual ('p') and I wouldn't be surprised
if Red Hat actually had an implementation somewhere. I recommend the
documentation of the protocol, on the GDB web site.
Also note that `R' is extended restart process; the manual lists `r' as
"restart entire target system". I don't know when that was used but
it's reason enough to stay away from using that letter to read a
register.
--
Daniel Jacobowitz
MontaVista Software Debian GNU/Linux Developer
next prev parent reply other threads:[~2002-12-10 19:32 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-12-10 19:19 GDB patch Nigel Stephens
2002-12-10 19:19 ` Nigel Stephens
2002-12-10 19:32 ` Daniel Jacobowitz [this message]
2002-12-10 20:40 ` Nigel Stephens
2002-12-11 16:52 ` Daniel Jacobowitz
2002-12-11 17:24 ` Nigel Stephens
2002-12-11 17:56 ` Daniel Jacobowitz
-- strict thread matches above, loose matches on Subject: below --
2002-12-10 12:07 Carsten Langgaard
2002-12-10 16:51 ` Daniel Jacobowitz
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=20021210193241.GA15908@nevyn.them.org \
--to=dan@debian.org \
--cc=carstenl@mips.com \
--cc=linux-mips@linux-mips.org \
--cc=nigel@mips.com \
--cc=ralf@linux-mips.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