PDA

View Full Version : dubug in gcc


BiggDarknet
14-03-2007, 10:38
ciao a tutti!
in questi ultimi giorni sono in balìa del gcc.....sono riuscito ad imparare +o- tutte le basi,tranne una cosa...IL DEBUG!!:bsod: come si fa a debuggare con gcc???in giro per internet ho trovato che bisogna creare un makefile con il flag -g1 o -g2.L'ho fatto,ma non mi cambia nulla!!...
grazie mille
ciao

andbin
14-03-2007, 10:56
ciao a tutti!
in questi ultimi giorni sono in balìa del gcc.....sono riuscito ad imparare +o- tutte le basi,tranne una cosa...IL DEBUG!!:bsod: come si fa a debuggare con gcc???in giro per internet ho trovato che bisogna creare un makefile con il flag -g1 o -g2.L'ho fatto,ma non mi cambia nulla!!...
grazie mille
ciaoAlt! gcc è solo il compilatore. Il debugger "standard" in Linux è "gdb".

Ammettiamo di avere il classico hello world:
#include <stdio.h>

int main (void)
{
printf ("Hello world\n");
return 0;
}Compila con:

gcc -g -o hello hello.c

quindi fai:

gdb hello

e ti apparirà il prompt del gdb. Ora fai:

break main
(che puoi abbreviare con "b main", per mettere un breakpoint sul main() )

run
(che puoi abbreviare con "r", per avviare)

next
(che puoi abbreviare con "n", per andare passo passo)


Nota che il gdb ha una marea di comandi.

vizzz
14-03-2007, 12:20
se poi vuoi stare un po comodo evitando di impararti mille comandi a memoria:
http://sources.redhat.com/insight/

andbin
14-03-2007, 12:31
Se parliamo di front-end grafici, c'è anche DDD (http://www.gnu.org/software/ddd/), che personalmente non ho mai usato, quindi non saprei dire se è valido o meno.

trallallero
14-03-2007, 15:51
Se parliamo di front-end grafici, c'è anche DDD (http://www.gnu.org/software/ddd/), che personalmente non ho mai usato, quindi non saprei dire se è valido o meno.
io l'ho usato e mi é sembrato valido.
Certo é che qui abbiamo dei sistemi antiquati quindi qualsiasi programma grafico sembra un lusso :rolleyes:

BiggDarknet
14-03-2007, 16:16
...Nota che il gdb ha una marea di comandi.
grazie mille davvero x l'aiuto!!
ho perfettamente capito tutto...solo una cosa:non c'è un modo per far eseguire il prog da un break point ad un altro??(nei cicli for mi è di vitale importanza...:stordita: )

ilsensine
14-03-2007, 16:18
Metti i due breakpoint e dopo il primo esegui "cont".

BiggDarknet
14-03-2007, 16:25
SPETTACOLO!!
proprio quello di cui avevo bisogno.....grazie a tutti!:gluglu:

trallallero
14-03-2007, 20:29
SPETTACOLO!!
proprio quello di cui avevo bisogno.....grazie a tutti!:gluglu:
dopo aver imparato da shell, che serve sempre come esperienza, ti consiglio di installarlo il ddd, è tutta un'altra cosa ;) tanto si appoggia al gdb quindi sei già un passo avanti :)