Existe-t-il une interface graphique C++ gdb pour Linux? [fermé]

brièvement: Est-ce que quelqu'un connaît une interface graphique pour gdb qui l'amène sur le même niveau ou proche du jeu de fonctionnalités que vous obtenez dans la version plus récente de Visual C++?

en détail: en tant que quelqu'un qui a passé beaucoup de temps à programmer sous Windows, l'un des plus gros écueils que j'ai trouvé chaque fois que je dois coder C++ sous Linux est que déboguer quoi que ce soit en utilisant commandline gdb me prend plusieurs fois plus de temps qu'il ne le fait dans Visual Studio, et il ne semble pas s'améliorer avec de la pratique. Certaines choses sont simplement plus faciles ou plus rapides à exprimer graphiquement.

spécifiquement, je cherche une interface graphique qui:

  • traite toutes les bases comme le fait de passer au code, de regarder les variables et les points de rupture
  • comprend et peut afficher le contenu des types de données c++ complexes et imbriquées
  • ne se laisse pas confondre et peut de préférence passer intelligemment à travers le code et les données structures tout en affichant des informations pertinentes telles que les types de paramètres
  • peut traiter des applications filetées et passer entre différents fils pour passer ou voir l'état de
  • peut gérer la fixation à un processus déjà commencé ou la lecture d'un dump core, en plus de démarrer le programme dans gdb

si un tel programme n'existe pas, alors j'aimerais en savoir plus sur les expériences que les gens ont vécues avec programmes qui répondent au moins à certains des points. Quelqu'un aurait-il des recommandations?

Edit:

Énumérer les possibilités est génial, et je vais prendre ce que je peux obtenir, mais il serait encore plus utile si vous pourriez inclure dans vos réponses:

(a) Si oui ou non vous avez réellement utilisé cette interface graphique et si oui, quels commentaires positifs/négatifs vous avez à ce sujet.

(b) Si vous savez, quelles sont les fonctionnalités mentionnées ci-dessus qui sont/ne sont pas supportées

listes sont faciles à trouver, des sites comme celui-ci sont grands parce que vous pouvez obtenir une idée de l'expérience personnelle des gens avec des applications.

195

28 réponses

Vous ne trouverez pas de rien superposition GDB qui peut rivaliser avec la puissance brute du débogueur Visual Studio. C'est juste trop puissant, et c'est juste trop bien intégré dans L'IDE.

pour une alternative Linux, essayez DDD si le logiciel libre est votre truc.

54
répondu Vicent Marti 2016-04-20 15:20:00

Eclipse CDT fournira une expérience comparable à L'utilisation de Visual Studio. J'utilise Eclipse CDT sur une base quotidienne pour écrire du code et déboguer des processus locaux et distants.

si vous n'êtes pas familier avec L'utilisation D'un IDE basé sur Eclipse, L'interface graphique prendra un peu de temps pour s'y habituer. Cependant, une fois que vous arrivez à comprendre les idées GUI qui sont uniques à Eclipse (par exemple une perspective), l'utilisation de l'outil devient une belle expérience.

Le CDT de l'outillage fournit un index C/C++ décent qui vous permet de trouver rapidement des références aux méthodes dans votre base de code. Il fournit également un outil d'expansion macro agréable et un soutien de remaniement limité.

en ce qui concerne le support pour le débogage, CDT est capable de faire tout dans votre liste à l'exception de la lecture d'un dump core (il peut supporter cela, mais je n'ai jamais essayé d'utiliser cette fonctionnalité). En outre, mon expérience avec le débogage de code en utilisant des gabarits est limitée, donc je ne suis pas sûr quel genre de expérience de la tdc à cet égard.

pour plus d'informations sur le débogage en utilisant Eclipse CDT, vous pouvez consulter ces guides:

83
répondu Jon Ball 2008-09-17 02:36:01

gdb-tui fonctionne bien si vous voulez quelque chose GUI-ish, mais toujours basé sur les caractères.

75
répondu 2008-09-17 02:08:37

Check out Nemiver C / C++ Debugger . Il est facile à installer Ubuntu (Outils de développement/Débogage).

mise à Jour: Nouveau lien.

44
répondu Sergey Shandar 2014-01-15 00:41:15

