2009-08-09 23 views
5

Ho imparato C e vorrei iniziare a migliorare il software open source. Mi piacerebbe scribacchiare un bug fastidioso in GTK +. Per vedere il bug ho bisogno di usare Gedit.Come avviare il debug?

Come posso scaricare i sorgenti di GTK + e gedit e compilarli entrambi in modo da poter vedere dove si trova il bug? E non ho mai usato alcun debugger in Linux quindi c'è da qualche parte un tutorial per questo?

risposta

8

È possibile ottenere informazioni sul download e compilazione di gedit qui: http://projects.gnome.org/gedit/developers.html

mio Debugger di scelta è GDB: http://www.gnu.org/software/gdb/

GDB è un'applicazione console che può essere difficile da gestire per un principiante. Prova un IDE come Eclipse che fornisce una GUI a GDB.

+0

+1 mi ha battuto. ;) –

+1

Mi piace cgdb. È un wrapper ncurses per gdb. – liori

+0

insight è un altro interessante frontend per chi ama la GUI. – McPherrinM

5

Quasi tutti i debugger di Linux sono front-end o adattamenti del debugger gdb. Dovresti quindi imparare come usare prima questo, preferibilmente iniziando dai programmi di tua costruzione, non da basi di codici FOSS giganti. Il manuale gdb, disponibile da here è in realtà un buon tutorial.

2

gdb è un dinosauro che da tempo si sarebbe estinto. Il debugging è un'area in cui (gasp!) Windows batte Unix. Dopo averlo estratto dal mio torace, ti consiglio di iniziare con il front-end grafico Data Display Debugger (DDD) su gdb. Sì, la GUI è bizzarra, ma sarai lontano più produttivo, più veloce, che se inizi con gdb.

Inoltre non trascurare valgrind per trovare e diagnosticare errori di memoria. Il progetto KDE impone effettivamente l'uso di valgrind; Non sono sicuro di Gnome.

0

È possibile che non vedrete il bug se scaricate le ultime fonti gedit e gtk +. Potrebbe essere corretto nelle fonti più recenti o le fonti più recenti potrebbero essere abbastanza diverse da non far scattare il bug.

Quale distribuzione Linux è in esecuzione?

Prima di tutto suggerirei di consultare il database dei bug della vostra distribuzione per vedere se qualcuno ha presentato un bug simile. Se non trovi nulla, ti suggerirei di usare gli strumenti della tua distribuzione per ottenere la sorgente che corrisponde al binario che hai installato sul tuo sistema (ad esempio apt-get source libgtk-2.0 su Debian o Ubuntu).

Inoltre, la distribuzione potrebbe rendere disponibile un pacchetto di debug (ad es. Libgtk2.0-0-dbg su Debian) che consentirà di eseguire un debugger sul file binario già esistente senza richiedere l'origine. Anche se questo non è un sostituto per avere i sorgenti, può essere utile per eseguire valgrind o dare un senso a un file core.

+0

La mia distribuzione è Ubuntu. Una volta ho segnalato il bug e dopo un anno ho sentito che la correzione è stata rilasciata. Ma secondo i miei test, il bug è ancora lì e ho aggiornato la mia Ubuntu all'ultima versione tramite comando sudo apt-get upgrade. –

Problemi correlati