How does GDB/MI give the current frame
Andrew Cagney
cagney@gnu.org
Mon Jul 26 21:31:00 GMT 2004
> > > For what it's worth, at Apple we've done what Andrew is proposing. Our
> > > method spits out a "MI_HOOK_RESULT" notification on the ^done result
> > > whenever the console command entered by the user has changed the state
> > > in an important way. e.g.
> > >
> > > (gdb)
> > > -interpreter-exec console-quoted up
> > > ~"#2 0x000321f4 in gdb_main (args=0xbffff620) at
> > > ../../gdb/src/gdb/main.c:851\n"
> > > ~"851\t catch_errors (captured_main, args, \"\", RETURN_MASK_ALL);\n"
> > > ^done,MI_HOOK_RESULT=[HOOK_TYPE="frame_changed",frame="2"],time=
> > > {wallclock="0.00620",user="0.00323",system="0.00283",start="1089921236.3
> > > 59009",end="1089921236.365212"}
> > > (gdb)
> > >
> >
> > But what Andrew is proposing is to use the async-output already part of MI to notify
> > the UI of changes.
>
> Wouldn't the output from "up" would be synchronous? I thought asynchronous output
> only occurs when the inferior is actually running.
Moving forward, that won't be a good assumption. Of the top of my head:
- part of the inferior is still running
- something else also connected to gdb asks gdb to do an "up" (see
moto's question about flushing gdb's internal state when the system is
stopped and hence shouldn't need a flush.)
Andrew
More information about the Gdb
mailing list