RFC: MI output during program execution

Jim Ingham jingham@apple.com
Fri Aug 12 17:03:00 GMT 2005


On Aug 11, 2005, at 6:28 PM, Bob Rossi wrote:

>> Remember I haven't done this with observers or events yet.  The way I
>> did it with hooks, the result of the hooks is gathered into the
>> "^done" or the other termination states for the command.  So for
>> instance, if you run gdb on itself, and do:
>>
>
> Hi Jim,
>
> Thanks for all the guidence so far. Even though you have not attempted
> the observer approach, how do you feel about it? Is this something  
> that
> you think could be accomplished with the current FSF GDB? Nick, Daniel
> and Eli, do you like this approach? I'm sure I could find some time to
> get something going in this direction, with a little bit of thought.

This should work fine.  Actually, the "events" that Keith introduced  
seems easier to do, since it looks like there's already an event call  
wherever there is a "deprecated_*_hook" but I am not sure what the  
difference between events & observers is supposed to be...

>
> Anyone else willing to work towards this solution?
>
> I really like Daniel's idea of just alerting the user that  
> something has
> changed, instead of actually giving the user the data. For instance he
> had,
>
>    =breakpoint-changed,[bpnum="1",state="disabled"]
>    =thread-changed,[thread="2"]
>
> I might even prefer,
>    =breakpoint-changed,thread-changed
> which would then allow the FE to call -list-breakpoints or whatever if
> they are interested.

Why?  These sorts of events are never going to have that much data in  
them.  Why would you want to force another round trip just to avoid  
packaging up some data that you already have on hand.  That just  
makes the UI's job more complicated.  For instance, if a breakpoint  
command set a breakpoint and started the target going again,  
currently you are going to have to stop the target to get the  
breakpoint list, which seems silly.  And even if we made "-break- 
info" a command that you can issue while the target is going, what if  
it stopped again between you sending the break info and it getting  
processed.  You will get another async message before you get the  
break info response...

Of course the UI has got to be robust against this sort of thing, but  
I see no reason to make the job arbitrarily complex.

Again, what is your reason for wanting to do this?

Jim


>
> This is very similar to how annotate=2 solved the problem for when
> breakpoints changed. The only wierd issue that happened with this
> approach is that the data breakpoint-changed was literally outputted
> thousands and thousands of times in certain circumstances. (compiled
> program with optimizations).
>
> Thanks,
> Bob Rossi
>



More information about the Gdb-patches mailing list