This is the mail archive of the
gdb@sourceware.org
mailing list for the GDB project.
RE: Testing of reverse debug commands
> -----Original Message-----
> From: Pedro Alves [mailto:pedro@codesourcery.com]
> Sent: July-12-09 3:08 PM
> To: gdb@sourceware.org
> Cc: Marc Khouzam; Michael Snyder; Jan Kratochvil; Joel
> Brobecker; Hui Zhu
> Subject: Re: Testing of reverse debug commands
>
> On Sunday 12 July 2009 19:49:58, Marc Khouzam wrote:
>
> > From a frontend perspective, the current 'record' command
> is not very
> > good.
>
> > First, there is no MI equivalent, although that is not a big deal.
> > But since it does not report error, the frontend must always assumes
> > that
> > the command worked.
>
> Are you sure that is the case with "record"? I see `error' calls
> in record.c:record_open. If there are some missing, let's add them.
As usual you are right. :-)
(gdb) record
&"record\n"
&"Process record target can't debug inferior in asynchronous mode
(target-async).\n"
^error,msg="Process record target can't debug inferior in asynchronous
mode (target-async)."
(gdb)
I had made the assumption that 'record stop' was the same as 'record'.
> > Below you can see that using 'record stop' directly will
> give a ^done
> > instead of an ^error when it fails (although there is an
> error message
> > but we don't parse those in Eclipse). Also, using -interpreter-exec
> > is even worse as even the error message is gone.
>
> Note that "record stop" is really a different command, although
> it shares a common "record" prefix.
>
> >
> > (gdb)
> > record stop
> > &"record stop\n"
> > ~"Process record is not started.\n"
> > ^done
> > (gdb)
>
> > So, I think some improvement would be nice for frontends.
>
> So, is this really an error? Hui seems to have thought
> it wasn't. Hui? If it is, then it's just a matter of
> changing the corresponding printf_unfiltered calls in
> record.c to `error' calls (look for the "Process record
> is..." string).
> Then MI will get an ^error,msg="foo", instead of a ~"foo" + ^done.
That would be more consistent for a frontend. The frontend
can then decide if this should be reported as an error or simply
accepted. But that is not such a big deal anymore, now that
you pointed out 'record' itself does report an error.
Thanks
Marc