gdb

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
Scrivi risposta
Avatar utente
cristian_c
Accecante Asceta
Accecante Asceta
Messaggi: 23422
Iscrizione: lunedì 29 ottobre 2007, 11:31

gdb

Messaggio da cristian_c »

ciao,
volevo usare gdb per fare il debugging di un sorgente c oltre che compilarlo con gcc.
Come si fa?
UP! Unreal Project: il futuro inizia qui. Crusade è tra noi
È scienza!
Avatar utente
GioFX
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1086
Iscrizione: domenica 4 marzo 2007, 10:27
Località: $HOME
Contatti:

Re: gdb

Messaggio da GioFX »

...
Ultima modifica di GioFX il lunedì 7 luglio 2008, 0:43, modificato 1 volta in totale.
c0de
Avatar utente
cristian_c
Accecante Asceta
Accecante Asceta
Messaggi: 23422
Iscrizione: lunedì 29 ottobre 2007, 11:31

Re: gdb

Messaggio da cristian_c »

Codice: Seleziona tutto

..:: gdb> exec
?
UP! Unreal Project: il futuro inizia qui. Crusade è tra noi
È scienza!
Avatar utente
bite
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 3798
Iscrizione: sabato 19 maggio 2007, 22:10

Re: gdb

Messaggio da bite »

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
Avatar utente
cristian_c
Accecante Asceta
Accecante Asceta
Messaggi: 23422
Iscrizione: lunedì 29 ottobre 2007, 11:31

Re: gdb

Messaggio da cristian_c »

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$ 

non succede niente
UP! Unreal Project: il futuro inizia qui. Crusade è tra noi
È scienza!
Avatar utente
simo_magic
Rampante Reduce
Rampante Reduce
Messaggi: 9496
Iscrizione: lunedì 18 dicembre 2006, 21:37
Località: Piemonte

Re: gdb

Messaggio da simo_magic »

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
Avatar utente
cristian_c
Accecante Asceta
Accecante Asceta
Messaggi: 23422
Iscrizione: lunedì 29 ottobre 2007, 11:31

Re: gdb

Messaggio da cristian_c »

volevo sapere: per eseguire passo passo il programma,controllare riga dopo riga il contenuto delle variabili come dovrei fare?
UP! Unreal Project: il futuro inizia qui. Crusade è tra noi
È scienza!
Avatar utente
simo_magic
Rampante Reduce
Rampante Reduce
Messaggi: 9496
Iscrizione: lunedì 18 dicembre 2006, 21:37
Località: Piemonte

Re: gdb

Messaggio da simo_magic »

cristian_c ha scritto: volevo sapere: per eseguire passo passo il programma,controllare riga dopo riga il contenuto delle variabili come dovrei fare?
GioFX ha scritto:
cristian_c ha scritto: ciao,
volevo usare gdb per fare il debugging di un sorgente c oltre che compilarlo con gcc.
Come si fa?
gdb ./programma

..:: gdb> exec




ps. googleeeeeeeee
io li leggerei bene i post prima di rispondere ;)
Avatar utente
cristian_c
Accecante Asceta
Accecante Asceta
Messaggi: 23422
Iscrizione: lunedì 29 ottobre 2007, 11:31

Re: gdb

