Community
Participate
Working Groups
Build Identifier: 20090920-1017 Whenever I suggest others to use Eclipse/CDT/CDI for their debugging needs, I get a lot of complaints about the "unusable console". Power users are quite used to type commands in a gdb console for special stuff. Some of them have used gdb directly for years, or a different GUI like Insight/gdb. They often have little snippets of gdb commands somewhere in a notes.txt, that get pasted to the console over and over. Of course, this is nothing that is needed by novices, but experienced users are common in the embedded world :-) The biggest complaints concerning the console in Eclipse are: * no command history (scrolling up through previous commands) * no command repetition with the Return key * no prompt (as a visual sign that a command has finished), see Bug 78368 * no protocol file (to save commands and output for later processing) * no aliases (?) * no auto completion for variable names or other stuff As far as I can see there were no enhancements in these areas with DSF. (Correct me if I'm wrong) So it wouldn't help to switch to DSF/gdb. We discussed that on cdt-dev, there are already some patches available by Giuseppe MONTALTO [giuseppe.montalto@st.com], see topic "Future of debugger console" started 2010-02-24 Reproducible: Always
There's a lot that can be implemented separately from the normal GDB CLI; for instance, GDB exposes enough support to implement the exact same tab completion, by using -interpreter-exec console "complete partly-typed \"command\"" I do not believe a front end can exactly imitate the automatic re-execution of commands with <enter>. GDB has internal state about whether the last command is safe to repeat. But defaulting to repetition wouldn't be all that bad.
Hi all, We have implemented command history and auto completion in our product, and now I found this tracker. What is the status of the proposed patch? It is available? I'd like to compare it with our work, and, if is it useful, we could try to contribute. Best regards, Stefano
(In reply to comment #2) > We have implemented command history and auto completion in our product Nice! > What is the status of the proposed > patch? It is available? I'd like to compare it with our work, and, if is it > useful, we could try to contribute. The current plan is to take a different approach and have GDB provide a separate CLI that Eclipse can hook to. That way, all intelligent console features will be handled by GDB but available to Eclipse. You can follow the discussion here: http://sourceware.org/ml/gdb-patches/2012-07/msg00525.html I'm hoping that such an approach will provide more than command-history and auto-completion. I'm thinking of: Readline features (in-line editing of commands) Repeat last command Smart Prompt Queries This would of course only work using a GDB that supports this new feature. Your contribution would still be useful for older GDBs but also as a solution until that other one is available (which is not garanteed).
We're making progress on a full console. A new patch has been posted for GDB: https://sourceware.org/ml/gdb-patches/2016-02/msg00067.html I will provide a CDT patch using that GDB support.
(In reply to Marc Khouzam from comment #4) > We're making progress on a full console. A new patch has been posted for > GDB: > https://sourceware.org/ml/gdb-patches/2016-02/msg00067.html The GDB support has been committed to GDB's master branch: https://sourceware.org/ml/gdb-patches/2016-06/msg00345.html We are continuing the work in CDT as part of: https://git.eclipse.org/r/#/c/62920/
I have posted a cleaned-up version of the first part of this solution at https://git.eclipse.org/r/#/c/62920/ This version puts the full GDB console in the existing Console view. Review https://git.eclipse.org/r/#/c/77986/ moves the full GDB console to its own view. The patch currently works but needs cleanup.
Note that in https://git.eclipse.org/r/#/c/62920/25/dsf-gdb/org.eclipse.cdt.dsf.gdb/src/org/eclipse/cdt/dsf/gdb/service/GDBBackend_7_12.java I've explicitly disabled the new console for Windows (see GDBBackend_7_12#isFullGdbConsoleSupported()). It would be nice if someone looked into it to see what is needed to make it work. The problem to fix is most probably in CDT's PTY support for Windows. Specifically, when the new GDBBackend_7_12#createPty() calls PTY#validateSlaveName(), the method throws an exception on Windows. That would be the starting point for an investigation.
New Gerrit change created: https://git.eclipse.org/r/79632
New Gerrit change created: https://git.eclipse.org/r/79977
New Gerrit change created: https://git.eclipse.org/r/80220
New Gerrit change created: https://git.eclipse.org/r/80599
New Gerrit change created: https://git.eclipse.org/r/80620
Gerrit change https://git.eclipse.org/r/62920 was merged to [master]. Commit: http://git.eclipse.org/c/cdt/org.eclipse.cdt.git/commit/?id=0caa750ef0b08ebcc7159c41b09304499f967bee
Gerrit change https://git.eclipse.org/r/77986 was merged to [master]. Commit: http://git.eclipse.org/c/cdt/org.eclipse.cdt.git/commit/?id=999c2e97ccbc52b20f10febeb1daa492727019f0
Gerrit change https://git.eclipse.org/r/79566 was merged to [master]. Commit: http://git.eclipse.org/c/cdt/org.eclipse.cdt.git/commit/?id=5e9332c8ab80668f42f115d8a48837fa4ba551a1
Gerrit change https://git.eclipse.org/r/79771 was merged to [master]. Commit: http://git.eclipse.org/c/cdt/org.eclipse.cdt.git/commit/?id=489be2aa59303412afcb5462668df220eb259536
Gerrit change https://git.eclipse.org/r/80220 was merged to [master]. Commit: http://git.eclipse.org/c/cdt/org.eclipse.cdt.git/commit/?id=e9b297390b4586878022a3269f7e83f9f29d74f8
Gerrit change https://git.eclipse.org/r/79632 was merged to [master]. Commit: http://git.eclipse.org/c/cdt/org.eclipse.cdt.git/commit/?id=2388bb65c573fd1a78d7d1a226b9e861a8eaeff6
New Gerrit change created: https://git.eclipse.org/r/80745
New Gerrit change created: https://git.eclipse.org/r/80746
New Gerrit change created: https://git.eclipse.org/r/80989
New Gerrit change created: https://git.eclipse.org/r/80996
Gerrit change https://git.eclipse.org/r/80599 was merged to [master]. Commit: http://git.eclipse.org/c/cdt/org.eclipse.cdt.git/commit/?id=1b7f91a4068a3d72222671539b1c1935b0c13b24
Gerrit change https://git.eclipse.org/r/80745 was merged to [master]. Commit: http://git.eclipse.org/c/cdt/org.eclipse.cdt.git/commit/?id=10381a74e4ee96ac85efe9790fe4d79e162db9c7
Gerrit change https://git.eclipse.org/r/80746 was merged to [master]. Commit: http://git.eclipse.org/c/cdt/org.eclipse.cdt.git/commit/?id=28f290e9d08aee3205b7788d5167c8af44ff10f5
Gerrit change https://git.eclipse.org/r/80989 was merged to [master]. Commit: http://git.eclipse.org/c/cdt/org.eclipse.cdt.git/commit/?id=46d0c9633bc35321e8ee475636da00b3874b1a56
New Gerrit change created: https://git.eclipse.org/r/81134
New Gerrit change created: https://git.eclipse.org/r/81138
New Gerrit change created: https://git.eclipse.org/r/81165
New Gerrit change created: https://git.eclipse.org/r/81403
New Gerrit change created: https://git.eclipse.org/r/81709
Gerrit change https://git.eclipse.org/r/80996 was merged to [master]. Commit: http://git.eclipse.org/c/cdt/org.eclipse.cdt.git/commit/?id=61121782e8ed67b253b9569e1dc64156b024822c
New Gerrit change created: https://git.eclipse.org/r/82400
New Gerrit change created: https://git.eclipse.org/r/82675
New Gerrit change created: https://git.eclipse.org/r/83628
(In reply to Eclipse Genie from comment #35) > New Gerrit change created: https://git.eclipse.org/r/83628 This was a mistake and was abandoned.
Gerrit change https://git.eclipse.org/r/82400 was merged to [master]. Commit: http://git.eclipse.org/c/cdt/org.eclipse.cdt.git/commit/?id=1cfa38948ccbdac251140a8f498eda53c2542c26
Gerrit change https://git.eclipse.org/r/81134 was merged to [master]. Commit: http://git.eclipse.org/c/cdt/org.eclipse.cdt.git/commit/?id=b63adf43dbb4275edb76e439112147095cf53b54
Gerrit change https://git.eclipse.org/r/81138 was merged to [master]. Commit: http://git.eclipse.org/c/cdt/org.eclipse.cdt.git/commit/?id=5ab506c95eb609d8a209570351491c5491993f13
Gerrit change https://git.eclipse.org/r/81165 was merged to [master]. Commit: http://git.eclipse.org/c/cdt/org.eclipse.cdt.git/commit/?id=6c3779d38e0a68173740456bf269905d8084c04b
Gerrit change https://git.eclipse.org/r/81709 was merged to [master]. Commit: http://git.eclipse.org/c/cdt/org.eclipse.cdt.git/commit/?id=cb27913c432da161e2ff325163250ba5092c3089
New Gerrit change created: https://git.eclipse.org/r/84382
New Gerrit change created: https://git.eclipse.org/r/84935
New Gerrit change created: https://git.eclipse.org/r/85057
New Gerrit change created: https://git.eclipse.org/r/85063
Gerrit change https://git.eclipse.org/r/82675 was merged to [master]. Commit: http://git.eclipse.org/c/cdt/org.eclipse.cdt.git/commit/?id=36fd1269194d1dcfba24ef338710b6eb4ca2a9f3
Gerrit change https://git.eclipse.org/r/84382 was merged to [master]. Commit: http://git.eclipse.org/c/cdt/org.eclipse.cdt.git/commit/?id=31f0cc64764cdaf7c6f4961ae7340d88b20ddbbb
Gerrit change https://git.eclipse.org/r/85057 was merged to [master]. Commit: http://git.eclipse.org/c/cdt/org.eclipse.cdt.git/commit/?id=2ae122963cd25ccf94b2b8a54642267d46a56fba
New Gerrit change created: https://git.eclipse.org/r/87079
New Gerrit change created: https://git.eclipse.org/r/87602
New Gerrit change created: https://git.eclipse.org/r/87601
New Gerrit change created: https://git.eclipse.org/r/87600
*** Bug 283661 has been marked as a duplicate of this bug. ***
Gerrit change https://git.eclipse.org/r/87079 was merged to [master]. Commit: http://git.eclipse.org/c/cdt/org.eclipse.cdt.git/commit/?id=576d41fe694f42b59ae8a78a4f085777d45a1ed9
Gerrit change https://git.eclipse.org/r/87600 was merged to [master]. Commit: http://git.eclipse.org/c/cdt/org.eclipse.cdt.git/commit/?id=d780df14c2d6df01d099bc623ba2c26d12eb016b
Gerrit change https://git.eclipse.org/r/87601 was merged to [master]. Commit: http://git.eclipse.org/c/cdt/org.eclipse.cdt.git/commit/?id=c8ce2587e80403a87c4f84402483fd8aa71ba31e
Gerrit change https://git.eclipse.org/r/87602 was merged to [master]. Commit: http://git.eclipse.org/c/cdt/org.eclipse.cdt.git/commit/?id=bfea9deb90ae1e5c8b419386050eb48a455b60dd
The lion-share of this feature was released in 9.2. Some improvements are being contributed for 9.3. From now one let's use new bugs for any improvements.