This is the mail archive of the gdb@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [patch] htdocs, news, reversible.html


Hi Michael,

Thanks for your works.

> +  <li> paawan oza contributed floating point reverse support for i386

Maybe it should be "Paawan Oza".


Hui




On Tue, Sep 8, 2009 at 05:01, Michael Snyder<msnyder@vmware.com> wrote:
> Hello,
>
> I checked in the attached update to the gdb web page about reverse
> debugging. ?Appologies for not seeking review comments first -- I
> will welcome them now and be glad to post corrections or additions.
>
> Michael
>
> PS -- especially if I neglected to acknowledge anybody or mention
> an existing reverse debug target!
>
>
> Index: index.html
> ===================================================================
> RCS file: /cvs/gdb/htdocs/news/index.html,v
> retrieving revision 1.84
> retrieving revision 1.86
> diff -u -p -r1.84 -r1.86
> --- index.html ?27 Mar 2008 19:16:42 -0000 ? ? ?1.84
> +++ index.html ?7 Sep 2009 17:29:47 -0000 ? ? ? 1.86
> @@ -63,6 +63,19 @@ better.
>
> ?-->
>
> +<dt>September 6, 2009: <b>Update: Reverse Debugging</b></dt>
> +<dd>
> +<p> GDB version 7.0, due to be released later this month, will
> +include the first public releases of reverse debugging and Process
> +Record and Replay. ?See the
> +<a href=http://sourceware.org/gdb/wiki/ReversibleDebugging> wiki page</a>.
> +
> +<p> The GDB maintainers are still looking for contributors interested
> +in helping to extend and develop
> +<a href="reversible.html">reverse debugging</a>.
> +</p>
> +</dd>
> +
> ?<dt>March 27, 2008: <b>GDB 6.8 Released!</b></dt>
> ?<dd>
> ?<p> The latest version of GDB, version 6.8, is available for <a
> @@ -755,7 +768,7 @@ Floor, Boston, MA 02110-1301 USA.</p>
> ?<p>Verbatim copying and distribution of this entire article is
> ?permitted in any medium, provided this notice is preserved.</p>
>
> -<p>Last modified 2008-03-27.</p>
> +<p>Last modified 2009-09-06.</p>
> ?</address>
>
> ?</body>
> Index: reversible.html
> ===================================================================
> RCS file: /cvs/gdb/htdocs/news/reversible.html,v
> retrieving revision 1.4
> retrieving revision 1.5
> diff -u -p -r1.4 -r1.5
> --- reversible.html ? ? 7 Aug 2007 23:48:49 -0000 ? ? ? 1.4
> +++ reversible.html ? ? 7 Sep 2009 01:34:38 -0000 ? ? ? 1.5
> @@ -9,7 +9,7 @@
> ?<link rel="shortcut icon" type="image/x-icon"
> href="../../gdb/images/archer-fish.ico" />
> ?<meta name="keywords" content="gdb" />
>
> -<title>GDB and Reversible Debugging</title>
> +<title>GDB and Reverse Debugging</title>
>
> ?</head>
>
> @@ -41,7 +41,7 @@ Fish]" /></a>
> ?</small>
> ?</center>
>
> -<center><h2>GDB and Reversible Debugging</h2></center>
> +<center><h2>GDB and Reverse Debugging</h2></center>
>
> ?<!-- NB: CURRENT / LATEST refer to the trunk -->
> ?<!-- NB: MOST RECENT refers to the branch -->
> @@ -51,63 +51,82 @@ Fish]" /></a>
>
> ?<h3>Overview</h3>
>
> -<p>Reversible debugging (the ability to "step backwards" through a program)
> -is an obviously powerful tool. ?GDB does not support it today, but the
> -foundations have been laid, and the GDB maintainers are looking for
> -contributors interested in expanding those foundations.</p>
> +<p>GDB version 7.0 (due September 2009) will be the first public release
> +of gdb to support reverse debugging (the ability to make the program
> +being debugged step and continue in reverse). ?See the
> +<a href=http://sourceware.org/gdb/wiki/ReversibleDebugging>wiki page</a>
> +here.
>
> -<h3>Prior work</h3>
> +<p>Presently, only certain target debugging environments will support
> +reverse debugging. ?Those targets currently include:
>
> ?<ul>
> -<li>Michael Snyder (while at Red Hat) contributed a checkpoint/restart
> - ? ?implementation, which works on native GNU/Linux systems for
> - ? ?limited single-threaded programs. ?It uses fork and other system
> - ? ?calls directly in the debuggee to save state. ?This is included in
> - ? ?GDB 6.5.</li>
> -
> -<li>Michael also implemented remote protocol support for communication with
> - ? ?a reversible simulator. ?These patches have not been merged, but they
> - ? ?should be fairly easy to merge; someone interested needs to restart
> - ? ?the discussion. ?Some of the messages from the previous discussion are:
> -
> - ? ?<ul>
> - ? ? ?<li><a
> href="http://sourceware.org/ml/gdb-patches/2006-03/msg00388.html";>
> - ? ? ?http://sourceware.org/ml/gdb-patches/2006-03/msg00388.html</a></li>
> - ? ? ?<li><a
> href="http://sourceware.org/ml/gdb-patches/2006-04/msg00381.html";>
> - ? ? ?http://sourceware.org/ml/gdb-patches/2006-04/msg00381.html</a></li>
> - ? ? ?<li><a
> href="http://sourceware.org/ml/gdb-patches/2006-03/msg00389.html";>
> - ? ? ?http://sourceware.org/ml/gdb-patches/2006-03/msg00389.html</a></li>
> - ? ? ?<li><a
> href="http://sourceware.org/ml/gdb-patches/2006-03/msg00390.html";>
> - ? ? ?http://sourceware.org/ml/gdb-patches/2006-03/msg00390.html</a></li>
> - ? ?</ul></li>
> -
> -<li>Dave Brolley has implemented support for reverse debugging in the Red
> - ? ?Hat "sid" simulator for the xstormy16 architecture:
> -
> - ? ?<ul>
> - ? ? ?<a href="http://sourceware.org/ml/sid/2006-q3/msg00047.html";>
> - ? ? ?http://sourceware.org/ml/sid/2006-q3/msg00047.html</a>
> - ? ?</ul>
> -
> - ? ?(Note that sid is not a GNU project, but it is licensed under the GPL.)
> - ? ?</li>
> -</li>
> + ?<li> Native i386-linux ('target record')
> + ?<li> Native amd64-linux ('target record')
> + ?<li> Several remote targets, including:
> + ?<ul>
> + ? ?<li> <a href=http://moxielogic.org/blog> moxie-elf simulator </a>
> + ? ?<li> <a href=http://www.virtutech.com/getting_started/learn.html>
> + ? ? ? ? Simics </a>
> + ? ?<li> <a href=http://sources.redhat.com/sid> the SID simulator
> (xstormy16 architecture) </a>
> + ? ?<li> <a
> href=http://www.chiark.greenend.org.uk/~pmaydell/chronicle-gdbserver>
> chronicle-gdbserver using valgrind </a>
> + ?</ul>
> ?</ul>
>
> +<p>All of those targets, plus any additional ones in the future, will
> +support a common user interface for reverse debugging in gdb, including
> +the new commands:
> +
> +<ul>
> + ?<li> <b>reverse-continue</b> ('rc') -- Continue program being debugged
> but run it in reverse
> + ?<li> <b>reverse-finish</b> -- Execute backward until just before the
> selected stack frame is called
> + ?<li> <b>reverse-next</b> ('rn') -- Step program backward, proceeding
> through subroutine calls.
> + ?<li> <b>reverse-nexti</b> ('rni') -- Step backward one instruction, but
> proceed through called subroutines.
> + ?<li> <b>reverse-step</b> ('rs') -- Step program backward until it reaches
> the beginning of a previous source line
> + ?<li> <b>reverse-stepi</b> -- Step backward exactly one instruction
> + ?<li> <b>set exec-direction (forward/reverse)</b> -- Set direction of
> execution.<br>
> + ? ? ? All subsequent execution commands (continue, step, until etc.) will
> run the program being debugged in the selected direction.
> +</ul>
> +
> +<p>Breakpoints and watchpoints will work in reverse -- allowing you for
> +instance to proceed directly to the previous point at which a variable
> +was modified.
> +
> ?<h3>Still to do</h3>
>
> -<p>Once the basic commands are in GDB, it should be a simple matter of
> -programming to add support for this to various existing GNU simulators. ?It
> -could also be added either to native targets (perhaps based on the
> checkpoint /
> -restart functionality) or to other third-party simulators for GNU/Linux and
> -other platforms (such as valgrind, sid, or qemu).</p>
> -
> -<p>For the highest fidelity of reversible userspace debugging, some
> -work on Linux and other kernels might also go a long way.</p>
> -
> -<p>The FSF and the GDB maintainers are interested in GDB contributions
> -in this area. ?If anyone reading this is likewise interested in
> -contributing to it, we would welcome your help!</p>
> +<p>Now that the core GDB contains support for reverse debugging, it should
> +be possible to add revese execution support to existing GNU simulators
> +such as the ones built into GDB, as well as non-GNU targets such as
> +valgrind, SID, and qemu.
> +
> +<p>For greater performance and fidelity in userspace and/or kernel reverse
> +debugging, some work on GNU/Linux as well as other open source kernels
> +might be done.
> +
> +<p>The built-in GDB target 'Process Record / Replay' currently only
> supports
> +native reverse debugging on three platforms (i386-linux, amd64-linux, and
> +moxie-elf). ?Volunteers are needed to extend this functionality to other
> +GNU/Linux platforms, and even to other operating systems.
> +
> +<p>The FSF and GDB maintainers are eagerly seeking new volunteers and
> +contributions in this area. ?If anyone reading this is interested in
> +contributing to this leading edge area of research and development,
> +we would welcome your help!
> +
> +<h3>Acknowledgements</h3>
> +<ul>
> + ?<li> Tomas Holmberg contributed MI support for reverse debugging in
> Eclipse
> + ?<li> paawan oza contributed floating point reverse support for i386
> + ?<li> Anthony Green contributed a process record port for moxie-elf
> + ?<li> Hui Zhu contributed a process record port for amd64-linux
> + ?<li> Hui Zhu contributed the process record framework, along with
> + ? ? ? the original port for i386-linux
> + ?<li> Dave Brolley contributed a reversible SID simulator for
> xstormy16<br>
> + ? ? ? (Note that sid is not a GNU project, but it is licensed under the
> GPL.)
> + ?<li> Michael Snyder contributed the core gdb framework for reverse
> debugging
> + ?<li> All of the gdb maintainers are to be thanked for invaluable
> + ? ? ? discussion, suggestions, and code review.
> +</ul>
>
> ?<!-- /body, update below using ../../gdb/index.sh -->
>
> @@ -150,7 +169,7 @@ Floor, Boston, MA 02110-1301 USA.</p>
> ?<p>Verbatim copying and distribution of this entire article is
> ?permitted in any medium, provided this notice is preserved.</p>
>
> -<p>Last modified 2007-07-31.</p>
> +<p>Last modified 2009-09-06.</p>
> ?</address>
>
> ?</body>
>
>


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]