Messaggio da cristian_c »

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:

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.
non mi intendo di queste cose,fino ad ora avevo sempre debuggato a mano :-[
UP! Unreal Project: il futuro inizia qui. Crusade è tra noi
È scienza!
Avatar utente
cristian_c
Accecante Asceta
Accecante Asceta
Messaggi: 23422
Iscrizione: lunedì 29 ottobre 2007, 11:31

Re: gdb

Messaggio da cristian_c »

mi sono spostato nella cartella del file sorgente,l'ho compilato con il comando:

Codice: Seleziona tutto

gcc -ggdb data.c -o data.out
poi ho avviato gdb, e successivamente ho dato le specifiche dell'eseguibile da controllare:

Codice: Seleziona tutto

(gdb) file data
ricevendo questo messaggio:

Codice: Seleziona tutto

Reading symbols from /home/cristiancozzolino/programmazione/data...done.
Dopodiche' ho dato il comando args per gli argomenti,ma ho ottenuto errore.Dove ho sbagliato?
UP! Unreal Project: il futuro inizia qui. Crusade è tra noi
È scienza!
Avatar utente
moretto11
Prode Principiante
Messaggi: 217
Iscrizione: venerdì 20 aprile 2007, 16:33
Contatti:

Re: gdb

Messaggio da moretto11 »

se l'eseguibile l'hai chiamato data.out probabilmente dovresti fare

Codice: Seleziona tutto

gdb data.out
.
che errore ti da quando provi a settare gli argomenti?il comando giusto è:

Codice: Seleziona tutto

set args tutti_gli_argomenti_che_ti_servono
Avatar utente
cristian_c
Accecante Asceta
Accecante Asceta
Messaggi: 23422
Iscrizione: lunedì 29 ottobre 2007, 11:31

Re: gdb

Messaggio da cristian_c »

se l'eseguibile l'hai chiamato data.out probabilmente dovresti fare
Codice:

gdb data.out
grazie,che stupido!  :-[ Infatti ieri sera mi sono ritrovato l'eseguibile doppione data.out nella cartella e l'ho eliminato.
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"?
UP! Unreal Project: il futuro inizia qui. Crusade è tra noi
È scienza!
Avatar utente
moretto11
Prode Principiante
Messaggi: 217
Iscrizione: venerdì 20 aprile 2007, 16:33
Contatti:

Re: gdb

Messaggio da moretto11 »

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: Seleziona tutto

./nome_eseguibile file1.txt file2.txt ...
eccetera.per fare la stessa cosa cn il debugger devi fare

Codice: Seleziona tutto

gdb nome_eseguibile

Codice: Seleziona tutto

set args file1.txt file2.txt
eccetera.
Avatar utente
cristian_c
Accecante Asceta
Accecante Asceta
Messaggi: 23422
Iscrizione: lunedì 29 ottobre 2007, 11:31

Re: gdb

Messaggio da cristian_c »

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 ...
certo,certo,hai ragione,queste cose le conosco,avendo sempre utilizzato gcc.

Codice: Seleziona tutto

gdb nome_eseguibile
ma il comando non era: file nome_eseguibile ?

Comunque 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.
UP! Unreal Project: il futuro inizia qui. Crusade è tra noi
È scienza!
Avatar utente
moretto11
Prode Principiante
Messaggi: 217
Iscrizione: venerdì 20 aprile 2007, 16:33
Contatti:

Re: gdb

Messaggio da moretto11 »

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!
Avatar utente
cristian_c
Accecante Asceta
Accecante Asceta
Messaggi: 23422
Iscrizione: lunedì 29 ottobre 2007, 11:31

Re: gdb

Messaggio da cristian_c »

si, il comando è file nome_eseguibile se prima lanci da solo gdb. altrimenti puoi subito dare gdb nome_eseguibile.
ho capito,ora mi e' chiaro  ;)
mi pare quindi di capire che tu nn devi settare alcun argomento. se hai altri problemi chiedi pure, ciao!
nel terminale a questo punto digito set args.Questo e' il risultato:

Codice: Seleziona tutto

(gdb) set args
(gdb) 
Ora volevo sapere come fare per settare i breakpoints.
Grazie tante per l'aiuto dato!  :D
UP! Unreal Project: il futuro inizia qui. Crusade è tra noi
È scienza!
Avatar utente
IacopoDeeNosee
Prode Principiante
Messaggi: 194
Iscrizione: giovedì 3 maggio 2007, 0:00
Contatti:

Re: gdb

Messaggio da IacopoDeeNosee »

per i breakpoint devi dare questo commando:

Codice: Seleziona tutto

break <numero della riga>
prova a leggere qui,trovi delle utili e semplici indicazioni per usarlo.
BYE ;)
Skype -> IacopoDeeNosee
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 4 ospiti