Re: GDB/MI questions
Bob Rossi <[email protected]>
| Newsgroups | gmane.comp.gdb.devel |
|---|---|
| Message-ID | <[email protected]> |
On Thu, Jan 19, 2017 at 10:47:21AM -0500, Simon Marchi wrote: > On 2017-01-19 10:11, Bob Rossi wrote: > >I'm just trying to provide the same functionality I did when I was using > >annotations. This was one of the noted differences. > > > >Since the MI differs in this area, I've done as you suggested and > >that works well. I guess I'll see if there are any downsides here. > > > >Thanks, > >Bob Rossi > > From experience (I'd like to be proven wrong), it will be very difficult to > accurately re-create the gdb console "experience" when using MI. The > commands that should or should not repeat is just one example. Consider > history, tab completion, readline bindings (e.g. ctrl-R), pagination, etc. > How does that work with the MI version of cgdb? CGDB links to readline so the interaction is all very similar. > If I understand correctly how annotations work, when the user types, they > are interacting directly with gdb. So when they press tab to get a > completion, it's handled by gdb. With MI, the user interacts with the > front-end, which in turns talk to gdb. So the front-end would have to > re-implement all those features. Yes, CGDB has supported tab completion for a long time. > This is why gdb has this "new-ui" command that Pedro mentioned. Instead of > trying to emulate a gdb console, the front-end can start GDB in standard > console mode (redirecting its i/o to an embedded terminal emulator) and open > a channel on the side with new-ui for MI commands. This way, when using the > console, the user interacts directly with gdb, and gets the real console > experience. I might give that a try. However, since CGDB already has great terminal emulation, it's not a huge deal. The other downside is, CGDB works with lots of GDB's. Using this feature leaves behind many GDBs. Or I'd have to support two modes. Yuck. Thanks, Bob Rossi