From 73f8a5908695e96d8ecd5e0fbe9f1ebb16179547 Mon Sep 17 00:00:00 2001 From: Pedro Alves Date: Mon, 22 Apr 2019 12:42:21 +0100 Subject: [PATCH] Improve reverse debugging docs, mention built-in support and supports archs gdb/doc/ChangeLog: 2019-04-22 Pedro Alves * gdb.texinfo (Reverse Execution): Mention and xref process record and replay. Mention remote and system emulators. (Process Record and Replay): List supported architectures. Mention that "record btrace" is only supported on Intel processors. --- gdb/doc/ChangeLog | 8 ++++++++ gdb/doc/gdb.texinfo | 26 +++++++++++++++++++------- 2 files changed, 27 insertions(+), 7 deletions(-) diff --git a/gdb/doc/ChangeLog b/gdb/doc/ChangeLog index 6407327..ba15232 100644 --- a/gdb/doc/ChangeLog +++ b/gdb/doc/ChangeLog @@ -1,3 +1,11 @@ +2019-04-22 Pedro Alves + + * gdb.texinfo (Reverse Execution): Mention and xref process record + and replay. Mention remote and system emulators. + (Process Record and Replay): List supported architectures. + Mention that "record btrace" is only supported on Intel + processors. + 2019-04-17 Alan Hayward * gdb.texinfo (Other Command-Line Arguments for gdbserver) diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo index a3a5f3e..0733e1a 100644 --- a/gdb/doc/gdb.texinfo +++ b/gdb/doc/gdb.texinfo @@ -6697,6 +6697,12 @@ assumes that the memory and registers that the target reports are in a consistant state, but @value{GDBN} accepts whatever it is given. }. +On some platforms, @value{GDBN} has built-in support for reverse +execution, activated with the @code{record} or @code{record btrace} +commands. @xref{Process Record and Replay}. Some remote targets, +typically full system emulators, support reverse execution directly +without requiring any special command. + If you are debugging in a target environment that supports reverse execution, @value{GDBN} provides the following commands. @@ -6817,6 +6823,11 @@ 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. +Currently, process record and replay is supported on ARM, Aarch64, +Moxie, PowerPC, PowerPC64, S/390, and x86 (i386/amd64) running +GNU/Linux. Process record and replay can be used both when native +debugging, and when remote debugging via @code{gdbserver}. + For architecture environments that support process record and replay, @value{GDBN} provides the following commands: @@ -6851,13 +6862,14 @@ replay implementation. This method allows replaying and reverse execution. @item btrace @var{format} -Hardware-supported instruction recording. This method does not record -data. Further, the data is collected in a ring buffer so old data will -be overwritten when the buffer is full. It allows limited reverse -execution. Variables and registers are not available during reverse -execution. In remote debugging, recording continues on disconnect. -Recorded data can be inspected after reconnecting. The recording may -be stopped using @code{record stop}. +Hardware-supported instruction recording, supported on Intel +processors. This method does not record data. Further, the data is +collected in a ring buffer so old data will be overwritten when the +buffer is full. It allows limited reverse execution. Variables and +registers are not available during reverse execution. In remote +debugging, recording continues on disconnect. Recorded data can be +inspected after reconnecting. The recording may be stopped using +@code{record stop}. The recording format can be specified as parameter. Without a parameter the command chooses the recording format. The following recording -- 2.7.4