gdb
- cristian_c
- Accecante Asceta

- Messaggi: 23422
- Iscrizione: lunedì 29 ottobre 2007, 11:31
gdb
ciao,
volevo usare gdb per fare il debugging di un sorgente c oltre che compilarlo con gcc.
Come si fa?
volevo usare gdb per fare il debugging di un sorgente c oltre che compilarlo con gcc.
Come si fa?
- cristian_c
- Accecante Asceta

- Messaggi: 23422
- Iscrizione: lunedì 29 ottobre 2007, 11:31
Re: gdb
Codice: Seleziona tutto
..:: gdb> execRe: gdb
Compila con l'opzione -ggdb
Per avere un'interfaccia non dico comoda ma vagamente usabile, installa e usa ddd
Meglio, usa l'IDE Eclipse che ha il debugger integrato
Per avere un'interfaccia non dico comoda ma vagamente usabile, installa e usa ddd
Meglio, usa l'IDE Eclipse che ha il debugger integrato
- cristian_c
- Accecante Asceta

- Messaggi: 23422
- Iscrizione: lunedì 29 ottobre 2007, 11:31
Re: gdb
Codice: Seleziona tutto
cristiancozzolino@cristiancozzolino-laptop:~/programmazione$ gcc -ggdb data.c
cristiancozzolino@cristiancozzolino-laptop:~/programmazione$ gcc -ggdb data.c -o data
cristiancozzolino@cristiancozzolino-laptop:~/programmazione$
- simo_magic
- Rampante Reduce

- Messaggi: 9496
- Iscrizione: lunedì 18 dicembre 2006, 21:37
- Località: Piemonte
Re: gdb
primo: se non dice nulla vuole solo dire che non ci sono errori e che ha fatto il suo dovere
secondo: con quello COMPILI E BASTA se vuoi debuggare e non dai gdb la vedo molto dura
secondo: con quello COMPILI E BASTA se vuoi debuggare e non dai gdb la vedo molto dura
- cristian_c
- Accecante Asceta

- Messaggi: 23422
- Iscrizione: lunedì 29 ottobre 2007, 11:31
Re: gdb
volevo sapere: per eseguire passo passo il programma,controllare riga dopo riga il contenuto delle variabili come dovrei fare?
- simo_magic
- Rampante Reduce

- Messaggi: 9496
- Iscrizione: lunedì 18 dicembre 2006, 21:37
- Località: Piemonte
Re: gdb
cristian_c ha scritto: volevo sapere: per eseguire passo passo il programma,controllare riga dopo riga il contenuto delle variabili come dovrei fare?
io li leggerei bene i post prima di rispondereGioFX ha scritto:gdb ./programmacristian_c ha scritto: ciao,
volevo usare gdb per fare il debugging di un sorgente c oltre che compilarlo con gcc.
Come si fa?
..:: gdb> exec
ps. googleeeeeeeee
- cristian_c
- Accecante Asceta

