This is the mail archive of the gdb@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [discuss] Support for reverse-execution


On Fri, May 20, 2005 at 01:51:31PM +0300, Eli Zaretskii wrote:
> > Date: Thu, 19 May 2005 09:41:50 -0400
> > From: Daniel Jacobowitz <drow@false.org>
> > Cc: Michael Snyder <msnyder@redhat.com>, gdb@sources.redhat.com
> > 
> > > Not "reverse", "backwards" or "back".  "Reverse" will become ambiguous
> > > once we have two possible directions.
> > 
> > Actually I think "reverse" is a more logical term.  Drivers don't
> > seem to get confused when they put a car into reverse
> 
> One can learn anything, given enough practice.  So the fact drivers
> can get accustomed to this doesn't mean it won't be harder for GDB
> users.  Most people don't use GDB as frequently as they drive cars.

But many GDB users drive cars :-)  Anyway let's not go there.  You
think it is ambiguous; I disagree.

> > The program doesn't have a persistant direction.
> 
> I envision that adding this could be a natural extension.  Using
> "backwards" rather than "reverse" will save us from the ambiguity if
> we ever add such a feature.

I really don't think that we should have such a feature.  It seems like
a crummy interface - a resume command which goes either forwards or
backwards in time depending on some global state?  I think that
auto-repeat when you hit return at a GDB prompt is all we want to have,
and we already have that.

> > "back-continue" and "back-next" just don't sound right.
> 
> Neither does "reverse-next".  Perhaps we should use "prev" instead.

It seems to me that if we give them unique names, the logical parallel
with existing commands may be lost.  But perhaps not.  Let's try for
the full set:
	continue	reverse-continue
	step		reverse-step
	next		reverse-next
	stepi		reverse-stepi
	nexti		reverse-nexti
	until		reverse-until
	advance		reverse-advance
	finish		reverse-finish

I think that's the full set of reversible commands.  Which of them
don't work?  I agree that reverse-next is a little weak, but everything
else seems OK.  And we aren't limited to one name for things!  We could
add "prev" as an alias to "next" if you like that.

We could use r-prefixed commands.  I don't think that helps much, since
we're already planning to offer abbreviations like "rs" and "rni", but
they're my second-favorite choice:
  rcontinue, rstep, rnext, rstepi, rnexti, runtil, radvance, rfinish

We could use "backwards" for everything.  Those mostly sound right,
except that backwards has some unfortunate connotations.  I think
that advance and finish come out as particularly odd:
  backwards-continue, backwards-step, backwards-next, backwards-stepi,
  backwards-nexti, backwards-until, backwards-advance, backwards-finish

This one's kind of nice, we could use suffixes instead.  But
next-backwards is very awkward:
  continue-backwards, step-backwards, next-backwards, stepi-backwards,
  nexti-backwards, until-backwards, advance-backwards, finish-backwards

-- 
Daniel Jacobowitz
CodeSourcery, LLC


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]