Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: "Jakob Engblom" <jakob@virtutech.com>
To: "'Greg Law'" <glaw@undo-software.com>, 	"'Eli Zaretskii'" <eliz@gnu.org>
Cc: <gdb-patches@sourceware.org>
Subject: RE: GDB MI Reverse Commands added [2 of 3]
Date: Sat, 29 Aug 2009 07:37:00 -0000	[thread overview]
Message-ID: <00c701ca2879$bf7992d0$3e6cb870$@com> (raw)
In-Reply-To: <4A980D06.40002@undo-software.com>

> Yes, that's ok.  But I'm struggling to think of a plausible way in which
> a target could provide reverse debugging without some kind of log.  Any
> stateful program will clobber its state as it runs, and so to go
> backwards you need to have a log somewhere that tells you what the state
> was before you clobbered it.  And it will not be possible to go
> backwards to a time before you started recording.

Easy. Deterministic replay. In the case we are reversing a Simics session that
has no asynch IO from the outside world, there is no log being used. We are just
replaying the same execution scenario from the start.  Typical example: initial
boot of a system.  First, U-Boot comes up, receives scripted input, and fires
off a Linux kernel, which also will not communicate with anything uncontrolled
until the serial terminal is up at the end of the boot. Until that time,
everything is under simulator control and can be replayed without using a log --
all parts of the system, including the network and the simulated DHCP server,
are deterministic in the strongest sense.

So, no, a "log" is not necessarily the implementation of reversible debug.

Normally, a log IS involved if you have asynch interaction with the outside
world, but there are many useful simulations that do not do that. 


A second question here: to me, "inferior" means whatever is being debugged. Is
that a correct interpretation?  So "inferior" can be a piece of firmware, an
operating system, or any other sequence of code to which gdb is attached?  I
think that some people tend to think of it as user-level programs, which is the
common case on desktops, but in the embedded world where I live, most often the
inferior is an entire system... and the user programs might be discovered only
in the debugger UI that faces the user, while gdb is used to communicate with
the taraet machine.  

So I think of "inferior" as not just user programs. Is that OK?

/jakob


  parent reply	other threads:[~2009-08-29  7:24 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-08-26 14:38 Jakob Engblom
2009-08-26 17:38 ` Eli Zaretskii
2009-08-27 13:48   ` Jakob Engblom
2009-08-28 10:05     ` Eli Zaretskii
2009-08-28 10:08   ` Jakob Engblom
2009-08-28 10:49     ` Eli Zaretskii
2009-08-28 13:41       ` Greg Law
2009-08-28 14:28         ` Eli Zaretskii
2009-08-28 17:12           ` Greg Law
2009-08-28 17:34             ` Eli Zaretskii
2009-08-28 18:49               ` Michael Snyder
2009-08-28 21:32                 ` Eli Zaretskii
2009-08-28 23:28                   ` Michael Snyder
2009-08-29  8:12                     ` Eli Zaretskii
2009-08-29 15:19                       ` Eli Zaretskii
2009-08-31 12:14                     ` Jakob Engblom
2009-08-31 13:06                       ` Jakob Engblom
2009-08-31 15:46                         ` Hui Zhu
2009-08-31 16:47                         ` Eli Zaretskii
2009-09-01  6:41                         ` Jakob Engblom
2009-12-15 19:41                         ` Michael Snyder
2009-12-16  8:01                           ` Vladimir Prus
2009-12-16 18:10                             ` Eli Zaretskii
2009-12-16 18:15                           ` Eli Zaretskii
2009-12-16 19:04                             ` Michael Snyder
2009-12-16 20:01                               ` Eli Zaretskii
2009-12-16 20:45                                 ` Vladimir Prus
2009-12-17 20:15                                   ` Eli Zaretskii
2010-02-12 21:36                                     ` Michael Snyder
2009-08-31 17:56                       ` Michael Snyder
2009-09-01  6:37                         ` Jakob Engblom
2009-08-29  7:37             ` Jakob Engblom [this message]
2009-08-28 10:44   ` 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='00c701ca2879$bf7992d0$3e6cb870$@com' \
    --to=jakob@virtutech.com \
    --cc=eliz@gnu.org \
    --cc=gdb-patches@sourceware.org \
    --cc=glaw@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