Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    20

    [GDB]-Debug di un programma C multimodulare

    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?

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    20

    RISOLTO

    RISOLTO

    se volessi settare breakpoints in altri sorgenti del mio programma che comando dovrei dare all'interno di gdb?
    break <filename>:<line_number>

    Se compilo invece col makefile come devo modificarlo per includere le istruzioni necessarie a rendere l'eseguibile debuggabile?
    Mettendo in ogni riga del makefile in cui chiamo il gcc il flag relativo al debugger.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2020 vBulletin Solutions, Inc. All rights reserved.