Ciao a tutti, ho usato gdb sotto linux per programmi fatti di un unico modulo .c.
E' possibile eseguire con gdb il debug di un programma C fatto di più moduli? Se si, come devo compilarli per permettere a gdb di funzionare? Intendo dire, per compilare abilitando la possibilità di eseguire il debugger uso il flag "-ggdb" o "-g" (che differenza c'è fra questi due flag? gdb sembra funzionare ugualmente con entrambi nel mio caso) quando lancio il compilatore gcc. Ma nel caso io abbia più moduli e un makefile come devo procedere? Metto il flag -g in tutte le righe del makefile in cui chiamo gcc?
Ho provato in diversi modi ma quando faccio partire gdb col comando "gdb ./<nome_programma>" appena setto un breakpoint mi dice "No line <numero> in file "init.c".". Poi ho pensato che nel caso si abbiano più moduli non avrebbe senso limitarsi a dirgli la linea ma dovrei anche specificare il nome del file .c a cui mi riferisco...
Ho cercato con Google e sulla documentazione di gdb ma non trovo nulla.
ciao e grazie anticipatamente!
AGGIUNTA: se compilo così:
gcc -g -o my_prog main.c sp.c ex.c
Riesco a debuggare mettendo breakpoints col comando "break <linea>" ma si riferiscono al file main.c: se volessi settare breakpoints in altri sorgenti del mio programma che comando dovrei dare all'interno di gdb?
Se compilo invece col makefile:
my_prog: main.o splitline.o ex.o
... gcc -o my_prog main.o sp.o ex.o
main.o: main.c main.h sp.h ex.h
... gcc -c -Wall -pedantic main.c
splitline.o: splitline.c sp.h main.h
... gcc -c -Wall -pedantic sp.c
execute.o: ex.c ex.h
... gcc -c -Wall -pedantic ex.c
come devo modificarlo per includere le istruzioni necessarie a rendere l'eseguibile debuggabile?