2011-01-17 12 views

risposta

18

Sembra essere un bug non ancora risolto: bug 159803 (deliberato nel mese di settembre 2015, per il CDT 9.0)

Dal Eclipse 3.1 è possibile segnalare EOF (usando CTRL + D/Z - associabile nelle preferenze chiave) nella visualizzazione console e l'ho verificato correttamente con Eclipse 3.2.1 utilizzando una semplice app Java.
CDT d'altra parte non riconosce EOF quando è in vista console.
C'è un'eccezione sebbene.

Se corro un C/C++ locale App e deselezionare "Connect process input & output to a terminal" nella scheda di configurazione principale, la vista della console sarà riconoscerà EOF.

Tuttavia, questa modifica non influisce sulla vista della console quando si è in prospettiva Debug. Quindi, mentre il debugging è ancora impossibile per me inviare un segnale EOF all'applicazione in esecuzione.

Anche se è considerato "risolto", this comment indica che il problema persiste.


Update 4 anni dopo (dicembre 2014), cita Fernando Gonzalez-Sanchezin the comments:

casella Soluzione non è più disponibile nell'interfaccia utente.
Problema che si verifica ancora in OpenSUSE 12 & Eclipse CDT Luna 4.4.1.


aggiornamento di marzo 2015:

Muhammad Annaqeeb menzioni in the comments:

C'è un new workaround mentioned in the bug page:

In Keplero 4.3 eclipse.buildId = 4.3.0.M20130911 -1000 su Linux il problema esiste ancora nella console Java.Ho trovato la seguente soluzione:

"Se si lascia la console per concentrarsi su un'altra visualizzazione, e quindi rimettere a fuoco la console, poi Ctrl - D (EOF) funziona come previsto."

+0

sì questa cosa funziona, ma quando deseleziono "Connetti input e output del processo a un terminale" non riesco a vedere alcun output sulla console. – anon

+0

@Kedar: vero, non è una soluzione perfetta ... – VonC

+1

il trucco ha funzionato nel mio caso! – KawaiKx

0

Un modo si potrebbe prendere in considerazione l'invio di CTRL + D per la console è facendo una piccola iniezione di BASH nei vostri argomenti del programma. aggiungendo qualcosa come "& sleep 10 & & echo -e '\ x04 \ c'>/dev/stdin" per esempio attenderà 10 secondi prima di inviare il comando ctrl-D. sebbene tu possa facilmente modificarlo anche per altre condizioni non basate sul tempo. Inoltre, puoi aprire/dev/stdin dal tuo programma C++ come un file, quindi scrivere il valore 0x04 e poi svuotare per ottenere lo stesso effetto dal tuo programma.

+0

In realtà ho appena realizzato che potresti voler scrivere su "/ dev/console" invece di stdin –

2

Aggiornamento 2015: sto usando eclipse luna 4.4.1 per mac ed EOF continua a non funzionare nella console. Si congela solo eclissi.

5

Ho appena trovato una soluzione a questo problema:

Una volta inserito il vostro input sulla console, fare clic su un'altra finestra (editore, progetti, ecc), poi clicca di nuovo su console. Colpire Ctrl + Z funzionerà ora.

+0

Questa soluzione funziona su Luna. –

+0

Questo metodo funziona su Java (Eclipse Mars)! – partida

Problemi correlati