je déteste l'idée du développement de Windows, mais le débogueur VC++ est parmi les meilleurs que j'ai vu. Je n'ai pas trouvé D'interface graphique proche de celle de VC.

GDB est génial une fois que vous obtenez vraiment utilisé. Utilise-le avec assez de colère et tu deviendras très compétent. Je peux fouiner autour d'un programme faisant toutes les choses que vous avez énumérées sans beaucoup d'effort plus. Cela a pris un mois environ de souffrance à cause d'un lien SSH vers un serveur distant avant que je ne sois compétent. Je n'avais jamais revenir.

DDD est vraiment puissant mais il était assez buggy. Je l'ai trouvé figé assez souvent quand il a reçu des messages de GDB qu'il ne grok pas. C'est bien parce qu'il a une fenêtre d'interface gdb pour que vous puissiez voir ce qui se passe et aussi interagir directement avec gdb. DDD ne peut pas être utilisé sur une session X distante dans mon environnement (un vrai problème, puisque je suis assis à un client mince quand je fais Unix dev) pour une raison quelconque donc il est pour moi.

KDevelop a suivi le style typique de KDE et a tout exposé à l'utilisateur. Je n'ai pas non plus eu de chance en déboguant des programmes non KDevelop dans KDevelop.

le studio de programmation Gnat (GPS) est en fait un très bon front-end de GDB. Il ne gère pas seulement les projets Ada, il vaut donc la peine d'essayer si vous avez besoin d'un débogueur.

vous pourriez utiliser Eclipse, mais il est assez lourd et beaucoup de gens Unix expérimentés que j'ai travaillé avec (moi inclus) ne pas attention à son interface, qui ne sera pas seulement STFU et sortir de votre chemin. Eclipse semble aussi prendre beaucoup d'espace et de courir comme un chien.

28
répondu Adam Hawes 2009-02-02 01:29:55

Qt Creator semble être une bonne chose. Un collègue m'a montré une façon de le configurer pour le débogage:

  • Créer un nouveau projet, "l'Importation du fichier Makefile Projet".
  • pointez-le vers votre dossier de projet racine (il indexera les sources sous lui, et il est remarquablement rapide).
  • allez dans Paramètres du projet et ajoutez une configuration d'exécution, puis spécifiez l'exécutable que vous voulez déboguer, et ses arguments.
  • Qt Creator semble insister sur la construction de votre projet avant de débogage. Si vous ne voulez pas, ou ne l'utilisez pas, vous pouvez remplacer la commande make. Je l'ai changé pour "vrai". :)

cela peut sembler un peu trop de travail pour déboguer une application que j'avais déjà compilée, mais ça en vaut la peine. Le débogueur affiche les threads, les empilements et les variables locales d'une manière similaire à Visual Studio et utilise même beaucoup des mêmes raccourcis clavier. Il semble bien traiter les gabarits, au moins std::string et std::map. S'attacher aux processus existants et aux dumps de cœur semble être supporté, bien que je ne l'ai pas encore testé.

gardez à l'esprit que je l'ai utilisé pendant moins d'une heure maintenant, mais je suis impressionné jusqu'à présent.

28
répondu Soulman 2010-08-24 13:40:34

j'utilise cgdb, simple et utile

24
répondu cod 2009-07-15 11:54:53

j'utilise beaucoup de DDD, et c'est assez puissant une fois que vous apprenez à l'utiliser. Une chose que je dirais est de ne pas l'utiliser sur X sur le WAN car il semble faire beaucoup de mises à jour d'écran inutiles.

aussi, si vous n'êtes pas accouplé à GDB et que ça ne vous dérange pas de trouver un peu d'argent, alors je vais essayer TotalView. Il a une courbe d'apprentissage assez raide (il pourrait certainement être plus intuitif), mais c'est le meilleur débogueur C++ que j'ai jamais utilisé sur n'importe quelle plate-forme et peut être étendu à connaître le fonctionnement de vos objets de manières personnalisée (vous permettant ainsi d'afficher une liste STL comme une liste d'objets, et non pas un tas de confusion interne de données des membres, etc.)

16
répondu Nick Bastin 2008-09-17 02:10:07

