PDA

View Full Version : Cercasi tools di programmazione per Linux


Emalele1688
16-08-2011, 20:28
Salve a tutti:)
Mi rivolgo a voi perché so che in passato mi avete dato ottimi consigli!
Fino ad oggi ho programmato in C/C++ usando solamente Eclipse CDT come IDE, gcc per la compilazione, gdb per il debug e makefile per la compilazione.
Ciò nonostante, spesso, dedico più ore del mio tempo alla correzione degli errori in compilazione ed esecuzione, e soprattutto a risolvere le malefiche segmentation fault ed eliminare i memory leak.
In ogni programma che scrivo devo farmi un atto di fiducia a me stesso sperando di aver deallocato tutte le istanze di memoria create.
Questa mattina il debugger gdb mi ha fatto esaurire poiché non mi spiegava chiaramente il motivo dell'errore di segmentazione.
Ricordo che ai tempi di Winzoz usavo Visual Studio, che eseguiva il debug mostrandomi passo passo l'esecuzione di ciascuna riga di programma e mi mostrava il suo risultato. Capire certi errori li era più semplice.

Tempo fa diedi un'occhiata a questo: http://www.softwareverify.com/distributors.php
Che chiaramente è per Winzoz :cry: (dannato Zio Bill)

Ora non cerco un IDE di programmazione, poichè uso Eclipse CDT che bene o male svolge il suo lavoro (spesso purtroppo più male che bene);
Cerco un buon debugger, magari grafico, e un software per "analizzare" l'esecuzione del programma (memory leak, puntatori referenziati a locazioni non più esistenti ecc...)

Qualcuno sa darmi una mano??
Vanno bene anche consigli su software commerciali (chiaramente sempre per Linux)...

ps: ho evito di postare alla sezione di programmazione poiché è pieno di programmatori di svariate piattaforme diverse dal mio amato pinguino.

Gimli[2BV!2B]
16-08-2011, 21:29
Ho usato QT Creator (http://qt.nokia.com/products/developer-tools/) e gdb è integrato in modo molto simile al debug in tempo reale disponibile in Visual Studio, permettendo pause, avanzamenti riga per riga ed esplorazione delle variabili, sia in finestrella watch che con tooltip interattivi.
Il contro è che non mi risulta sia possibile applicare modifiche in tempo reale come tenta sempre di fare Visual Studio (Edit & Continue) e che, almeno in ambiente Win dove l'ho usato maggiormente al lavoro, raramente si incartava di brutto ed occorreva uscire e rientrare dall'editor per recuperarne il funzionamento.

Stessa cosa mi risulta valga anche per KDevelop (http://kdevelop.org/), che è meno incentrato sul framework QT (ma l'ho usato molto, molto meno).

Altro IDE rinomato che ho installato, ma usato ancor meno di KDevelop è Netbeans (http://netbeans.org/); ora l'ho riaperto e non l'ho visto molto contento di compilare un progetto inutile in debug: non ricordo bene come si presenta in debug.

Per analisi approfondite dell'uso della memoria e delle interazioni multithread tutti consigliano Valgrind (http://valgrind.org/). Ad oggi non ho ancora avuto necessità/possibilità di utilizzarlo.
È possibile utilizzare Valgrind in tutti i principali IDE; per esempio quelli citati:

Eclipse (http://www.eclipse.org/linuxtools/projectPages/valgrind/)
QT Creator (http://www.developer.nokia.com/Community/Wiki/Using_valgrind_with_Qt_Creator)
Kdevelop (http://valgrind.org/downloads/guis.html) (anche se non ne ho trovato riferimento esplicito nella nuova versione 4.x...)
Esistono anche varie interfacce grafiche che permettono solamente di avere un debug interattivo simile a quello descritto, come DDD (http://www.gnu.org/s/ddd/) e KDbg (http://www.kdbg.org/).

Emalele1688
17-08-2011, 14:36
Valgrind ora lo provo, sto provando anche DDD e kdbg.
Riguardo KDevelop so che manca l'intellisense, un'ottima comodità che hanno alcune IDE tra cui Eclipse.
QT Creator invece so che era specifico per applicazioni QT4 .., Sbaglio?

Stavo pensando che esiste anche IDA disassembler and debugger... Solo sembra molto complesso (ed è commerciale)....

Gimli[2BV!2B]
17-08-2011, 15:16
Sì, lo scopo principe di QT Creator è la creazione di applicazioni QT. Nei template per nuovi progetti offre anche C++ library ed HTML5 project, ma tutto il resto gira attorno alle QT.

Nel KDevelop che ho sotto mano (4.3 da svn o git o quelchellé) il completamento automatico è presente e funzionante.
Mi risulta sia attivo già da varie versioni.
Però, lo ribadisco, l'ho usato poco, solo in versione svn per controllarne la crescita e soprattutto con progettini di prova non molto grandi.

Purtroppo io non posso spingermi oltre, questi sono quelli con cui ho avuto qualcosa a che fare, oltre all'onnipresente, onnisciente ed onnivoro Visual Studio (6.0, 2005, 2010).

L'IDA che citi mi sembra veramente uno strumento sproporzionato, a meno che non ti interessi seriamente di reverse engineering.