Hi,
CGDB has historically worked with all versions of GDB using the
GDB/Annotations interface. Annotations has been supported by GDB for
forever, so CGDB basically worked with every version of GDB in the wild.
This is a good thing.
However, using Annotations does present significant problems for CGDB.
For instance,
- If the debugged program reads from stdin, CGDB supports this poorly
https://github.com/cgdb/cgdb/issues/244
https://github.com/cgdb/cgdb/issues/209
https://github.com/cgdb/cgdb/issues/193
https://github.com/cgdb/cgdb/issues/130
- Pagination of the console output can not be done properly
https://github.com/cgdb/cgdb/issues/145
- GDB's readline is not 100% compatible
https://github.com/cgdb/cgdb/issues/96
https://github.com/cgdb/cgdb/issues/67
- There are many other subtle inconsistencies attempting to mimic the GDB CLI
- There are many others I've closed as won't fix (as it wasn't possible)
In GDB 7.12, released on Oct 7, 2016, GDB released a new command line
feature 'new-ui'. The release note states,
GDB now supports a new mechanism that allows frontends to provide
fully featured GDB console views, as a better alternative to
building such views on top of the "-interpreter-exec console"
command. See the new "new-ui" command below. With that command,
frontends can now start GDB in the traditional command-line mode
running in an embedded terminal emulator widget, and create a
separate MI interpreter running on a specified i/o device. In this
way, GDB handles line editing, history, tab completion, etc. in the
console all by itself, and the GUI uses the separate MI interpreter
for its own control and synchronization, invisible to the command line.
I took some time recently to modify CGDB to use this new GDB feature.
I like what i see. CGDB's code is simpler and the issues above are resolved.
These improvements come at a cost however, CGDB only works with
relatively recent versions of GDB (7.12 or later).
I'm sending this email to determine if anyone supports or objects to me
moving CGDB to the more modern GDB new-ui architecture. This change in
direction will mean CGDB will have a better integration with GDB but
will only work with versions of GDB 7.12 or above.
Please explain your opinions.
Thanks,
Bob Rossi