Découvrez le projet Eclipse CDT. Il s'agit d'un plugin pour Eclipse orienté vers le développement C/C++ et inclut une perspective de débogage assez riche en fonctionnalités (que les coulisses utilisent GDB). Il est disponible sur une grande variété de plateformes.

8
répondu user14636 2008-09-17 01:48:54

similaire confortable à la frontende eclipse gdb est la frontende emacs, étroitement liée à l'IDE emacs. Si vous travaillez déjà avec emacs, vous aimerez:

GDB Emacs Frontend

7
répondu Johannes Schaub - litb 2017-05-23 12:34:41

DDD est la interface GNU pour gdb: http://www.gnu.org/software/ddd/

5
répondu mmattax 2008-09-17 01:50:48

Qt Creator-on-Linux est certainement sur le même pied que Visual Studio-on-Windows pour C++ de nos jours. Je dirais même mieux du côté du débogueur.

5
répondu Marv 2010-11-20 15:47:24

il y a un IDE qui manque dans cette liste et qui est très efficace (je l'ai utilisé dans de nombreux projets C/C++ sans aucun problème): Netbeans .

5
répondu Florent 2013-11-13 00:50:01

j'ai essayé quelques interfaces graphiques différentes pour gdb et j'ai trouvé DDD le meilleur d'entre eux. Et bien que je ne puisse pas commenter d'autres offres non gdb pour linux, j'ai utilisé un certain nombre d'autres débogueurs sur d'autres plateformes.

gdb la majorité des choses que vous avez dans votre liste de souhaits. Le DDD leur donne une meilleure image. Par exemple la commutation de fil est rendue plus simple. Définition de points d'arrêt est aussi simple que vous attendez.

vous obtenez également un cli window au cas où il y a quelque chose d'obscur que vous voulez faire.

la seule caractéristique de DDD qui se démarque de tout autre débogueur que j'ai utilisé est le"graphe" des données. Cela vous permet d'afficher et d'arranger les structures, les objets et la mémoire comme des boîtes traînantes. Un double clic sur un pointeur ouvrira les données déréférencées avec des liens visuels vers le parent.

4
répondu Andrew Edgecombe 2008-09-23 12:10:04

j'ai utilisé KDbg (ne fonctionne que sous KDE).

4
répondu codeguru 2008-10-25 19:01:28

ce qui peut être traversé sera limité par les informations de débogage que g++ produit, dans une large mesure. Emacs fournit une interface à gdb qui vous permet de le contrôler via les barres d'outils/menus et d'afficher les données dans des fenêtres séparées, ainsi que de taper des commandes gdb directement. Le CDT d'Eclipse fournit des outils similaires. J'ai entendu parler D'Anjuta et de Code::Blocks mais je ne les ai jamais utilisés.

3
répondu Allen 2008-09-17 01:47:34

en tant que quelqu'un de familier avec Visual Studio, j'ai regardé plusieurs IDE open source pour le remplacer, et KDevelop vient L'IMO la plus proche d'être quelque chose qu'une personne Visual C++ peut simplement s'asseoir et commencer à utiliser. Quand vous exécutez le projet en mode de débogage, il utilise gdb mais kdevelop s'occupe de l'ensemble pour que vous n'ayez pas à savoir que c'est gdb; vous êtes juste un pas simple ou affecter des montres à des variables.

Il n'est toujours pas aussi bon que le Visuel Débogueur de Studio, malheureusement.

3
répondu 2008-09-17 02:16:58

vous ne mentionnez pas si vous utilisez Windows ou UNIX.

sur les systèmes UNIX, Kdbg est bon mais j'utilise KDbg parce qu'il est facile à utiliser et fonctionnera également avec des applications non développées dans KDevelop.

Eclipse est bon sur les deux plateformes.

sur Windows, il ya un grand paquet appelé Wascana développeur de bureau qui est Eclipse CDT et MinGW tout emballé et préconfiguré bien pour le minimum de douleur. C'est la meilleure chose que j'ai trouvée pour développer le code GNU sur Windows.

j'ai utilisé tous ces débogueurs et aucun N'est aussi bon que MS Dev Studio. Eclipse / Wascana est probablement le plus proche mais il a des limites comme vous ne pouvez pas entrer dans DLLs et il ne fait pas un aussi bon travail à l'examen des variables.

3
répondu Adam Pierce 2009-02-02 01:01:44

avez-vous déjà regardé debugger DS-5 ?

il y a une version payante qui inclut beaucoup de fonctionnalités utiles, mais vous pouvez également utiliser Community Edition gratuitement (ce qui est également très utile surtout pour les systèmes embarqués).

j'ai une expérience positive avec cet outil lors du débogage des applications Android sur l'appareil réel en utilisant eclipse.

3
répondu Viktor Malyi 2017-09-25 14:01:15

Le Code:Blocks C++ IDE a un graphique wrapper, avec quelques-unes des fonctionnalités que vous voulez, mais rien de comparable à la puissance de VS.

2
répondu crobar 2011-11-24 11:15:01

VisualGDB est un autre plugin de studio visuel pour développer et déboguer des applications sur des plateformes linux et embarquées.

2
répondu Sergey Zhukov 2014-05-27 23:08:52

KDevelop fonctionne assez bien.

1
répondu Harold Ekstrom 2008-09-17 01:53:34

avez-vous essayé gdb-w avec cygwin gdb. Il est supossé pour avoir une interface windows qui fonctionne assez bien.

le seul problème que j'ai trouvé est que sur ma machine actuelle, il n'a pas fonctionné de cette façon jusqu'à ce que j'ai installé ddd. Je soupçonne qu'il nécessite tcltk qui a été installé lorsque j'ai installé ddd.

1
répondu BubbaT 2009-01-02 01:52:23

la dernière version de Geany le supporte (seulement sur Linux, cependant)

0
répondu Milan Babuškov 2008-09-17 02:08:21

si vous cherchez gdb sous Visual Studio, alors cochez WinGDB .

0
répondu Dominic.wig 2009-12-03 20:35:23

au cours des 15 derniers mois, j'utilise insight (came with FC6). Il n'est pas grand, il est écrit en Tcl/Tk, mais il est simple et utile. DDD est de qualité / utilité similaire, mais un peu plus difficile à utiliser (diverses GUI gotchas et omissions). J'ai aussi essayé d'intégrer gdb avec mon IDE, SlickEdit. Cela a bien fonctionné (j'ai joué environ 4 heures avec), mais je n'ai pas aimé les commutateurs de contexte GUI. J'aime que mon IDE reste inchangé pendant le débogage; sur Windows J'utilise SlickEdit pour IDE et Visual Studio Débogueur pour déboguage. Donc à partir du 3: Insight, DDD et SlickEdit, Insight est mon premier choix, je l'utilise >95% du temps, gdb en ligne de commande et DDD constituent les 5% restants. Si j'en ai l'occasion, je vais eval Eclipse à un moment donné, mon PC de travail ne semble pas avoir assez de RAM (1 Go seulement) pour exécuter Eclipse raisonnablement bien.

J'ai aussi entendu beaucoup d'éloges pour TotalView, y compris de première main lors d'une entrevue d'emploi. J'ai obtenu une évaluation pour notre société fin 2008, mais à la fin nous n'a pas procédé comme gdb était assez bon pour nos besoins; et il est libre et omniprésent.

0
répondu Radim Cernej 2009-12-03 21:02:59

Use www.zero-bugs.com/ Zéro débogueur, il nécessite le support C++0x de gcc

0
répondu siddhusingh 2012-02-16 07:21:52

je cherchais un débogueur pour passer à travers un programme en cours d'exécution. Dire: Attacher. Le programme a été construit avec eclipse, mais à cause de peut-être quelques obstacles multithreadding, pas de sources où fond. Ce que jamais.

j'étais très à L'aise avec NetBeans.

  • [debug] dans le menu -> Attach Deugger...
  • comme processus choisi le débugger
  • projet [nouveau projet]

maintenant la fenêtre disparaît et vous ne voyez rien. se détacher du processus. Le Carré "Stop" aide.

  • importer la source du projet comme par exemple un dossier. ".../ MyProject / src
  • maintenant il apparaît dans votre projet, et vous pouvez définir des points de rupture.
  • nouveau accordez débogueur
  • a choisi le processus pour déboguer.
  • debugger devrait s'arrêter si programm atteint la prochaine point d'arrêt.

[fenêtre] -> [Débogage] -> la fenêtre de votre faire compfortable.

0
répondu Cutton Eye 2016-07-04 19:41:26