it-swarm.it

Esiste una GUI gdb C ++ per Linux?

In breve: qualcuno conosce una GUI per gdb che la porta alla pari o vicino al set di funzionalità che si ottiene nella versione più recente di Visual C++?

In dettaglio: come qualcuno che ha trascorso molto tempo a programmare in Windows, uno dei più grandi ostacoli che ho trovato ogni volta che devo codificare C++ in Linux è che il debug di qualsiasi cosa usando la riga di comando gdb mi richiede molte volte più di quanto non faccia in Visual Studio e non sembra migliorare con la pratica. Alcune cose sono semplicemente più facili o veloci da esprimere graficamente.

In particolare, sto cercando una GUI che:

  • Gestisce tutte le nozioni di base come passare da un codice all'altro, osservare variabili e punti di interruzione
  • Comprende e può visualizzare il contenuto di tipi di dati C++ complessi e nidificati
  • Non viene confuso da e, preferibilmente, può passare in modo intelligente attraverso strutture di dati e codice basate su modelli durante la visualizzazione di informazioni rilevanti come i tipi di parametro
  • Può gestire le applicazioni thread e passare da un thread all'altro per scorrere o visualizzare lo stato di
  • È in grado di gestire il collegamento a un processo già avviato o la lettura di un core dump, oltre all'avvio del programma in gdb

Se un tale programma non esiste, mi piacerebbe conoscere le esperienze che le persone hanno avuto con programmi che soddisfano almeno alcuni dei punti elenco. Qualcuno ha qualche consiglio?

Edit:
Elencare le possibilità è fantastico e prenderò ciò che posso ottenere, ma sarebbe ancora più utile se tu potessi includere nelle tue risposte:
(a) Se hai effettivamente utilizzato questa GUI e, in caso affermativo, quale feedback positivo/negativo hai a riguardo.
(b) Se sai, quali delle funzioni sopra menzionate sono/non sono supportate

Le liste sono facili da trovare, siti come questo sono fantastici perché puoi avere un'idea delle esperienze personali delle persone con le applicazioni.

204
HappyDude

Non troverai nulla sovrapposizione GDB che può competere con la potenza pura del debugger di Visual Studio. È semplicemente troppo potente ed è troppo ben integrato nell'IDE.

Per un'alternativa Linux, prova DDD se il software libero fa per te.

55
Vicent Marti

Eclipse CDT fornirà un'esperienza paragonabile all'utilizzo di Visual Studio. Uso Eclipse CDT quotidianamente per scrivere codice e debug di processi locali e remoti.

Se non hai familiarità con l'utilizzo di un IDE basato su Eclipse, la GUI impiegherà un po 'ad abituarsi. Tuttavia, una volta comprese le idee della GUI che sono uniche per Eclipse (ad esempio una prospettiva), l'utilizzo dello strumento diventa un'esperienza piacevole.

Gli strumenti CDT forniscono un indicizzatore C/C++ decente che consente di trovare rapidamente riferimenti ai metodi nella propria base di codice. Fornisce inoltre uno strumento di espansione macro di Nizza e un supporto limitato per il refactoring.

Per quanto riguarda il supporto per il debug, CDT è in grado di fare tutto ciò che è nella tua lista, ad eccezione della lettura di un dump principale (potrebbe supportare questo, ma non ho mai provato a usare questa funzione). Inoltre, la mia esperienza con il codice di debug tramite modelli è limitata, quindi non sono sicuro del tipo di esperienza che CDT fornirà a questo proposito.

Per ulteriori informazioni sul debug utilizzando Eclipse CDT, è possibile consultare queste guide:

84
Jon Ball

gdb -tui funziona bene se vuoi qualcosa di interfaccia grafica, ma ancora basato sui caratteri.

78
Carleton

Scopri Nemiver C/C++ Debugger . È facile da installare in Ubuntu (Strumenti per sviluppatori/Debug).

Aggiornamento: Nuovo collegamento.

47
Sergey Shandar

Detesto l'idea dello sviluppo di Windows, ma il debugger VC++ è tra i migliori che abbia mai visto. Non ho trovato un front-end della GUI che si avvicini a quello di VC.

GDB è fantastico quando ci si abitua davvero. Usalo abbastanza con rabbia e diventerai molto abile. Posso sfrecciare attorno a un programma facendo tutte le cose che hai elencato senza molto sforzo. Ci sono voluti circa un mese per soffrire di un collegamento SSH a un server remoto prima che fossi abile. Non ci tornerò mai più però.

DDD è davvero potente ma era piuttosto difettoso. Ho scoperto che si bloccava abbastanza spesso quando riceveva messaggi da GDB che non si muovevano. È buono perché ha una finestra di interfaccia gdb in modo da poter vedere cosa sta succedendo e anche interagire direttamente con gdb. DDD non può essere utilizzato su una sessione X remota nel mio ambiente (un vero problema, dal momento che sono seduto su un thin client quando eseguo lo sviluppo Unix) per qualche motivo, quindi è fuori per me.

KDevelop ha seguito il tipico stile di KDE ed ha esposto TUTTO all'utente. Inoltre, non ho mai avuto fortuna nel debug di programmi non KDevelop in KDevelop.

