From: Greg Law <glaw@undo-software.com>
To: Jakob Engblom <jakob@virtutech.com>
Cc: 'Michael Snyder' <msnyder@vmware.com>, gdb@sourceware.org
Subject: Re: Simics & reverse execution
Date: Mon, 31 Aug 2009 16:34:00 -0000 [thread overview]
Message-ID: <4A9BF84F.3070404@undo-software.com> (raw)
In-Reply-To: <010b01ca2a3c$7766ca70$66345f50$@com>
Jakob Engblom wrote:
>> Anyway, 8-bytes is not a sufficiently general representation of time for
>> UndoDB. The trouble is, we don't keep a linear cycle count or such like.
>> We could in theory, but it would slow us down. So instead we
>> represent time as a structure.
>
> What exactly is represented here? Some kind of tree of execution?
No, it's essentially a combination of pointers that we know will
uniquely identify a point in history.
>
> If it is a linear execution, couldn't you just map arbitrary points in time to
> integers?
>
> Also, note that as Michael says, the idea here is to have an ID number that
> passes back and forth between gdb and the target, which is then resolved at the
> target.
>
>> So, I think it would be better if the abstract time representation could
>> be an opaque "bag of bits" of arbitrary size.
>>
>> We'd be happy to contribute some patches along these lines, although I
>> don't think we'd be able to do anything in time for the proposed gdb 7
>> branch.
>>
>> What do people think?
>
> I think it might be unnecessary: unless you need more than 2^64 distinct
> bookmarks/points in time tracked, can't you do a local map in your backend
> between gdb logical bookmark IDs and the internal time representation?
>
> Note in that in our case, the "time" is not really that simple... when you
> factor in multithreaded simulation of multiboard targets and temporal
> decoupling, Simics typically has ten different "points in time" active at the
> same time... but for reveexec, we untangle this for the benefit of the user.
I guess my worry is that there would be some kind of ordering associated
with the time values.
That is, we could use such a mapping, as long as no one assumes that you
can do an integer compare of two bookmarks or times to know whether one
is "later" than the other.
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.
Obviously, any opaque bag of bits is going to suffer like that. What we
do currently in UndoDB is to have calls to get a relatively course grain
linear, scalar integer value from an undodb_time_t. It's coarse-grained
in that several close together but distinct points in history (e.g.
adjacent instructions) may get the same scalar value, but in reality not
many, and so it's enough to do binary chops, etc.
Greg
--
Greg Law, Undo Software http://undo-software.com/
next prev parent reply other threads:[~2009-08-31 16:20 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 [this message]
2009-09-01 6:37 ` Jakob Engblom
2009-09-01 13:49 ` Greg Law
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=4A9BF84F.3070404@undo-software.com \
--to=glaw@undo-software.com \
--cc=gdb@sourceware.org \
--cc=jakob@virtutech.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