215 votes

Existe-t-il une interface graphique C++ gdb pour Linux ?

En bref : Est-ce que quelqu'un connaît une interface graphique pour gdb qui l'amène au même niveau ou proche de l'ensemble des fonctionnalités que l'on obtient dans la version la plus récente de Visual C++ ?

En détail : En tant que personne ayant passé beaucoup de temps à programmer sous Windows, l'une des plus grandes pierres d'achoppement que j'ai trouvées chaque fois que j'ai dû coder du C++ sous Linux est que le débogage de quoi que ce soit en utilisant la ligne de commande gdb me prend plusieurs fois plus de temps que dans Visual Studio, et cela 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 cherche une interface graphique qui :

  • Gère tous les éléments de base comme le passage au-dessus et dans le code, les variables de surveillance et les points d'arrêt.
  • Comprend et peut afficher le contenu des 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élisés tout en affichant des informations pertinentes telles que les types de paramètres.
  • Peut gérer des applications threadées et passer d'un thread à l'autre pour parcourir ou visualiser l'état d'une application.
  • Peut gérer l'attachement à un processus déjà démarré ou la lecture d'un core dump, en plus du démarrage du programme dans gdb.

Si un tel programme n'existe pas, j'aimerais connaître les expériences des gens avec des programmes qui répondent au moins à certains de ces points. Quelqu'un a-t-il des recommandations à faire ?

Edit :
C'est bien d'énumérer les possibilités, et je prends ce que je peux avoir, mais ce serait encore plus utile si vous pouviez inclure dans vos réponses :
(a) Si vous avez utilisé ou non cette interface graphique et si oui, quels sont vos commentaires positifs/négatifs à son sujet.
(b) Si vous le savez, quelles sont les caractéristiques susmentionnées qui sont/ne sont pas supportées.

Les listes sont faciles à trouver, les sites comme celui-ci sont excellents car ils permettent de se faire une idée des expériences personnelles des gens avec les applications.

21 votes

+1 pour "Les sites comme celui-ci sont géniaux car ils permettent de se faire une idée des expériences personnelles des gens". De nos jours, trop de gens se contentent de dresser une liste, ce qui, à mon avis, passe complètement à côté de l'essentiel.

1 votes

0 votes

85voto

Jon Ball Points 1139

Eclipse CDT offre une expérience comparable à l'utilisation de Visual Studio. J'utilise Eclipse CDT au quotidien pour écrire du code et déboguer des processus locaux et distants.

Si vous n'avez pas l'habitude d'utiliser un IDE basé sur Eclipse, il vous faudra un peu de temps pour vous habituer à l'interface graphique. Cependant, une fois que vous aurez compris les idées de l'interface graphique qui sont propres à Eclipse (par exemple, une perspective), l'utilisation de l'outil deviendra une expérience agréable.

L'outil CDT fournit un indexeur C/C++ décent qui vous permet de trouver rapidement les références aux méthodes dans votre base de code. Il fournit également un bel outil d'expansion de macro et un support limité pour le refactoring.

En ce qui concerne la prise en charge du débogage, CDT est capable de faire tout ce qui figure dans votre liste, à l'exception de la lecture d'un core dump (il est possible qu'il prenne en charge cette fonction, mais je n'ai jamais essayé de l'utiliser). De plus, mon expérience en matière de débogage de code à l'aide de templates est limitée, donc je ne suis pas sûr du type d'expérience que CDT fournira à cet égard.

Pour plus d'informations sur le débogage à l'aide d'Eclipse CDT, vous pouvez consulter ces guides :

10 votes

La lecture des vidages de noyau est supportée. (On l'appelle le débogueur post-mortem).

0 votes

J'ai eu une meilleure expérience du débogage avec Eclipse CDT qu'avec Visual Studios. Je n'ai cependant pas donné trop de chance à MSVC.

3 votes

Je pense que QtCreator devrait être mentionné aux côtés d'Eclipse car il est comparable.

79voto

Gdb -tui fonctionne bien si vous voulez quelque chose qui ressemble à une interface graphique, mais qui reste basé sur des caractères.

54voto

Vicent Marti Points 2942

Vous ne trouverez pas tout ce qui est GDB superposé qui peut rivaliser avec la puissance brute du débogueur de Visual Studio. Il est tout simplement trop puissant et trop bien intégré dans l'IDE.

Pour une alternative à Linux, essayez DDD si vous aimez les logiciels libres.

0 votes

Gdb fonctionnant sous emacs est très bon, et ne manque pas de puissance brute. Cependant, il nécessite des compétences emacs. Pour quelqu'un qui utilise déjà emacs, cette réponse est tout simplement fausse. Pour les non-emacsers, c'est probablement juste, bien que cgdb fasse quelque chose pour atténuer la douleur de gdb en ligne de commande.

2 votes

WinDBG est bien supérieur à ce que propose Visual Studio. Le débogueur de Visual Studio repose sur la même architecture que WinDBG. Ceci étant dit, GDB n'a rien à demander quand on le compare à Windbg. Un débogueur graphique qui soit meilleur que DDD serait formidable. Eclipse CDT est une bonne alternative. Je pense qu'il y avait une interface utilisateur KDE

121 votes

Oh, regarde. Une réponse qui fait une déclaration sans l'étayer du tout. Je trouve aussi étrange que la réponse qui ne répond pas à la question a été accepté.

49voto

Sergey Shandar Points 1123

Vérifiez Débogueur C/C++ Nemiver . Il est facile à installer dans Ubuntu (Developer Tools/Debugging).

Mise à jour : Nouveau lien.

0 votes

Absolument fabuleux Il est également supporté par apt : 'apt-get install nemiver'. Mon seul problème est que la construction à partir du dépôt a échoué à cause d'un ' No package gconf-2.0 found'.

0 votes

L'interface est assez claire et bonne à lire, mais elle plante parfois en utilisant les capacités de l'interface v0.9.6. Il accepte également les paramètres d'application débogués, ce que je ne peux toujours pas laisser faire à ddd.

0 votes

Également disponible sur Fedora 30 (au moins). Je viens de tomber par hasard sur cette question et nemiver.

32voto

Soulman Points 1083

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

  • Créez un nouveau projet, "Importation d'un projet basé sur un fichier Makefile".
  • Dirigez-le vers le dossier racine de votre projet (il indexera les sources qui s'y trouvent, et sa rapidité est impressionnante).
  • Allez dans les paramètres du projet et ajoutez une configuration d'exécution, puis spécifiez l'exécutable que vous voulez déboguer, ainsi que ses arguments.
  • Qt Creator semble insister pour construire votre projet avant de le déboguer. Si vous ne voulez pas cela, ou si vous n'utilisez pas make, allez simplement dans projects -> build (panneau de gauche), puis, sur le panneau de droite dans "Build Steps", supprimez toutes les étapes, y compris l'étape par défaut lorsque vous avez créé le projet.

Cela peut sembler être un peu beaucoup de travail 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 de 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. L'attachement aux processus existants et les vidages de noyau semblent être supportés, bien que je ne l'aie pas encore testé.

Gardez à l'esprit que je l'utilise depuis moins d'une heure maintenant, mais je suis impressionné jusqu'à présent.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X