This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
RE: [PATCH v9 29/29] record-btrace: add (reverse-)stepping support
- 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>, Eli Zaretskii <eliz at gnu dot org>
- Date: Fri, 20 Dec 2013 14:47:16 +0000
- Subject: RE: [PATCH v9 29/29] record-btrace: add (reverse-)stepping support
- Authentication-results: sourceware.org; auth=none
- References: <1387471499-29444-1-git-send-email-markus dot t dot metzger at intel dot com> <1387471499-29444-30-git-send-email-markus dot t dot metzger at intel dot com> <52B3529E dot 70407 at redhat dot com> <A78C989F6D9628469189715575E55B230AA3BA2A at IRSMSX104 dot ger dot corp dot intel dot com>
> -----Original Message-----
> From: Metzger, Markus T
> Sent: Friday, December 20, 2013 3:37 PM
> To: Pedro Alves
> > This really shouldn't be necessary, given target_resume does
> > it for you. If you still needed, you're papering over some
> > problem.
>
> If we start replaying in to_wait, we'll call get_current_frame
> to fix up some stepping related frames. This will be done on
> the current PC.
>
> When we step later on in record_btrace_step_thread, we change
> the replay position but not the PC.
>
> I guess it will be more clear when I move this into
> record_btrace_step_thread and change the comment.
I moved it to record_btrace_start_replaying:
@@ -1406,15 +1405,15 @@ record_btrace_start_replaying (struct thread_info *tp)
/* Restore the previous execution state. */
set_executing (tp->ptid, executing);
+ /* Invalidate registers again. If this is called on the to_wait path,
+ we expect registers still invalid from to_resume. */
+ registers_changed_ptid (tp->ptid);
+
if (except.reason < 0)
{
xfree (btinfo->replay);
btinfo->replay = NULL;
- /* Avoid stale frames based on branch trace unwinding. */
- registers_changed_ptid (tp->ptid);
- get_current_frame ();
-
throw_exception (except);
}
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