RE: [patch v8 23/24] record-btrace: show trace from enable location

Metzger, Markus T
2013-12-16T12:57:34Z

> -----Original Message-----
> From: Pedro Alves [mailto:palves@redhat.com]
> Sent: Friday, December 13, 2013 8:50 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. You will also have normal dward2 frames
in that case. If you are replaying, you will have btrace frames and you
won't be able to access all registers and memory.

In record commands, we stop replaying once we reach the last instruction.

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