2009-04-14 26 views
7

In primo luogo ho eseguito lo sviluppo di software di base (livello di novizio) su una macchina Windows, ma ho sempre avuto MS Visual Studio per aiutarmi a passare attraverso il processo di debug.Debug su Linux per Windows Developer

Ora, tuttavia, sembra che sarò su Linux, quindi per essere pronto per il salto voglio assicurarmi di avere uno strumento/strumenti in fila per aiutarmi a passare attraverso il codice e il debug.

Sfortunatamente, quando ho chiesto a qualcuno di parlare di come eseguire il debug su Linux, di solito ottengo la seguente risposta, "Oh, ho appena messo un sacco di dichiarazioni di stampa". OH MIO DIO! In nessun modo tu dici, ma sì, questa è la loro risposta.

Poiché è su Linux e lavorerà con il codice C++ sul sistema operativo CentOS a 32 bit, spero che questa sia una soluzione OpenSource preferita. Quindi, suppongo di chiedere l'IDE OpenSource preferito per il codice C++ su CentOS Linux.

Grazie per eventuali approfondimenti e suggerimenti.

risposta

5

Io suggerirei di usare Eclipse

Eclipse è un IDE maturo con un sacco di supporto disponibile.

C'è anche Code::Blocks se si vuole provare qualcosa di diverso

+0

Codice :: Blocks utilizza GDB internamente, ho trovato che GDB da solo non è un problema per il debug rispetto a C :: B's. –

+0

Wow - Non mi sarei mai aspettato tutte queste meravigliose risposte. Ora devo trovare il tempo e sfruttare l'opportunità di sperimentare tutte queste idee. Probabilmente comincerò con Eclipse e vedrò se riesco a convincere la base di codice Linux esistente in un IDE, che non è mai stato fatto prima, e ci sono un sacco di file e pochissima documentazione esistente o accurata - questo purtroppo no * .dsw o esistente spazio di lavoro o soluzione :(Immagino che il prossimo passo sarà vedere come far funzionare questo codice bestiale in un IDE. Grazie ancora per tutte le risposte che sono veramente grandiose. – JustADude

4
  • Eclipse
  • NetBeans
  • KDevelop
7
2

C'è sempre GDB. XCode per OSX utilizza GDB internamente per il debug.

2

Valgrind, è tuo amico e potrebbe salvarti dal dover soffrire anche se GDB.

1

Anjuta è un IDE davvero eccezionale per GNOME. Per il debugging utilizza GDB internamente.

6

Alcuni anni fa ho spostato da VS a un ambiente di tipo emacs/make e non ho mai guardato indietro.

L'idea è di utilizzare un makefile per gestire il lato di gestione del progetto di un IDE e io uso emacs + gdb per la modifica e il debug. Ci vorrà un po 'per abituarsi a emacs, ma se ci si attiene, vale la pena. Una volta avviato emacs, premi "Ctrl + H" seguito da "t" e questo ti porterà alla pagina del tutorial.

Dopo aver imparato le basi, è possibile eseguire il debug di un programma in modo simile a qualsiasi interfaccia IDE/debugger. Devo ammettere che, anche dopo tutto questo tempo, utilizzo ancora un set di mappature dei tasti VS che ho configurato quando mi sono trasferito su emacs!

(global-set-key [f7] 'compile)   ;; Run the compile command 
(global-set-key [f4] 'next-error)  ;; The next compile error 
(global-set-key [S-f4] 'previous-error) ;; The previous compile error 
(global-set-key [f5] 'gdb)    ;; Start the debugger 

i seguenti set i "vs" mappatura dei tasti per la diversa GDB comandi che è possibile utilizzare:

(add-hook 'gud-mode-hook 
    '(lambda() 
    (define-key (current-local-map) 
     [f10] 
     'gud-next) 
    (define-key (current-local-map) 
     [f11] 
     'gud-step) 
    (define-key (current-local-map) 
     [\S-f11] 
     'gud-finish) 
    (define-key (current-local-map) 
     [f5] 
     'gud-cont) 
)) 

Con le keymappings di cui sopra, premo 'F5', che mi spinge a correre gdb (e a questo comando aggiungo il binario che desidero eseguire il debug). Una volta caricato gdb, si preme 'f5' per continuare, 'f10' per eseguire il passaggio, 'f11' per entrare e 'shirt + f11' per uscire.

Infine, ogni volta che si avvia 'gdb', si leggerà un file chiamato '.gdbinit' nella propria directory home. Una domanda StackOverflow diversa aveva questo answer che ha portato alla mia attenzione stl-views. stl-views è un set di funzioni di supporto per gdb che mostra il contenuto dei diversi tipi di contenitori STL. Le istruzioni su come usarlo possono essere trovate nella parte superiore del link.

0

Uso una combinazione di gdb e cscope durante il debug su linux.

Problemi correlati