This is the mail archive of the
mailing list for the GDB project.
RE: [PATCH v2 17/17] infrun: scheduler-locking reverse
- From: "Metzger, Markus T" <markus dot t dot metzger at intel dot com>
- To: Eli Zaretskii <eliz at gnu dot org>, Pedro Alves <palves at redhat dot com>
- Cc: "gdb-patches at sourceware dot org" <gdb-patches at sourceware dot org>
- Date: Wed, 16 Sep 2015 12:27:42 +0000
- Subject: RE: [PATCH v2 17/17] infrun: scheduler-locking reverse
- Authentication-results: sourceware.org; auth=none
- References: <1441954298-25298-1-git-send-email-markus dot t dot metzger at intel dot com> <1441954298-25298-18-git-send-email-markus dot t dot metzger at intel dot com> <83io7h4eze dot fsf at gnu dot org> <55F2970D dot 6040603 at redhat dot com> <838u8d49d3 dot fsf at gnu dot org>
> -----Original Message-----
> From: Eli Zaretskii [mailto:email@example.com]
> Sent: Friday, September 11, 2015 11:02 AM
> To: Pedro Alves
> Cc: Metzger, Markus T; firstname.lastname@example.org
> Subject: Re: [PATCH v2 17/17] infrun: scheduler-locking reverse
> > Date: Fri, 11 Sep 2015 09:55:41 +0100
> > From: Pedro Alves <email@example.com>
> > CC: firstname.lastname@example.org
The second paragraph of  says "When this [record] target is in use, if the
execution log includes the record for the next instruction, gdb will debug in
Following this definition of "replay mode", I agree with Eli's first suggestion
to call the new scheduler-locking mode "replay".
I'm avoiding the term "replay" since esp. record btrace does not replay in the
sense of "re-execute the program". All it does is move the PC around. Record
full does a bit more but it is still not re-executing the program.
> > I'll admit that when reviewing this, I also noticed that the setting
> > applies both when stepping backwards, and when replaying forward,
> > and wondered whether that would be confusing.
> > Do we call reverse execution "replay" too? The docs are a bit confusing
> > on this, sometimes it looks like we do, sometimes not. E.g., 
> > When debugging in the reverse direction, gdb will work in replay mode as
> > long as the execution log includes the record for the previous instruction;
> > otherwise, it will work in record mode, if the platform supports reverse
> > execution, or stop if not.
> >  - https://sourceware.org/gdb/onlinedocs/gdb/Process-Record-and-
> > I think the "If the platform supports reverse execution" part is talking
> > about when the remote target supports reverse debugging directly,
> > like e.g., Qemu / Simics / VMWare(?).
> > But then it seems confusing to call reverse stepping "record mode",
> > as in "if it's rewinding time, what it is recording??".
It looks like "replay" mode means that GDB is executing from its (own)
execution log; "record" mode means that GDB is extending its execution
Traditionally, GDB records when stepping forward from the end of the
execution log. On targets that support native reverse-stepping, however,
GDB is able to extend its execution log also when stepping backward from
the beginning of GDB's execution log.
This doesn't work with record btrace.
Intel Deutschland GmbH
Registered Address: Am Campeon 10-12, 85579 Neubiberg, Germany
Tel: +49 89 99 8853-0, www.intel.de
Managing Directors: Christin Eisenschmid, Prof. Dr. Hermann Eul
Chairperson of the Supervisory Board: Tiffany Doon Silva
Registered Office: Munich
Commercial Register: Amtsgericht Muenchen HRB 186928