This is the mail archive of the
gdb@sourceware.org
mailing list for the GDB project.
Re: Query regarding GDB-Mi interface
- From: Vladimir Prus <vladimir at codesourcery dot com>
- To: gdb at sources dot redhat dot com
- Date: Wed, 30 Jul 2008 10:53:09 +0400
- Subject: Re: Query regarding GDB-Mi interface
- References: <488FFADA.7040306@mentor.com>
Pankaj Pal wrote:
> We have a debugging front end which uses gdb-6.6 We were using
> annotations till now but
> as annotations have been made obsolete we are shifting to MI
> interpreter. I have a few queries regarding MI.
>
> 1) Why few commands are still un implemented like attach,
Because you are using gdb-6.6. The -target-attach command is implemented
in CVS HEAD.
> info program
> etc. Is there any plan to support them.
I don't have any plan to implement MI version of "info program", in part
because I never heard about this command. Why do you need it?
> 2) Is there any way to stop the MI interpreter like we have with
> annotations (set annotate 0 whenever we wish to do so).
What do you mean "stop"? GDB will always accept MI commands, and output
MI outputs if you've started it in MI mode.
> 3) We need 'info line *addr' command when we are shifting to MI from
> annotations. I have been doing few changes in
> the gdb source code to get this information (source file and line
> number), however annotations have this information.
> I would like to know is there any known issue due to which this
> command has not been implemented.
You can use "info line *addr" just fine, even in MI mode.
> 4) In the gdb manual I can see that 'call' command in gdb is equivalent
> to '-data-evaluate-expression' in MI. But with
> annotations, the 'call' command sequence is as follows ::
> ^z^z starting
> --->> do the call command functionality
> ^z^z stopped
>
> However, with MI, we are not getting the 'running' and 'stopped' tokens.
This is by design, at least for now. Emitting *stopped for calling functions in
inferiour might cause the frontend to reload program state again, which will
cause expressions with functions calls to be reevaluated, which will cause
further *stop, etc. Why is this information necessary for you? Note that I've
posted a patch to optionally enable running/stopped notification for function
calls, I just did not press it further due to lack of support.
- Volodya