Edit-and-Continue and running-backward

View: New views
3 Messages — Rating Filter:   Alert me  

Edit-and-Continue and running-backward

by lehe :: Rate this Message:

| View Threaded | Show Only this Message

Hi,
I got two questions about GDB

1. Does GDB has something like "Edit and Continue" as in Visual C++? More specifically, in VC, "Edit and Continue is a time-saving feature that enables you to make changes to your source code while your program is in break mode. When you resume execution of the program by choosing an execution command like Continue or Step, Edit and Continue automatically applies the code changes with some limitations. This allows you to make changes to your code during a debugging session, instead of having to stop, recompile your entire program, and restart the debugging session."

2. How to get the ability to run programs backward? What is "target environment" in this description "If the target environment supports it, gdb can allow you to “rewind” the program by running it backward" and how to make my target environment support it? I am programming sometimes in Linux with emacs or with IDE Code::Blocks.

Thanks in advance!

Re: Edit-and-Continue and running-backward

by Joel Brobecker :: Rate this Message:

| View Threaded | Show Only this Message

> 1. Does GDB has something like "Edit and Continue" as in Visual C++?

The FSF version of GDB currently does not have this capability.
I know that Apple did enhance their version of GDB to support this
feature. If you are running GDB on a Mac, you might want to have
a look at their GDB.

(someone else more familiar with reverse debugging will hopefully answer
your second question)

--
Joel

RE: Edit-and-Continue and running-backward

by Jakob Engblom :: Rate this Message:

| View Threaded | Show Only this Message

> 2. How to get the ability to run programs backward? What is "target
> environment" in this description "If the target environment supports it, gdb
> can allow you to “rewind” the program by running it backward" and how to
> make my target environment support it? I am programming sometimes in Linux
> with emacs or with IDE Code::Blocks.

There is some kind of work on "record and replay" for user-land Linux processes that Teawater is working on.

You can also use hte commercial VmWare and Simics tools to get full-system reverse execution, which are available today.  Both work with any gdb-remote-based system.

Note that edit-and-continue cannot reasonably be combined with reverse execution: what would it mean to back through an execution trace where you change the code underlying it?  You could reasonably back up to some previous point in time, do the patch, and then execute into it. However, you probably will have to consider the point in time of the patch the staring point of your reversible session -- unless the execution substrate can remember and redo and undo the patch as you execute over the patch point in time.


Best regards,

/jakob

_______________________________________________________

Jakob Engblom, PhD, Technical Marketing Manager

Virtutech                   Direct: +46 8 690 07 47  
Drottningholmsvägen 22      Mobile: +46 709 242 646  
11243 Stockholm             Web:    www.virtutech.com
Sweden
________________________________________________________