Re: reverse for GDB/MI

teawater
2009-01-21T05:23:31Z

Thanks for the great work that your guys doing. :)

On Wed, Jan 21, 2009 at 02:19, Marc Khouzam <marc.khouzam@ericsson.com> wrote:
> Hi,
>
> I am hoping this request can help restart the process
> of getting the reverse MI commands approved.
>
> I have applied the patches of Process Record and Replay
> and have built myself a nice GDB that can do reverse debugging
> on Linux.
>
> I then implemented the corresponding support in DSF-GDB
> (soon to be committed.) However, I ran into some MI limitations
> (explanation below for those interested) which make me need
> the MI Commands for Reverse debugging.
>
> A patch for these commands was submitted in
> http://sourceware.org/ml/gdb-patches/2008-12/msg00276.html
> but there were many discussions after, which did not seem to
> conclude.
>
> The details of my troubles follow:
>
> With no MI commands for Reverse I tried to use CLI commands
> but ran into a bug causing incomplete MI *stopped event when using CLI commands.
> http://sourceware.org/ml/gdb/2008-12/msg00058.html
>
> As per Nick's finding, I tried Async mode to work around *stopped event bug but
> realized Process Record and Replay does not support Async.
>
> So, the solution I currently have is to use "set execution-direction" and the
> MI commands for execution. For example, to perform a 'reverse-continue' from
> DSF-GDB I have to do the set of three commands:
>
> set execution-direction reverse
> -exec-continue
> set execution-direction forward
>
> It would be nice to have the reverse MI commands :-)
>
> Thanks
>
> Marc
>
>> -----Original Message-----
>> From: gdb-patches-owner@sourceware.org
>> [mailto:gdb-patches-owner@sourceware.org] On Behalf Of Jakob Engblom
>> Sent: Saturday, January 03, 2009 1:09 PM
>> To: gdb-patches@sources.redhat.com
>> Subject: RE: reverse for GDB/MI
>>
>>
>> > Hi,
>> >
>> > It was pointed out to me that people who have been doing reversible
>> > debug for a while seems to
>> > have specific commands for reverse debugging and they do
>> have a command
>> > for "go to time point P".
>> > For example http://www.undo-software.com/undodb_man.html:
>> >
>> > bgoton <number>
>> > Move forwards or backwards to the specified time, in simulated
>> > nanoseconds.
>> > bgoton +<number> | -<number>
>> > Step forward/backward the specified number of simulated nanoseconds.
>>
>> Simics has it to, in some different ways:
>>
>> skip-to <bookmark>
>> reverse n time units
>> continue n time units
>>
>> I think this is a good example of the kind of new commands
>> and abilities that
>> come with having a reverse ability in the first place, like
>> Marc said.
>>
>> And as the later discussion evolved, it would be jolly nice
>> to have an idea of
>> time in gdb. I think that is needed anyway to handle
>> multicore, multiprocessor,
>> and multithreaded debug: when things happen in disparate
>> locations under the
>> control of a single debugger quickly gets very interesting...
>>
>> Best regards,
>>
>> /jakob
>>
>> _______________________________________________________
>>
>> Jakob Engblom, PhD, Technical Marketing Manager
>>
>> Virtutech Direct: +46 8 690 07 47
>> Drottningholmsvägen 14 Mobile: +46 709 242 646
>> 11243 Stockholm Web: www.virtutech.com
>> Sweden
>> ________________________________________________________
>>
>>
>>
>>
>