MI3 and async notifications

Jan Vrany jan.vrany@fit.cvut.cz
Mon Jun 10 21:19:00 GMT 2019


as an user og GDB/MI (and frontent developer), I'd like to 
open a discussion about one aspect of MI that I'd like to change
in MI3 before it is released into the wild. 

Currently, quite a few commands suppress async notifications when
a command is issued through MI. For example, when a breakpoint is 
added using -break-insert then =breakpoint-created is not emitted.

At least in my case, this behavior complicates client design because
now the client has to care for new breakpoints on multiple places:
(i)  listen to breakpoint created events to handle cases where breakpoint
     is added via CLI. 
(ii) do similar processing whenever MI returns ^done for previously 
     issued -break-insert command.
This leads to a complex logic, especially in cases where frontend has
some scripting support (so execution of MI commands is not completely
under frontend developer's control). 

Emitting notifications unconditionally would simplify things a lot 
- again at least in my case. 

Therefore I'd like to propose a change for MI3 to always send notifications. 
If such a change would make things complicated for other frontends 
(Eclipse CDT / Emacs come to mind), I propose new

-gdb-set mi-always-notify 1
-gdb-set mi-always-notify 0

setting to control the behavior so frontends may choose. 

I'm happy to submit a patch. Are there any other frontend developers?
If so, would it be OK to always notify in MI3 or do you prefer to have
an option? Any other comments? 

Thanks! Jan

More information about the Gdb mailing list