Passing End of Transmission (Ctrl + D) character in Eclipse CDT console

anon picture anon · Jan 17, 2011 · Viewed 16.4k times · Source

I have a C++ application, to which i need to send an End of Transmission signal.

I can do a Ctrl+D on the console, but when I try that within Eclipse, it doesn't work.

I am using Eclipse Galileo with CDT.

Answer

VonC picture VonC · Jan 17, 2011

It seems to be a not yet resolved bug: bug 159803 (resolved in September 2015, for CDT 9.0)

Since Eclipse 3.1 it is possible to signal EOF (using CTRL + D/Z - bindable in key preferences) in console view, and I tested this successfully with Eclipse 3.2.1 using a simple Java app.
CDT on the other hand will not recognize EOF when in console view.
There is one exception though.

If I run a C/C++ Local App and uncheck "Connect process input & output to a terminal" in the main configuration tab, the console view will recognize EOF.

However, this change does not affect the console view when in the Debug perspective. So while debugging it is still impossible for me to send an EOF signal to the running application.

Even though it is considered "resolved", this comment shows the issue persists.


Update 4 years later (Dec 2014), Fernando Gonzalez-Sanchez mentions in the comments:

Workaround checkbox no longer available in UI.
Problem still happening in OpenSUSE 12 & Eclipse CDT Luna 4.4.1.


Update March 2015:

Muhammad Annaqeeb mentions in the comments:

There is a new workaround mentioned in the bug page:

In Kepler 4.3 eclipse.buildId=4.3.0.M20130911-1000 on Linux the problem still exists in the Java console. I found the following workaround:

"If you leave the console to focus on another view, and then refocus on the console, then Ctrl-D (EOF) works as expected."