Ho bisogno di alcuni chiarimenti su come funziona GDB nellambiente IDE su cloud9
Ci sono due cose diversi tipi di debugger che lIDE ambiente?
-
Debugger, tramite
debug
input del comando che guarda la compilazione / verifica passo passo degli input? (per il file sorgente) -
GDB, che controlla il programma eseguibile?
Inoltre, come si passano gli argomenti in GDB? Non riesco a capirlo.
Sto guardando pset4 e voglio eseguire GDB sulleseguibile “copia” e passare un input e un nome di file di output
come potrei farlo nel terminale
EDIT
anche il mio anche il debugger è sempre guasto
Risposta
Per eseguire GDB con argomenti nel terminale, usa il parametro –args.
gdb --args name arg1 arg2 arg3
debug50 (il debugger grafico) è solo GDB con una GUI. GDB è stato originariamente progettato per essere eseguito attraverso il terminale, e lo è ancora. È molto più flessibile di qualsiasi debugger grafico.
- Ecco “una guida di riferimento completa per GDB: https://sourceware.org/gdb/current/onlinedocs/gdb/
- E qui “un cheat sheet che ho trovato: https://cs.brown.edu/courses/cs033/docs/guides/gdb.pdf
Tuttavia, ecco alcune nozioni di base:
- Debug passo passo:
next (or n)
-
Limpostazione di un punto di interruzione viene eseguita con
break (or b) [function or line number]
, ad esempio:break main
obreak 20
dove “20” è la riga da interrompere. -
Esegui il programma con
run (or r)
. -
Utilizza
continue or c
per passare al punto di interruzione successivo. -
Per stampare una variabile allinterno di GDB (senza utilizzare
printf()
) digitaprint varname
.
In alternativa, ora che conosci alcuni comandi, puoi eseguire il programma con alcuni argomenti con [r]un arg1 arg2 arg3
.
Per quanto riguarda il tuo problemi con debug50, mi dispiace dire che il predecessore di debug50 era guasto e sembra che anche debug50 ora sia guasto. Almeno non sono mai riuscito a risolverlo.
Commenti
- grazie per la risposta molto approfondita !. Unaltra domanda è che GDB è preinstallato in alcuni ambienti Bash di Linux e forse il prompt dei comandi di Windows?
- GDB è preinstallato in ogni distribuzione Linux per quanto ne so, e sicuramente nelle più popolari (arch, debian, ubuntu , eccetera..). Per ottenerlo su Windows potresti dover usare Cygwin o MinGW (raccolte di strumenti e cose di Linux / GNU / POSIX), non ' non so se " ufficiale " download dalla pagina di download GDB gnu.org/software/gdb supporta effettivamente Windows, non ho ' provato.