Mirror of the gdb mailing list
 help / color / mirror / Atom feed
From: Dan Shearer <dan@shearer.org>
To: Paul Schlie <schlie@comcast.net>
Cc: gdb@sources.redhat.com
Subject: Re: [discuss] Support for reverse-execution
Date: Fri, 20 May 2005 17:41:00 -0000	[thread overview]
Message-ID: <20050520174133.GT19642@erizo.shearer.org> (raw)
In-Reply-To: <BEB37F34.A391%schlie@comcast.net>

On Fri, May 20, 2005 at 11:49:08AM -0400, Paul Schlie wrote:
> Rather than... presume the intelligence need be "remote" to GDB;
    :
> I wonder if it may be more sensible to consider initially defining the basic
> generic facilities by which GDB may directly support undoable/reversible
> execution, and checkpoint features.

An alternative point of view: right now nobody has deep experience with
reversible debugging and so it seems a little early to make
across-the-board structure changes based on limited understanding.

In the longer term yes, GDB should be able to debug with a sense of
direction and time. But I think it will take quite a bit of
experimentation before we have a clear model of how to do this, and the
only way I can think of for both having a reversible GDB and not
touching GDB too much is by considering remote targets first.

In general I really like the idea of GDB better catering to non-remote
simulators. You'll notice that almost none of the whole-system
simulators in the free software world have integrated debugging and I'd
love to make that easier. It's just that the reversibility property is
new and I think it will take some getting used to.

> More specifically, as ISA semantics do not generally have deterministic
> reciprocal semantics, 

What do you mean by "ISA" in this context?

> Therefore it seems likely sufficient to initially begin by defining
> support for the following core facilities:
> 
> Basic GDB support for check pointing and reverse execution:
> 
> - enable-checkpoints: initializes machine state and program memory to
>   all 0's upon prior to program startup/initialization. (see below)

Isn't this getting out of scope for GDB's current design? If you're
going to provide this meta-system command to the simulator why not
provide others, like "load-image-file <filename>" to initialise the
simulator or "enable-skip-idle" to make the simulator skip idle loops
and other simulator-specific commands.

Again, I like the idea of making GDB closer to simulated environments,
but I think it probably needs to be a specific choice to do this rather
than just as a byproduct of supporting reversibility.

> - (step, next, etc.): as normal, but requests the state-diff from the
>   target stub between successive command executions if reverse-execution
>   flag is enabled. (This may also be supported without target stub support
>   for state-diff, as GDB has direct access to both the target's machine
>   state, and memory state; although target stubs may likely be capable
>   of more efficient diff's if they are capable of tracking memory updates
>   more efficiently than simply looking after the fact.)

Can you explain what kind of a facility you imagine GDB might have to
support doing diffs inherently?

> Basic Target stub facilities to improve reverse execution efficiently:
> 
> - state-diff: the target returns the diff between the target's present
>   state and it's previous state, which may be used if available in lieu
>   of GDB directly calculating machine and memory state diffs, but would
>   likely only be substantially more efficient if the target stub were
>   capable of more efficiently tracking and accumulating diffs by directly
>   monitoring memory state changes, rather than determining them after
>   the fact, as may be done likely efficiently by a target simulator and
>   then simply communicated by publishing the cumulative diffs as requested
>   by GDB; which seems nice and simple, and minimally invasive.)

Unless I've misunderstood you are proposing that GDB have the ability to
accept and manipulate entire memory state and diffs of memory state.
This is quite a large chunk of new functionality.

-- 
Dan Shearer
dan@shearer.org


  reply	other threads:[~2005-05-20 17:41 UTC|newest]

Thread overview: 80+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-05-20 15:49 Paul Schlie
2005-05-20 17:41 ` Dan Shearer [this message]
2005-05-20 22:01   ` Paul Schlie
2005-05-20 22:08     ` Daniel Jacobowitz
2005-05-20 22:43       ` Paul Schlie
2005-05-21  0:58         ` Daniel Jacobowitz
2005-05-21  1:42           ` Paul Schlie
2005-05-21  1:53             ` Daniel Jacobowitz
2005-05-21  1:56               ` Daniel Jacobowitz
2005-05-21 15:03                 ` Paul Schlie
2005-05-21 14:13               ` Paul Schlie
2005-05-21 14:23                 ` Daniel Jacobowitz
2005-05-21 15:04                   ` Paul Schlie
2005-05-20 20:58 ` Michael Snyder
2005-05-20 21:35   ` Paul Schlie
  -- strict thread matches above, loose matches on Subject: below --
