From: Michael Snyder <msnyder@vmware.com>
To: Julian Smith <jsmith@undo-software.com>
Cc: "gdb@sources.redhat.com" <gdb@sources.redhat.com>
Subject: Re: Some questions about gdb's remote protocol and reverse debugging
Date: Tue, 11 Aug 2009 23:24:00 -0000 [thread overview]
Message-ID: <4A81FD36.2040009@vmware.com> (raw)
In-Reply-To: <20090811224401.4d9e8942.jsmith@undo-software.com>
Julian Smith wrote:
> Hello
>
> I've been trying out gdb-cvs's remote protocol, specifically the
> commands for reverse debugging, and i have a couple of questions that i
> was hoping someone might be able to help me with. I'm using Linux on
> x86-32 and x86-64.
Cool, welcome! Join the fun.
> First, if i'm understanding things correctly, gdb appears to default to
> software breakpoints, using the 'Z0' and 'z0' commands and, if these
> aren't supported by the remote target, it then tries to use 'M' and 'm'
> to write breakpoints directly into the inferior's memory.
That's right...
> Is there any way to tell gdb to try to use hardware breakpoints (with
> the 'Z1' and 'z1' commands) before resorting to 'M' and 'm' ? [In the
> environment i'm working in, UndoDB, hardware breakpoints are more
> convenient because they don't require any patching up of %pc, and
> poking breakpoints directly into memory is not supported.]
Not as such, no. You use a different syntax to set a hardware
breakpoint. The command is "hbreak" instead of "break". You
should at least be able to try stuff out with that.
You may need to enable the Z1 packet, like this (I'm not sure
if it's enabled by default):
set remote haredware-breakpoint-packet 1
> Second, am i right in thinking that gdb does things like reverse-step
> and reverse-next by effectively doing many reverse-stepi's (with 'bs'),
> interleaved with 'g' commands to get the registers? If so, are there
> any plans to try to avoid the overhead of this somehow ?
There are only the two actual reverse-execution packets -- 'bs' and
'bc'. Gdb uses them in exactly the same contexts that it would use
's' and 'c' if going forward. As such, "step" is always going to be
implemented as one or more 's' requests, whereas "next" may involve
a mixture of 's' and 'c' requests. The same is true going backward.
Good luck,
Michael
next prev parent reply other threads:[~2009-08-11 23:24 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-08-11 23:00 Julian Smith
2009-08-11 23:24 ` Michael Snyder [this message]
2009-08-11 23:38 ` Daniel Jacobowitz
2009-08-21 10:57 ` Julian Smith
2009-08-21 15:43 ` Jakob Engblom
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=4A81FD36.2040009@vmware.com \
--to=msnyder@vmware.com \
--cc=gdb@sources.redhat.com \
--cc=jsmith@undo-software.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