Mirror of the gdb mailing list
 help / color / mirror / Atom feed
From: paawan oza <paawan1982@yahoo.com>
To: "Engblom, Jakob" <Jakob.Engblom@windriver.com>, gdb@sourceware.org
Subject: Re: reverse debugging implementation
Date: Thu, 02 Sep 2010 09:44:00 -0000	[thread overview]
Message-ID: <290584.46112.qm@web112507.mail.gq1.yahoo.com> (raw)
In-Reply-To: <C6FAFDDBC4402D44BFC43E57565F021903BA02CF@ala-mail09.corp.ad.wrs.com>

Hi,

I am not sure whether that implementation will improve performance drastically 
compare to existing gdb reversible debuggin implementation.
as
does it involve 

-> stopping at every insn and find out whether insn is changing register or 
memory, and if register then record it (probably not every insn but depends on 
interval and no of memory changing insns)

-> when you want to go back, you go back n-1 and forward execution till 
current-1, that probably involves single steeping which has performance impact.

of course the record for memory is saved as we do not need to save architectural 
state at every insn, but performance !!

Regards,
Oza.




----- Original Message ----
From: "Engblom, Jakob" <Jakob.Engblom@windriver.com>
To: gdb@sourceware.org
Sent: Thu, September 2, 2010 12:18:02 PM
Subject: RE: reverse debugging implementation

> > of memory locations before they are changed. Going back one
> instruction then
> > involves rolling back the memory changes, the registers are set up
> then go
> > forward n-1 instruction to go back one.

If you go back in the gdb mailinglist, you will see that this is exactly
how Wind River Simics does its reverse execution.  Back up to a recent
checkpoint, and then reexecute forward to some point in time.  Silently
record any breakpoints, and if you are running breakpoints backwards, go
back to the checkpoint again and reexecute forward to the point in time
where the breakpoint hits.  

Works very well for a full-system simulator where the entire target
state is encapsulated and controlled.

I believe similar things have been done in the RTL simulation field in
the 1990s, but I have only anecdotal evidence.  If you have
checkpoints/snapshots and a deterministic simulator it is an "obvious"
thing to do.

/jakob


Jakob Engblom | Wind River | Technical Marketing Manager - Simics
Stockholm, Sweden
mobile +46 734 368 958 | email jakob.engblom@windriver.com


      


  reply	other threads:[~2010-09-02  9:44 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-08-22 13:39 David McQuillan
2010-08-25  6:30 ` paawan oza
2010-08-25 18:55   ` David McQuillan
2010-09-02  6:48     ` Engblom, Jakob
2010-09-02  9:44       ` paawan oza [this message]
2010-09-02 12:52         ` Engblom, Jakob
2010-08-25 20:43   ` reverse debugging implementation + commands David McQuillan

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=290584.46112.qm@web112507.mail.gq1.yahoo.com \
    --to=paawan1982@yahoo.com \
    --cc=Jakob.Engblom@windriver.com \
    --cc=gdb@sourceware.org \
    /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