How to use -list-target-features MI command

Simon Marchi
Mon Apr 23 01:37:00 GMT 2018

Hi Jan,

On 2018-04-09 10:22, Jan Vrany wrote:
> Hi there,
> I need to know (in advance) whether the target supports async
> mode or not.
> I know that -list-target-features can be used for that, but
> not sure when and how to use -list-target-features.
> The documentation says:
> "Whenever a target can change, due to commands such as -target-select,
> -target-attach or -exec-run, the list of target features may change,
> and the frontend should obtain it again."
> However, once I issue `-exec-run` using a target with no async mode
> support, I will not get the result of -list-target-feature before
> debugee stops.

I think that's kind of expected.  If the run target does not support 
mi-async, GDB can't parse and reply to MI commands while the target is 
executing.  GDB reads and replies to your -list-target-features only 
when the target stops.

One way to hack around it would be to use for example the new "starti" 
command, which breaks at (before?) the first instruction of the program, 
issue -list-target-features, and then continue.  There might be some 
better/cleaner solution, but that's what comes to mind right now.

> Another problem is that user may enter CLI command manually. In case,
> how do I find out that target may have changed and I should check for
> features?

I don't see a way right now that you could know about that.  There would 
need to be a new asynchronous event emitted when the target stack 


More information about the Gdb mailing list