Come posso "ispezionare" il codice C ++?

3

Per riferimento, sono uno sviluppatore JavaScript che apprende il linguaggio C ++. Il browser è un debugger piuttosto potente e posso facilmente inserire un punto di interruzione nel mio codice, passare il mouse su una variabile o un'espressione e ottenere il valore di tale espressione. Questo è possibile anche in C ++ o sono completamente diverso?

Sto iniziando a scrivere un po 'di codice C ++ per un corso online, e il debugging con Code :: Blocks mi fornisce informazioni molto opache. Ad esempio, vedo cose del genere: 0x8049bc3 push ebp nella finestra 'orologi'. Anche se scrivo qualcosa come int foo = 3; , non ho trovato modo di dire che foo è 3 mentre sto passando il mio codice. Mi manca qualcosa?

    
posta gwg 07.05.2014 - 06:21
fonte

2 risposte

10

Devi creare una versione di debug del tuo programma :

Make sure that the project is compiled with the -g (debugging symbols) compiler option on, and the -s (strip symbols) option off. This ensures that the executable has debug symbols included. Compiler optimization switches should be turned off, stripping symbols (-s) must be turned off.

C ++ compila in codice macchina, dove le variabili sono solo indirizzi di memoria. I simboli, come i nomi delle variabili, possono essere aggiunti all'eseguibile usando opportuni flag del compilatore.

    
risposta data 07.05.2014 - 07:40
fonte
1

A seconda del sistema operativo che utilizzi, la raccomandazione sarà diversa.

Se utilizzi Windows: guarda in Visual Studio c'è un'edizione gratuita. Assicurati di compilare e collegare il programma che succede con il pulsante di creazione. All'interno dell'editor è possibile posizionare un punto di interruzione durante la compilazione con il debug per fare in modo che il debugger si fermi al punto di interruzione e in quel momento nella riga di comando sarà possibile chiedere cosa c'è dentro la variabile, nella finestra immediata del debugger puoi digitare il nome della variabile e ti darà il valore che è lì dentro.

Se stai usando Linux: qui le cose diventano un po 'più avanzate perché devi sapere come compilare i tuoi file. Dal momento che dici di sapere come compilarli inizierò da lì. È necessario aggiungere il flag di compilazione -g per debugger gdb per poter eseguire il debug del programma. dopo che i file sono stati collegati in un file eseguibile. Digitare gdb yourfile e inizierà il debugging. il comando breakpoint con numero di linea dirà al compilatore dove impostare il punto di interruzione e dopo questa esecuzione di digitazione verrà eseguito il debugger e si fermerà al punto di interruzione. Digitando print con il nome della variabile si ottiene il valore della variabile appena prima del punto di interruzione. Ecco alcuni documenti su come impostare il punto di interruzione in gdb.

link Spero che questo aiuti!

    
risposta data 14.06.2016 - 00:18
fonte

Leggi altre domande sui tag