Mirror of the gdb mailing list
 help / color / mirror / Atom feed
From: Greg Law <glaw@undo-software.com>
To: Jakob Engblom <jakob@virtutech.com>
Cc: 'Michael Snyder' <msnyder@vmware.com>,
	gdb@sourceware.org,   Julian Smith <jsmith@undo-software.com>
Subject: Re: Simics & reverse execution
Date: Tue, 01 Sep 2009 13:49:00 -0000	[thread overview]
Message-ID: <4A9D2650.6080209@undo-software.com> (raw)
In-Reply-To: <025201ca2ace$a9256430$fb702c90$@com>

Jakob Engblom wrote:
>> If the 64 bits of the integer were to be considered 'opaque' and no more
>> than a unique handle onto a point in history, that would be fine.  But
>> such a restriction is unfortunate, because you wouldn't be able to e.g.
>> binary chop history.
> 
> But on which side of the debugger connection would you do this?

I was assuming it would be driven by the gdb side.  One can imagine 
"smart" targets that allow optimized binary chop type stuff.  But it 
seems reasonable to assume that not all targets will have such smarts.

Most important I think is to enable the user to do the binary chop.  It 
might not be a straight-forward thing they're looking for, and in 
general it would be a very useful thing for the user to be able to say, 
essentially, "back a bit, back a bit more, forward a bit".

For that to work we need some way for gdb to know about and be able to 
control a point in history relative to other points in history.

As I mentioned earlier, a way to convert between an opaque handle and a 
scalar value would allow this (this is what UndoDB does right now).  An 
alternative take would be to enable gdb to query and set the percentage 
through recorded history we are right now.  That is, use two interfaces: 
one to get/set an opaque, unique timestamp ID (used for bookmarks) and 
another to get/set the percentage of the way through the record log we 
currently are (to allow e.g. a graphical frontend to implement a 
slide-bar to show where in the record log we are).  The former is 
precise to instruction count (and signals, etc); the latter may not be 
depending on the details of the target.  Actually, percentage is the 
wrong term -- better would be what fraction of the way are we through 
history, e.g. in 1/(2^64) increments, such that half way through 
recorded history would be represented as 2^63.

I don't have strong opinions on exactly how the protocol should express 
this.  But I do think we need a "precise" notion of time (e.g. for 
bookmarks) and a "relative" notion of time (e.g. for displaying a 
slide-bar in a GUI).  If we're to use the same "type" to do both jobs, 
an 8-byte integer is a bit restrictive.  If we're to use different types 
(probably with conversion between the two), then each being an 8-byte 
integer is fine.


Greg
-- 
Greg Law, Undo Software                       http://undo-software.com/


  reply	other threads:[~2009-09-01 13:49 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-08-17  7:42 gdb reverse execution: how to actually run tests for it? Jakob Engblom
2009-08-17  7:58 ` Hui Zhu
2009-08-17 11:33   ` Jakob Engblom
2009-08-17 11:50   ` Jakob Engblom
2009-08-17 11:55     ` Pedro Alves
2009-08-17 15:31       ` Pedro Alves
2009-08-17 15:52         ` Hui Zhu
2009-08-20 17:10           ` Pedro Alves
2009-08-19  7:34         ` Jakob Engblom
2009-08-17 18:24       ` Michael Snyder
2009-08-17 20:08         ` Jakob Engblom
2009-08-17 22:44           ` Michael Snyder
2009-08-19  7:24             ` Jakob Engblom
2009-08-19  8:58             ` Simics & reverse execution Jakob Engblom
2009-08-19 12:29               ` Hui Zhu
2009-08-19 20:03                 ` Jakob Engblom
2009-08-19 20:29                   ` Michael Snyder
2009-08-19 20:44                     ` Daniel Jacobowitz
2009-08-19 21:09                     ` Pedro Alves
2009-08-20  6:54                       ` Jakob Engblom
2009-08-20 15:03                         ` Pedro Alves
2009-08-27  4:44               ` Michael Snyder
2009-08-27  8:17                 ` Jakob Engblom
2009-08-28 11:04                   ` Michael Snyder
2009-08-28 15:17                 ` Greg Law
2009-08-31 13:22                   ` Jakob Engblom
2009-08-31 16:34                     ` Greg Law
2009-09-01  6:37                       ` Jakob Engblom
2009-09-01 13:49                         ` Greg Law [this message]
2009-09-03 19:16                           ` Jakob Engblom
2009-09-04 12:44                             ` Greg Law
2009-09-07  7:16                               ` Jakob Engblom
2009-09-07  8:13                                 ` Greg Law
2009-09-07  8:24                                   ` Jakob Engblom
2009-09-07 12:06                                     ` Greg Law
2009-09-08  7:21                                       ` Jakob Engblom
2009-09-08 12:08                                         ` Greg Law
2009-09-08 13:02                                           ` Jakob Engblom
2009-09-08 19:11                                             ` Greg Law
2009-09-14  8:26                                               ` Jakob Engblom
2009-09-17  3:07                                                 ` Michael Snyder
2009-08-19  7:24       ` gdb reverse execution: how to actually run tests for it? Jakob Engblom
2009-08-19 15:28         ` Pedro Alves
2009-08-19 16:37           ` Tom Tromey
2009-08-20 13:10             ` Jakob Engblom
2009-08-20 14:50               ` Daniel Jacobowitz
2009-08-20 20:27               ` Michael Snyder
2009-08-20  6:53           ` Hui Zhu

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=4A9D2650.6080209@undo-software.com \
    --to=glaw@undo-software.com \
    --cc=gdb@sourceware.org \
    --cc=jakob@virtutech.com \
    --cc=jsmith@undo-software.com \
    --cc=msnyder@vmware.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