Gnat Programming Studio (GPS) è in realtà un buon front-end per GDB. Non gestisce solo i progetti Ada, quindi vale la pena provarlo se hai bisogno di un debugger.

Potresti usare Eclipse, ma è piuttosto pesante e molte persone Unix esperte con cui ho lavorato (me incluso) non si preoccupano molto della sua interfaccia, che non sarà solo STFU e ti toglierà di mezzo. Anche Eclipse sembra occupare molto spazio e correre come un cane.

29
Adam Hawes

Qt Creator sembra roba buona. Un collega mi ha mostrato un modo per impostarlo per il debug:

  • Creare un nuovo progetto, "Importazione di progetti basati su Makefile".
  • Puntalo sulla cartella del tuo progetto radice (indicizzerà le fonti al suo interno ed è incredibilmente veloce).
  • Vai alle impostazioni del progetto e aggiungi una configurazione di esecuzione, quindi specifica l'eseguibile di cui vuoi eseguire il debug e i relativi argomenti.
  • Qt Creator sembra insistere sulla costruzione del progetto prima di eseguire il debug. Se non lo si desidera o non si utilizza make, è possibile ignorare il comando make. L'ho cambiato in "vero". :)

Potrebbe sembrare un po 'troppo lavoro per il debug di un'app che avevo già compilato, ma ne vale la pena. Il debugger mostra thread, stack e variabili locali in modo simile a Visual Studio e utilizza anche molte delle stesse scorciatoie da tastiera. Sembra gestire bene i template, almeno std :: string e std :: map. Il collegamento a processi esistenti e core dump sembra essere supportato, anche se non l'ho ancora testato.

Tieni presente che l'ho usato per meno di un'ora ora, ma sono rimasto impressionato finora.

28
Soulman

Uso gdb, semplice e utile

26
cod

Uso DDD molto ed è abbastanza potente una volta che impari a usarlo. Una cosa che direi è non usarlo su X sopra il WAN perché sembra fare molti aggiornamenti dello schermo non necessari.

Inoltre, se non sei accoppiato con GDB e non ti dispiace fare un po 'di soldi, allora proverei TotalView. Ha un po 'di una curva di apprendimento ripida (potrebbe essere sicuramente più intuitiva), ma è il miglior debugger C++ che abbia mai usato su qualsiasi piattaforma e può essere esteso per introspettare i tuoi oggetti in modi personalizzati (permettendoti così di visualizzare un Elenco STL come un vero elenco di oggetti e non un gruppo di membri di dati interni confusi, ecc.)

16
Nick Bastin

Dai un'occhiata al progetto Eclipse CDT. È un plugin per Eclipse orientato allo sviluppo C/C++ e include una prospettiva di debug abbastanza ricca di funzionalità (che dietro le quinte usa GDB). È disponibile su un'ampia varietà di piattaforme.

8
user14636

Simile al frontend gdb di Eclipse è simile al frontend emacs, strettamente legato all'IDE emacs. Se lavori già con emacs, ti piacerà:

GDB Emacs Frontend

Ho usato KDbg (funziona solo con KDE).

6
codeguru

Qt Creator-on-Linux è certamente alla pari con Visual Studio-on-Windows per C++ al giorno d'oggi. Direi anche meglio dal punto di vista del debugger.

5
Marv

Ce n'è uno IDE che manca in questo elenco e che è molto efficiente (l'ho usato in molti progetti C/C++ senza problemi): Netbeans .

5
Florent

DDD è il GNU frontend per gdb: http://www.gnu.org/software/ddd/

5
mmattax

Ho provato un paio di guis diversi per gdb e ho trovato DDD il migliore. E mentre non posso commentare altre offerte non gdb per Linux, ho usato un certo numero di altri debugger su altre piattaforme.

gdb fa la maggior parte delle cose che hai nella tua lista dei desideri. DDD ha un aspetto migliore su di loro. Ad esempio, la commutazione del thread è semplificata. L'impostazione dei punti di interruzione è semplice come ci si aspetterebbe.

Hai anche una finestra cli nel caso ci sia qualcosa di oscuro che vuoi fare.

L'unica caratteristica di DDD che si distingue da qualsiasi altro debugger che ho usato è la "rappresentazione grafica" dei dati. Ciò consente di visualizzare e disporre strutture, oggetti e memoria come scatole trascinabili. Facendo doppio clic su un puntatore si apriranno i dati con riferimento con collegamenti visivi al genitore.

5
Andrew Edgecombe

Hai mai dato un'occhiata a debugger DS-5 ?

Esiste una versione a pagamento che include molte utili funzioni, ma è anche possibile utilizzare Community Edition gratuitamente (che è anche abbastanza utile soprattutto per i sistemi embedded).

Ho un'esperienza positiva con questo strumento quando eseguo il debug Android su dispositivo reale utilizzando Eclipse.

3
Viktor Malyi

