En bref: quelqu'un connaît-il une interface graphique pour gdb qui la rend comparable ou proche de l'ensemble de fonctionnalités que vous obtenez dans la version la plus récente de Visual C ++?
En détail: en tant que quelqu'un qui a passé beaucoup de temps à programmer dans Windows, l'un des plus gros obstacles que j'ai trouvés chaque fois que je dois coder C ++ sous Linux est que le débogage de tout ce qui utilise la ligne de commande gdb me prend plusieurs fois plus de temps que dans Visual Studio, et il ne semble pas s'améliorer avec la pratique. Certaines choses sont simplement plus faciles ou plus rapides à exprimer graphiquement.
Plus précisément, je recherche une interface graphique qui:
- Gère toutes les bases comme passer au-dessus et dans le code, surveiller les variables et les points d'arrêt
- Comprend et peut afficher le contenu de types de données C ++ complexes et imbriqués
- Ne s'embrouille pas et peut de préférence parcourir intelligemment le code et les structures de données modèles tout en affichant les informations pertinentes telles que les types de paramètres
- Peut gérer des applications filetées et basculer entre différents threads pour parcourir ou afficher l'état de
- Peut gérer la connexion à un processus déjà démarré ou la lecture d'un vidage de mémoire, en plus de démarrer le programme dans gdb
Si un tel programme n'existe pas, j'aimerais connaître les expériences que les gens ont eues avec des programmes qui répondent au moins à certains points. Quelqu'un a-t-il des recommandations?
Edit:
Énumérer les possibilités est génial, et je prendrai ce que je peux obtenir, mais il serait encore plus utile si vous pouviez inclure dans vos réponses:
(a) si vous avez réellement utilisé cette interface graphique et si oui , quels commentaires positifs / négatifs vous en avez.
(b) Si vous savez, lesquelles des fonctionnalités susmentionnées sont / ne sont pas prises en charge
Les listes sont faciles à trouver, des sites comme celui-ci sont excellents car vous pouvez vous faire une idée des expériences personnelles des gens avec les applications.
Réponses:
Vous ne trouverez rien de superposant GDB qui puisse rivaliser avec la puissance brute du débogueur Visual Studio. Il est tout simplement trop puissant et il est tout simplement trop bien intégré à l'IDE.
Pour une alternative Linux, essayez DDD si vous préférez les logiciels libres.
la source
Eclipse CDT offrira une expérience comparable à l'utilisation de Visual Studio. J'utilise Eclipse CDT quotidiennement 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 avez compris les idées d'interface graphique uniques à Eclipse (par exemple une perspective), l'utilisation de l'outil devient une expérience agréable.
L'outil CDT fournit un indexeur 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 bel outil d'extension de macro et un support de refactorisation limité.
En ce qui concerne la prise en charge du débogage, CDT est capable de tout faire dans votre liste à l'exception de la lecture d'un vidage de mémoire (il peut le prendre en charge, mais je n'ai jamais essayé d'utiliser cette fonctionnalité). De plus, mon expérience avec le débogage de code à l'aide de modèles est limitée, donc je ne sais pas quel type d'expérience CDT fournira à cet égard.
Pour plus d'informations sur le débogage à l'aide d'Eclipse CDT, vous pouvez consulter ces guides:
la source
gdb -tui fonctionne bien si vous voulez quelque chose d'interface graphique, mais toujours basé sur des caractères.
la source
Consultez le débogueur Nemiver C / C ++ . Il est facile à installer dans Ubuntu (Developer Tools / Debugging).
Mise à jour: nouveau lien.
la source
Qt Creator semble être une bonne chose. Un collègue m'a montré une façon de le configurer pour le débogage:
Cela peut sembler un peu difficile pour déboguer une application que j'avais déjà compilée, mais cela en vaut la peine. Le débogueur affiche les threads, les piles et les variables locales d'une manière similaire à Visual Studio et utilise même plusieurs des mêmes raccourcis clavier. Il semble bien gérer les modèles, au moins std :: string et std :: map. La connexion aux processus existants et aux vidages de mémoire semble être prise en charge, bien que je ne l'ai pas encore testée.
Gardez à l'esprit que je l'utilise depuis moins d'une heure maintenant, mais je suis impressionné jusqu'à présent.
la source
Je déteste l'idée du développement Windows, mais le débogueur VC ++ est parmi les meilleurs que j'ai vus. Je n'ai pas trouvé d'interface graphique proche de celle de VC.
GDB est génial une fois que vous vous y êtes vraiment habitué. Utilisez-le avec suffisamment de colère et vous deviendrez très compétent. Je peux faire le tour d'un programme faisant tout ce que vous avez énuméré sans trop d'effort. Il m'a fallu environ un mois pour souffrir d'une liaison SSH vers un serveur distant avant d'être compétent. Je ne reviendrais jamais cependant.
DDD est vraiment puissant mais c'était assez buggé. Je l'ai trouvé gelé assez souvent quand il recevait des messages de GDB qu'il ne tenait pas. C'est bien car 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, car je suis assis sur un client léger lorsque je fais du développement Unix) pour une raison quelconque, c'est donc pour moi.
KDevelop a suivi le style typique de KDE et a exposé TOUT à l'utilisateur. Je n'ai jamais eu non plus de chance de déboguer des programmes non KDevelop dans KDevelop.
Le Gnat Programming Studio (GPS) est en fait un bon front-end pour 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 pouvez utiliser Eclipse, mais son poids est assez lourd et beaucoup de personnes Unix chevronnées avec lesquelles j'ai travaillé (moi y compris) ne se soucient pas beaucoup de son interface, qui ne se contentera pas de STFU et ne vous gênera pas. Eclipse semble également prendre beaucoup de place et courir comme un chien.
la source
J'utilise cgdb, simple et utile
la source
J'utilise beaucoup 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.
De plus, si vous n'êtes pas connecté à GDB et que cela ne vous dérange pas de verser un peu d'argent, j'essaierais TotalView. Il a une courbe d'apprentissage assez abrupte (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 pour introspecter vos objets de manière personnalisée (vous permettant ainsi de visualiser un Liste STL en tant que liste réelle d'objets, et non un groupe de membres de données internes déroutants, etc.)
la source
Découvrez le projet Eclipse CDT. C'est un plugin pour Eclipse orienté vers le développement C / C ++ et comprend une perspective de débogage assez riche en fonctionnalités (qui en arrière-plan utilise GDB). Il est disponible sur une grande variété de plateformes.
la source
Le frontend d'emacs, étroitement lié à l'IDE emacs, est similaire au frontend eclipse gdb. Si vous travaillez déjà avec emacs, vous l'aimerez:
GDB Emacs Frontend
la source
DDD est l'interface GNU pour gdb: http://www.gnu.org/software/ddd/
la source
J'ai utilisé KDbg (ne fonctionne que sous KDE).
la source
J'ai essayé quelques guis différents pour gdb et j'ai trouvé que DDD était 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 plates-formes.
gdb fait la majorité des choses que vous avez dans votre liste de souhaits. DDD leur offre un front plus agréable. Par exemple, le changement de thread est simplifié. La définition des points d'arrêt est aussi simple que vous vous attendez.
Vous obtenez également une fenêtre cli au cas où vous voudriez faire quelque chose d'obscur.
La seule caractéristique de DDD qui se démarque de tout autre débogueur que j'ai utilisé est le "graphique" des données. Cela vous permet d'afficher et d'organiser les structures, les objets et la mémoire sous forme de boîtes glissables. Double-cliquez sur un pointeur pour ouvrir les données déréférencées avec des liens visuels vers le parent.
la source
Qt Creator-on-Linux est certainement à égalité avec Visual Studio-on-Windows pour C ++ de nos jours. Je dirais même mieux du côté du débogueur.
la source
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 .
la source
Ce qui peut être franchi va être 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 directement les commandes gdb. 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.
la source
En tant que familier de Visual Studio, j'ai regardé plusieurs IDE open source pour le remplacer, et KDevelop est l'IMO le plus proche d'être quelque chose qu'une personne Visual C ++ peut simplement s'asseoir et commencer à utiliser. Lorsque vous exécutez le projet en mode débogage, il utilise gdb mais kdevelop gère à peu près tout pour que vous n'ayez pas à savoir que c'est gdb; vous êtes juste un pas ou assigner des montres à des variables.
Malheureusement, il n'est toujours pas aussi bon que le débogueur Visual Studio.
la source
Vous ne mentionnez pas si vous utilisez Windows ou UNIX.
Sur les systèmes UNIX, KDevelop est bon mais j'utilise KDbg car il est facile à utiliser et fonctionnera également avec des applications non développées dans KDevelop.
Eclipse est bon sur les deux plateformes.
Sous Windows, il existe un excellent package appelé Wascana Desktop Developer qui est Eclipse CDT et MinGW tous emballés et préconfigurés correctement pour le minimum de douleur. C'est la meilleure chose que j'ai trouvée pour développer du code GNU sous Windows.
J'ai utilisé tous ces débogueurs et aucun d'entre eux n'est aussi bon que MS Dev Studio. Eclipse / Wascana est probablement le plus proche mais il a des limitations comme vous ne pouvez pas entrer dans les DLL et il ne fait pas aussi bien l'examen des variables.
la source
Avez-vous déjà jeté un œil au débogueur DS-5 ?
Il existe une version payante qui comprend de nombreuses fonctionnalités utiles, mais vous pouvez également utiliser Community Edition gratuitement (ce qui est également très utile en particulier pour les systèmes embarqués).
J'ai une expérience positive avec cet outil lors du débogage d'applications Android sur un appareil réel à l'aide d'Eclipse.
la source
L' IDE Code: Blocks C ++ a un wrapper graphique, avec quelques-unes des fonctionnalités que vous souhaitez, mais rien de comparable à la puissance de VS.
la source
VisualGDB est un autre plugin Visual Studio pour développer et déboguer des applications sur Linux et les plates-formes embarquées.
la source
KDevelop fonctionne plutôt bien.
la source
Avez-vous essayé gdb -w avec cygwin gdb. Il est supposé avoir une interface Windows qui fonctionne assez bien.
Le seul problème que j'ai trouvé, c'est que sur ma machine actuelle, il ne fonctionnait pas de cette façon avant d'avoir installé ddd. Je soupçonne qu'il nécessite tcltk qui a été installé lorsque j'ai installé ddd.
la source
La dernière version de Geany le prend en charge (uniquement sous Linux, cependant)
la source
Si vous recherchez gdb sous Visual Studio, vérifiez WinGDB .
la source
Au cours des 15 derniers mois, j'ai utilisé Insight (fourni avec FC6). Ce n'est pas génial, c'est écrit en Tcl / Tk, mais c'est simple et utile. DDD est de qualité / utilitaire similaire, mais un peu plus difficile à utiliser (divers accrochages et omissions de l'interface graphique). J'ai également essayé d'intégrer gdb à mon IDE, SlickEdit. Cela a bien fonctionné (j'ai joué environ 4 heures avec), mais je n'ai pas aimé les changements de contexte GUI. J'aime que mon IDE reste inchangé pendant le débogage; sous Windows, j'utilise SlickEdit pour IDE et Visual Studio Debugger pour le débogage. Donc, à partir des 3: Insight, DDD et SlickEdit, Insight est mon premier choix, je l'utilise> 95% du temps, la ligne de commande gdb et DDD constituent les 5% restants. Si j'en ai l'occasion, j'évaluerai Eclipse à un moment donné, mon PC de travail ne semble pas avoir suffisamment de RAM (1 Go uniquement) pour faire fonctionner Eclipse raisonnablement bien.
J'ai également entendu beaucoup d'éloges pour TotalView, y compris de première main lors d'un entretien d'embauche. J'ai obtenu un eval pour notre entreprise fin 2008, mais au final nous n'avons pas procédé car gdb était assez bien pour nos besoins; et c'est gratuit et omniprésent.
la source
Utilisez www.zero-bugs.com/ Zero debugger, il nécessite le support C ++ 0x de gcc
la source
Je cherchais un débogueur pour parcourir un programme en cours d'exécution. Dites: attachez. Le programme a été construit avec eclipse, mais à cause peut-être de certains obstacles multithreadding, aucun fichier source n'a été apprécié. Peu importe.
Je suis devenu très à l'aise avec NetBeans.
Maintenant, la fenêtre disparaît et vous ne voyez rien. se détacher du processus. L'arrêt de lecture carré aide.
Aller dans [window] -> [Debugging] -> Will your window make compfortable.
la source