Mirror of the gdb mailing list
 help / color / mirror / Atom feed
From: Michael Snyder <msnyder@redhat.com>
To: gdb@sources.redhat.com
Cc: Johan Rydberg <jrydberg@virtutech.com>,
	        "Frank Ch. Eigler" <fche@redhat.com>,
	        Dave Brolley <brolley@redhat.com>,
	Eric Bachalo <ebachalo@redhat.com>
Subject: Return to Reverse Execution
Date: Wed, 04 Jan 2006 21:01:00 -0000	[thread overview]
Message-ID: <43BC376F.4000307@redhat.com> (raw)

Over the past several months, there's been some great discussion
of this topic, and even some trial patches sent out for comment.

I'd like to start preparing a real submission for approval.
I'm testing the waters now, to see how close we may be to
converging on an acceptable interface spec.

So here is my proposed gdb user interface.
   1) A set of new commands that mimic the existing ones,
   to include:
	reverse-step (rs)
	reverse-next (rn)
	reverse-continue (rc)
	reverse-finish (rf)

   2) A mode setting that will cause all execution commands
   to be performed in reverse:
	set exec-direction [forward backward]

That gives users the choice of backing up once, or continuously.

Here's my proposed target vector interface:

   target_ops.to_set_exec_direction (int);

This keeps the target vector simple -- no need for discreet
vectors for reverse-proceed, reverse-wait etc.  If the target
doesn't export this method, it cannot go backwards.

And here's my proposed remote protocol interface:

New requests:  "bs" (backward step), and "bc" (backward continue).
Unlike the forward versions, they will not carry an argument for
a signal number to be passed to the target -- can't think how we
would implement signals in reverse...

Comment?


Footnote: I'm making this an interface spec, specifically to avoid
tying it to any model of implementation.  My idea is that GDB (core)
does not know *how* the target implements reverse execution -- and
does not care.  It could be by using checkpoints, it could be that
most of the work is done on the gdb side, or that most of the work
is done on the remote side.  The interface makes this invisible.  It
may work one way for remote, a different way for a direct simulator
interface, and a completely different way for native linux or hpux.
The details will be hidden either in the target module or on the
other side of the target interface (eg. remote protocol).

Postscript: It would probably also be a good idea to make up
an interface spec for checkpoints  --  this proposal doesn't
address that, as I argue that it's orthogonal to reverse execution
(except from the implementation side).




             reply	other threads:[~2006-01-04 21:01 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-01-04 21:01 Michael Snyder [this message]
2006-01-05  5:04 ` Eli Zaretskii
2006-01-06  4:28   ` Michael Snyder
2006-01-06  9:02     ` Eli Zaretskii
2006-01-06 15:19       ` Paul Koning
2006-01-13 16:02         ` Bob Rossi
2006-01-13 19:43           ` Eli Zaretskii
2006-01-06 10:30     ` Dave Korn
2006-01-06 11:17       ` Eli Zaretskii
2006-01-06 12:29         ` Dave Korn
2006-01-06 14:09           ` Eli Zaretskii
2006-01-06 14:12           ` Eli Zaretskii
2006-01-06 16:59           ` Dave Brolley
2006-01-06 19:57 ` Daniel Jacobowitz
2006-01-06 21:51   ` Paul Gilliam
2006-01-06 21:53     ` Daniel Jacobowitz
2006-01-06 22:05       ` Paul Gilliam
2006-01-09  8:41 ` Vladimir Prus
2006-05-16 20:24 ` Julian 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=43BC376F.4000307@redhat.com \
    --to=msnyder@redhat.com \
    --cc=brolley@redhat.com \
    --cc=ebachalo@redhat.com \
    --cc=fche@redhat.com \
    --cc=gdb@sources.redhat.com \
    --cc=jrydberg@virtutech.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