Come qualcuno che ha familiarità con Visual Studio, ho esaminato diversi IDE open source per sostituirlo, e KDevelop arriva l'IMO più vicino ad essere qualcosa che una persona di Visual C++ può semplicemente sedersi e iniziare a utilizzare. Quando esegui il progetto in modalità debug, usa gdb ma kdevelop gestisce praticamente tutto in modo da non dover sapere che è gdb; stai solo facendo un singolo passo o assegnando orologi alle variabili.

Sfortunatamente non è ancora buono come il debugger di Visual Studio.

3
Dennis Ferron

Non devi dire se stai usando Windows o UNIX.

Sui sistemi UNIX, KDevelop è buono ma io uso KDbg perché è facile da usare e funziona anche con app non sviluppate in KDevelop.

Eclipse è buono su entrambe le piattaforme.

Su Windows, esiste un ottimo pacchetto chiamato Wascana Desktop Developer che è Eclipse CDT e MinGW tutti impacchettati e preconfigurati bene per il minimo del dolore. È la cosa migliore che ho trovato per lo sviluppo di GNU su Windows.

Ho usato tutti questi debugger e nessuno di questi è buono come MS Dev Studio. Eclipse/Wascana è probabilmente il più vicino ma ha delle limitazioni come non è possibile entrare nelle DLL e non fa un buon lavoro nell'esaminare le variabili.

3
Adam Pierce

Ciò che può essere superato sarà limitato dalle informazioni di debug che g ++ produce, in larga misura. Emacs fornisce un'interfaccia a gdb che ti consente di controllarlo tramite le barre degli strumenti/i menu e di visualizzare i dati in finestre separate, oltre a digitare direttamente i comandi gdb. Il CDT di Eclipse fornisce strumenti simili. Ho sentito parlare di Anjuta e Code :: Blocks ma non li ho mai usati.

3
Allen

Code: Blocks C++ IDE ha un wrapper grafico, con alcune delle funzionalità che desideri, ma niente come la potenza di VS.

2
crobar

VisualGDB è un altro plug-in di Visual Studio per lo sviluppo e il debug di applicazioni su piattaforme Linux e embedded.

2
Sergey Zhukov

Hai provato gdb -w con cygwin gdb. Si suppone che abbia un'interfaccia di Windows che funziona abbastanza bene.

L'unico problema che ho riscontrato è che sul mio computer attuale non ha funzionato in questo modo fino a quando non ho installato ddd. Ho il sospetto che richiede tcltk che è stato installato quando ho installato ddd.

1
BubbaT

KDevelop funziona abbastanza bene.

1
Harold Ekstrom

Se stai cercando gdb in Visual Studio, seleziona WinGDB .

0
Dominic.wig

L'ultima versione di Geany lo supporta (solo su Linux, però)

0
Milan Babuškov

Negli ultimi 15 mesi utilizzo insight (fornito con FC6). Non è eccezionale, è scritto in Tcl/Tk, ma è semplice e utile. DDD è di qualità/utilità simile, ma un po 'più difficile da usare (vari aspetti e omissioni della GUI). Ho anche provato a integrare gdb con il mio IDE, SlickEdit. Funzionava bene (ci ho giocato circa 4 ore), ma non mi sono piaciuti i cambi di contesto della GUI. Mi piace il mio IDE per rimanere invariato durante il debug; su Windows uso SlickEdit per IDE e Visual Studio Debugger per il debug. Quindi da 3: Insight , DDD e SlickEdit, Insight è la mia prima scelta, lo uso> 95% delle volte, la riga di comando gdb e DDD rappresentano l'altro 5%. Se avrò la possibilità, valuterò Eclipse ad un certo punto, il mio lavoro Il PC non sembra avere abbastanza RAM (solo 1GB) per eseguire Eclipse abbastanza bene.

Ho anche ricevuto molti elogi per TotalView, inclusa la prima mano durante un colloquio di lavoro. Ho ottenuto una valutazione per la nostra azienda alla fine del 2008, ma alla fine non abbiamo proceduto poiché gdb era abbastanza buono per le nostre esigenze; ed è gratuito e onnipresente.

0
Radim Cernej

Stavo cercando un debugger per passare da un programma in esecuzione. Dì: Allega. Il programma è stato creato con Eclipse, ma a causa forse di alcuni ostacoli multithreadding, nessun file sorgente a cui piaceva. Qualunque cosa.

Mi sono sentito molto a mio agio con NetBeans.

  • [debug] dal menu -> Allega Deugger ...
  • come processo ha scelto quello per il debug
  • come progetto [nuovo progetto]

Ora la finestra scompare e non vedi nulla. staccare dal processo. Lo Square Stop "Stop" aiuta.

  • importare la fonte dal progetto come ad es. cartella. " .../MyProject/src
  • Ora viene visualizzato nel progetto e puoi impostare i punti di interruzione.
  • ancora per collegare il debugger
  • ha scelto il processo per il debug.
  • il debugger dovrebbe arrestarsi se il programma raggiunge il punto di interruzione successivo.

Andare su [finestra] -> [Debug] -> La tua finestra ti metterà comodo.

0
Cutton Eye

Usa www.zero-bugs.com/ Zero debugger, richiede il supporto C++ 0x da gcc

0
siddhusingh