This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
RE: [patch v8 23/24] record-btrace: show trace from enable location
- From: "Metzger, Markus T" <markus dot t dot metzger at intel dot com>
- To: Pedro Alves <palves at redhat dot com>
- Cc: "jan dot kratochvil at redhat dot com" <jan dot kratochvil at redhat dot com>, "gdb-patches at sourceware dot org" <gdb-patches at sourceware dot org>
- Date: Tue, 17 Dec 2013 13:20:00 +0000
- Subject: RE: [patch v8 23/24] record-btrace: show trace from enable location
- Authentication-results: sourceware.org; auth=none
- References: <1386839747-8860-1-git-send-email-markus dot t dot metzger at intel dot com> <1386839747-8860-24-git-send-email-markus dot t dot metzger at intel dot com> <52AB64F3 dot 3010305 at redhat dot com> <A78C989F6D9628469189715575E55B230AA38D11 at IRSMSX104 dot ger dot corp dot intel dot com> <52AF5763 dot 9050800 at redhat dot com>
> -----Original Message-----
> From: Pedro Alves [mailto:palves@redhat.com]
> Sent: Monday, December 16, 2013 8:41 PM
> >>> After adding incremental updates, we can now add a dummy record for
> the
> >> current
> >>> PC when we enable tracing so we show the trace from the location
> where
> >> branch
> >>> tracing has been enabled.
> >>
> >> Ah, awesome, I was just wondering about that. :-)
> >>
> >> I suppose one can we still access the registers when
> >> inspecting this dummy location, or are the btrace unwinders
> >> preventing that?
> >
> > You can not access registers when you are in the execution history.
> >
> > When we add this dummy record when we enable tracing, you're still
> > outside the execution history, so you can access registers. Also the last
> > instruction will be skipped for all record operations - it corresponds to
> > the current PC and the instruction has not been executed yet.
> >
> > But it allows us to stitch the first trace chunk to this dummy record and
> > thus show the full trace from the enable location.
> >
> > Internally, you're at the same PC if you are replaying and the replay
> > position is at the last instruction or if you are not replaying.
> > The different is that you will be able to access registers and memory
> > only if you are not replaying.
>
> OK, the question was then, would it be wrong to allow
> accessing registers and memory of the live program, if replaying, and
> at that position? Just OOC and for my education, I'm not saying
> it'd be a requirement.
It would be conceptually wrong.
And it would not be necessary, either, since we will never be in
this position when the user gets the prompt. We will only pass
through it internally. When the user gets the prompt, we are
either replaying and we're somewhere in the execution history.
Or we're not replaying and we're at the current location.
> Sorry if the question sounds dumb. I can't actually try out this
> stuff due to broken btrace on my machine, if you'll recall.
That's sad, indeed. For one, this is a really nice feature. And also
it prevents you from finding (and reporting) bugs that I don't find.
Regards,
Markus.
Intel GmbH
Dornacher Strasse 1
85622 Feldkirchen/Muenchen, Deutschland
Sitz der Gesellschaft: Feldkirchen bei Muenchen
Geschaeftsfuehrer: Christian Lamprechter, Hannes Schwaderer, Douglas Lusk
Registergericht: Muenchen HRB 47456
Ust.-IdNr./VAT Registration No.: DE129385895
Citibank Frankfurt a.M. (BLZ 502 109 00) 600119052