Re: [patch v4 00/13] branch tracing support for Atom

Jan Kratochvil
2012-11-27T13:11:10Z

On Tue, 27 Nov 2012 11:48:58 +0100, markus.t.metzger@intel.com wrote:
> - "btrace list" prints the blocks that have been traced; one line per block.
[...]
> - "btrace" prints the branch trace disassembly

I see a partially similar reverse execution feature for GDB I use.

There one can easily find the interesting spot using the back-and-forth moving
in the history using reverse-next, reverse-step, reverse-finish, but even
finding back the spot by regular step/next/finish (only stepping in history).

But with reverse execution one (I) commonly use also watchpoints to find the
spot, which is apparently not applicable with btrace. Also the natural
"backtrace" command would not work with btrace. While the most correct way
would be to make all memory as <unavailable> in practice one may want to print
variables when stepping in the btrace history so there could be an exception
for "print" command to temporarily make memory available with a warning.
Just such an idea.

Reverse execution does not have such feature of the "listing" of its history.
So unifying their interface could provide both "reverse-*" commands
functionality with btrace and "listing" of the reverse-execution history.

Being used to reverse execution I find more natural to "reverse-step" to look
where the inferior was before a moment.

But not sure if unifying btrace with reverse execution is a good idea at all
having no practical experience with btrace yet.

Thanks,
Jan