Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Jan Kratochvil <jan.kratochvil@redhat.com>
To: "Metzger, Markus T" <markus.t.metzger@intel.com>
Cc: "gdb-patches@sourceware.org" <gdb-patches@sourceware.org>,
	       "markus.t.metzger@gmail.com" <markus.t.metzger@gmail.com>,
	       "palves@redhat.com" <palves@redhat.com>,
	       "tromey@redhat.com" <tromey@redhat.com>,
	       "kettenis@gnu.org" <kettenis@gnu.org>
Subject: Re: [patch v4 00/13] branch tracing support for Atom
Date: Tue, 27 Nov 2012 15:36:00 -0000	[thread overview]
Message-ID: <20121127153603.GA1899@host2.jankratochvil.net> (raw)
In-Reply-To: <20121127143235.GA31270@host2.jankratochvil.net>

On Tue, 27 Nov 2012 15:32:35 +0100, Jan Kratochvil wrote:
> On Tue, 27 Nov 2012 15:25:39 +0100, Metzger, Markus T wrote:
> > I would also expect problems with stepping, since we won't be able to fake
> > a back trace using branch trace data. I don't expect that commands like
> > reverse-next, next, and finish would work without special cases for btrace.
> 
> It is true these commands implemented on btrace would need to disassemble x86*
> instructions (like reverse-execution does for the memory recording purpose),
> as you state backtrace is not available there which they depend upon.
> It would be a larger work.

When thinking about it you can "easily" create backtrace at any point in time
backwards as long as you check for call and ret instructions at each recorded
PC.

Then you would create virtual btrace frames similarly like inline-frame.c and
dwarf2-frame-tailcall.c do.  Then the finish/reverse-finish/next/reverse-next
commands will work automatically from those virtual frames.  One could even
give proper frame addresses (SP) to the frames thanks to CFI (.eh_frame) valid
at each instruction (as long as gcc -fasynchronous-unwind-tables is used).

This all could be acceptably fast with no additional overhead during recording.


Regards,
Jan


  parent reply	other threads:[~2012-11-27 15:36 UTC|newest]

Thread overview: 67+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-11-27 10:50 markus.t.metzger
2012-11-27 10:49 ` [patch v4 01/13] disas: add precise instructions flag markus.t.metzger
2012-11-27 16:49   ` Pedro Alves
2012-11-27 16:52     ` Jan Kratochvil
2012-11-27 16:56       ` Pedro Alves
2012-11-27 17:26     ` Metzger, Markus T
2012-11-27 17:33       ` Pedro Alves
2012-11-28 14:44         ` Metzger, Markus T
2012-11-27 10:49 ` [patch v4 03/13] cli, btrace: add btrace cli markus.t.metzger
2012-11-27 21:53   ` Tom Tromey
2012-11-30 15:09     ` Metzger, Markus T
2012-11-30 15:16       ` Jan Kratochvil
2012-11-30 15:23         ` Metzger, Markus T
2012-11-27 10:50 ` [patch v4 08/13] remote, btrace: add branch trace remote ops markus.t.metzger
2012-11-28 19:23   ` Pedro Alves
2012-12-04 12:47     ` Metzger, Markus T
2012-11-27 10:50 ` [patch v4 06/13] linux, i386, amd64: enable btrace for 32bit and 64bit linux native markus.t.metzger
2012-11-28 18:40   ` Pedro Alves
2012-12-03 16:24     ` Metzger, Markus T
2012-11-27 10:50 ` [patch v4 13/13] btrace, x86: restrict to Atom markus.t.metzger
2012-11-27 11:19   ` Mark Kettenis
2012-11-27 11:49     ` Metzger, Markus T
2012-11-27 14:42       ` Mark Kettenis
2012-11-27 15:14         ` Metzger, Markus T
2012-11-27 15:32           ` Pedro Alves
2012-11-27 13:05   ` Jan Kratochvil
2012-11-27 14:04     ` Metzger, Markus T
2012-11-27 14:29       ` Jan Kratochvil
2012-11-27 15:14         ` Metzger, Markus T
2012-11-27 15:50           ` Pedro Alves
2012-11-27 15:54             ` Metzger, Markus T
2012-12-06 10:15         ` Metzger, Markus T
2012-11-27 10:50 ` [patch v4 10/13] gdbserver, linux, btrace: add btrace support for linux-low markus.t.metzger
2012-11-28 20:44   ` Pedro Alves
2012-12-05  9:27     ` Metzger, Markus T
2012-11-27 10:50 ` [patch v4 11/13] test, btrace: add branch tracing tests markus.t.metzger
2012-11-27 10:50 ` [patch v4 05/13] linux, btrace: perf_event based branch tracing markus.t.metzger
2012-11-28 17:31   ` Pedro Alves
2012-12-03 14:38     ` Metzger, Markus T
2012-11-27 10:50 ` [patch v4 09/13] gdbserver, btrace: add generic btrace support markus.t.metzger
2012-11-28 20:32   ` Pedro Alves
2012-12-04 14:50     ` Metzger, Markus T
2012-11-27 10:50 ` [patch v4 02/13] thread, btrace: add generic branch trace support markus.t.metzger
2012-11-27 18:32   ` Pedro Alves
2012-11-27 18:38     ` Pedro Alves
2012-11-28  0:41       ` Pedro Alves
2012-11-29 16:39     ` Metzger, Markus T
2012-11-27 10:50 ` [patch v4 12/13] test, btrace: more branch tracing tests markus.t.metzger
2012-11-27 10:50 ` [patch v4 07/13] xml, btrace: define btrace xml document style markus.t.metzger
2012-11-28 18:53   ` Pedro Alves
2012-12-04 10:35     ` Metzger, Markus T
2012-11-27 10:50 ` [patch v4 04/13] configure: add check for perf_event header markus.t.metzger
2012-11-28 10:11   ` Pedro Alves
2012-11-28 14:52     ` Metzger, Markus T
2012-11-28 14:55       ` Pedro Alves
2012-11-27 13:11 ` [patch v4 00/13] branch tracing support for Atom Jan Kratochvil
2012-11-27 14:26   ` Metzger, Markus T
2012-11-27 14:32     ` Jan Kratochvil
2012-11-27 14:40       ` Metzger, Markus T
2012-11-27 15:36       ` Jan Kratochvil [this message]
2012-11-27 16:17         ` Metzger, Markus T
2012-11-27 16:28           ` Jan Kratochvil
2012-11-27 17:30             ` Metzger, Markus T
2012-11-27 18:31               ` Jan Kratochvil
2012-11-27 18:56                 ` Markus Metzger
2012-11-28 19:01                   ` Jan Kratochvil
2012-11-29  9:13                     ` Metzger, Markus T

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=20121127153603.GA1899@host2.jankratochvil.net \
    --to=jan.kratochvil@redhat.com \
    --cc=gdb-patches@sourceware.org \
    --cc=kettenis@gnu.org \
    --cc=markus.t.metzger@gmail.com \
    --cc=markus.t.metzger@intel.com \
    --cc=palves@redhat.com \
    --cc=tromey@redhat.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