- Messaggi: 23422
- Iscrizione: lunedì 29 ottobre 2007, 11:31
Re: gdb
mi ricordo di aver visto questa pagina,ma di non aver capito il succo del discorso,cioe i comandi che mi servono:http://www.badpenguin.org/press/infomedia/gdb.html
nell'help del programma ottengo questo:
non mi intendo di queste cose,fino ad ora avevo sempre debuggato a mano :-[
nell'help del programma ottengo questo:
Codice: Seleziona tutto
(gdb) help
List of classes of commands:
aliases -- Aliases of other commands
breakpoints -- Making program stop at certain points
data -- Examining data
files -- Specifying and examining files
internals -- Maintenance commands
obscure -- Obscure features
running -- Running the program
stack -- Examining the stack
status -- Status inquiries
support -- Support facilities
tracepoints -- Tracing of program execution without stopping the program
user-defined -- User-defined commands
Type "help" followed by a class name for a list of commands in that class.
Type "help all" for the list of all commands.
Type "help" followed by command name for full documentation.
Type "apropos word" to search for commands related to "word".
Command name abbreviations are allowed if unambiguous.
- cristian_c
- Accecante Asceta

- Messaggi: 23422
- Iscrizione: lunedì 29 ottobre 2007, 11:31
Re: gdb
mi sono spostato nella cartella del file sorgente,l'ho compilato con il comando:
poi ho avviato gdb, e successivamente ho dato le specifiche dell'eseguibile da controllare:
ricevendo questo messaggio:
Dopodiche' ho dato il comando args per gli argomenti,ma ho ottenuto errore.Dove ho sbagliato?
Codice: Seleziona tutto
gcc -ggdb data.c -o data.outCodice: Seleziona tutto
(gdb) file dataCodice: Seleziona tutto
Reading symbols from /home/cristiancozzolino/programmazione/data...done.Re: gdb
se l'eseguibile l'hai chiamato data.out probabilmente dovresti fare .
che errore ti da quando provi a settare gli argomenti?il comando giusto è:
Codice: Seleziona tutto
gdb data.outche errore ti da quando provi a settare gli argomenti?il comando giusto è:
Codice: Seleziona tutto
set args tutti_gli_argomenti_che_ti_servono- cristian_c
- Accecante Asceta

- Messaggi: 23422
- Iscrizione: lunedì 29 ottobre 2007, 11:31
Re: gdb
grazie,che stupido! :-[ Infatti ieri sera mi sono ritrovato l'eseguibile doppione data.out nella cartella e l'ho eliminato.se l'eseguibile l'hai chiamato data.out probabilmente dovresti fare
Codice:
gdb data.out
Ma ora rifacendo la procedura da capo non c'e' nessun cambiamento;infatti un file di nome data era gia' presente nella cartella.
Per quanto riguarda args che cosa devo mettere al posto di "tutti_gli_argomenti_che_ti_servono"?
Re: gdb
tu stai programmando in c giusto? gli "args" sono gli argomenti che passi al programma quando lo esegui, e che in c vengono gestiti con argc e argv. di solito quando vai ad eseguire un programma nel quale devi passare degli argomenti, ad esempio i nome di file di testo,scrivi: eccetera.per fare la stessa cosa cn il debugger devi fare
eccetera.
Codice: Seleziona tutto
./nome_eseguibile file1.txt file2.txt ...Codice: Seleziona tutto
gdb nome_eseguibileCodice: Seleziona tutto
set args file1.txt file2.txt- cristian_c
- Accecante Asceta

- Messaggi: 23422
- Iscrizione: lunedì 29 ottobre 2007, 11:31
Re: gdb
certo,certo,hai ragione,queste cose le conosco,avendo sempre utilizzato gcc.tu stai programmando in c giusto? gli "args" sono gli argomenti che passi al programma quando lo esegui, e che in c vengono gestiti con argc e argv. di solito quando vai ad eseguire un programma nel quale devi passare degli argomenti, ad esempio i nome di file di testo,scrivi:
Codice:
./nome_eseguibile file1.txt file2.txt ...
Codice: Seleziona tutto
gdb nome_eseguibileComunque aggiungo che nel mio sorgente(in C) non faccio uso di file esterni come i txt,che spesso giustamente vengono usati nei programmi scritti in c.In questo caso il programma fa riferimento solo all'input da tastiera.
Comunque grazie per i suggerimenti.
Re: gdb
si, il comando è file nome_eseguibile se prima lanci da solo gdb. altrimenti puoi subito dare gdb nome_eseguibile. mi pare quindi di capire che tu nn devi settare alcun argomento. se hai altri problemi chiedi pure, ciao!
- cristian_c
- Accecante Asceta

- Messaggi: 23422
- Iscrizione: lunedì 29 ottobre 2007, 11:31
Re: gdb
ho capito,ora mi e' chiarosi, il comando è file nome_eseguibile se prima lanci da solo gdb. altrimenti puoi subito dare gdb nome_eseguibile.
nel terminale a questo punto digito set args.Questo e' il risultato:mi pare quindi di capire che tu nn devi settare alcun argomento. se hai altri problemi chiedi pure, ciao!
Codice: Seleziona tutto
(gdb) set args
(gdb) Grazie tante per l'aiuto dato!
- IacopoDeeNosee
- Prode Principiante
- Messaggi: 194
- Iscrizione: giovedì 3 maggio 2007, 0:00
- Contatti:
Re: gdb
per i breakpoint devi dare questo commando:
prova a leggere qui,trovi delle utili e semplici indicazioni per usarlo.
BYE
Codice: Seleziona tutto
break <numero della riga>BYE
Skype -> IacopoDeeNosee
Chi c’è in linea
Visualizzano questa sezione: 0 utenti iscritti e 4 ospiti

