2016-03-29 51 views
6

Ho un programma ncurses che mi piacerebbe eseguire il debug interattivo con CLion. Il problema è che quando eseguo il programma in CLion per eseguire il debug, la console integrata in cui viene eseguito il programma non visualizza correttamente l'output del programma ncurses.Programma di esecuzione CLion nel terminale di sistema separato

Mi piacerebbe avere il programma eseguito nel mio terminale di sistema in modo da poter vedere l'output correttamente durante il debug del programma con il debugger di CLions.

C'è un modo per farlo?

risposta

2

In altri debugger, si dovrebbe effettuare l'operazione eseguendo l'applicazione ncurses in un terminale, e allegando il debugger al processo utilizzando ncurses.

In tal modo si evita l'interferenza tra ncurses (che modifica le modalità I/O del terminale) e la riga di comando del debugger.

Il allegare caratteristica è una caratteristica recentemente rilasciato del debugger CLions:

Ulteriori approfondimenti:

3

Il modo migliore per raggiungere questo obiettivo è quello di utilizzare GDB ora può essere davvero frustrante per iniziare così male mostrare come ho realizzato che in linux

  1. aprire un terminale e andare al file di debug del progetto e digitare gdbserver localhost:1234 ./myFile
  2. Clion aperto a progetti myFile e nell'angolo in alto a destra si dovrebbe vedere una fai clic su di esso e vai a "modifica configurazioni"
  3. nell'angolo in alto a sinistra dovresti vedere un segno più, cliccarlo e premere "GDB remote debug"
  4. quindi in "target remoto" digitare tcp:127.0.0.1:1234
  5. Avanti nella "mappature del percorso" premere il plus e digitare /location/to/file/myFile (stesso file come al punto 1.), sia a distanza e posizione
  6. Premere OK e nell'angolo in alto a destra selezionare il nome della configurazione appena fatto e premere debug

potrebbe essere necessario provare a riposare arte il gdbserver ancora una volta affinchè questo funzioni, ma se hai fatto tutti i passaggi precedenti dovresti vedere un prompt di debug apparire e sul terminale dovresti vedere il tuo progetto in esecuzione.

Ci sono alcune limitazioni con questo, ad esempio è sempre necessario eseguire il comando gdbserver localhost:1234 ./myFile sul terminale per farlo funzionare.

Alcuni video/documentazione che mi ha aiutato:

Spero che questo ha aiutato :)

+0

Esiste un modo per connettere il debugger a un processo, quando si avvia? Sto facendo girare il mio progetto 'ncurses' in una finestra di xterm all'avvio. – ZeroPhase

+0

Raccomando di utilizzare la porta 2159, che è la porta ufficiale per il debugging remoto GDB. – DBX12