2005-05-21 15:53 Paul Schlie
2005-05-20 22:11 Michael Snyder
2005-05-20 23:32 ` Paul Schlie
2005-05-20 21:59 Michael Snyder
2005-05-20 21:51 Michael Snyder
2005-05-21  9:44 ` Eli Zaretskii
2005-05-20 21:44 Michael Snyder
2005-05-20 21:25 Michael Snyder
2005-05-20 21:16 Michael Snyder
2005-05-20 21:31 ` Daniel Jacobowitz
2005-05-21  9:39 ` Eli Zaretskii
2005-05-23 18:19   ` Michael Snyder
2005-05-20 21:11 Michael Snyder
2005-05-20 21:27 ` Daniel Jacobowitz
2005-05-20 19:02 Michael Snyder
2005-05-20 20:43 ` Eli Zaretskii
2005-05-20 21:03   ` Michael Snyder
2005-05-19  1:23 Dan Shearer
2005-05-19 13:01 ` Johan Rydberg
2005-05-19 13:18   ` Daniel Jacobowitz
2005-05-19 13:47     ` Johan Rydberg
2005-05-20 10:37   ` Eli Zaretskii
2005-05-20 11:37     ` Andreas Schwab
2005-05-20 13:18       ` Daniel Jacobowitz
2005-05-20 13:36         ` Fabian Cenedese
2005-05-20 13:47           ` Daniel Jacobowitz
2005-05-20 14:41       ` Eli Zaretskii
2005-05-20 22:14         ` Daniel Jacobowitz
2005-05-20 12:22     ` Johan Rydberg
2005-05-20 13:19       ` Daniel Jacobowitz
2005-05-20 14:12       ` Eli Zaretskii
2005-05-20 13:14     ` Daniel Jacobowitz
2005-05-20 14:34       ` Eli Zaretskii
2005-05-20 15:40       ` Johan Rydberg
2005-05-20 10:47 ` Eli Zaretskii
2005-05-16 17:47 Dan Shearer
2005-05-16 18:04 ` Dan Shearer
2005-05-20 18:15 ` Daniel Jacobowitz
2005-05-21  0:05   ` Frank Ch. Eigler
2005-05-21 10:13     ` Eli Zaretskii
2005-05-21 10:28       ` Russell Shaw
2005-05-21 12:38         ` Eli Zaretskii
2005-05-21 12:55           ` Russell Shaw
2005-05-21 14:39           ` Russell Shaw
2005-05-21 14:19       ` Daniel Jacobowitz
2005-05-21 15:46         ` Eli Zaretskii
2005-05-21 17:43           ` Daniel Jacobowitz
2005-05-23 19:39             ` Dan Shearer
2005-05-12 23:08 Michael Snyder
2005-05-13  6:23 ` Eli Zaretskii
2005-05-19 13:46   ` Daniel Jacobowitz
2005-05-19 18:46     ` Michael Snyder
2005-05-19 19:26       ` Johan Rydberg
2005-05-20 10:55     ` Eli Zaretskii
2005-05-20 13:04       ` Daniel Jacobowitz
2005-05-20 14:30         ` Eli Zaretskii
2005-05-20 14:43           ` Andreas Schwab
2005-05-20 20:48         ` Michael Snyder
2005-05-20 20:51           ` Daniel Jacobowitz
2005-05-20 20:38     ` Michael Snyder
2005-05-20 15:05 ` Vladimir Prus
2005-05-20 15:58   ` Eli Zaretskii
2005-05-20 18:14     ` Daniel Jacobowitz
2005-05-20 18:30       ` Eli Zaretskii
2005-05-20 19:27   ` Stan Shebs

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=20050520174133.GT19642@erizo.shearer.org \
    --to=dan@shearer.org \
    --cc=gdb@sources.redhat.com \
    --cc=schlie@comcast.net \
    /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