web-dev-qa-db-fra.com

Quel est le meilleur débogueur Linux C / C ++ (ou frontal pour gdb) pour aider à l’enseignement de la programmation?

J'enseigne aux novices une sorte de cours de programmation C++ "allégé" ("allégé", ce qui signifie pas de pointeur, pas de classe, juste du vieux C, plus des références, une chaîne et des vecteurs STL). Les étudiants n’ayant aucune expérience en programmation, je pense donc que l’utilisation d’un débogueur interactif les aiderait à comprendre le déroulement du programme, les variables et la récursion.

Le cours est enseigné sous Linux. Leur apprendre à utiliser gdb est tout simplement excessif (ils n'utiliseront ni ne comprendront la plupart des fonctionnalités). J'ai juste besoin de quelque chose de simple mais facile à utiliser: pour voir à quelle ligne se trouve le programme, ce qu'il y a dans la pile (variables locales, appels précédents, etc.). Je ressemble à l'ancien débogueur de Turbo Pascal, Turbo C++ ou Visual Studio.

Je vous remercie,

106
omer.gimenez

ddd est une interface graphique pour gdb assez jolie. L’un des inconvénients est une interface X classique, mais je crois me rappeler qu’elle est assez intuitive.

35
jbleners

Vous pouvez essayer d'utiliser Insight une interface graphique pour gdb écrite par Red Hat. Si vous utilisez l'environnement de bureau GNOME, vous pouvez également essayer Nemiver .

25
Narek Babajanyan

Vous voudrez peut-être consulter Eclipse CDT. Il fournit un C/C++ IDE qui s'exécute sur plusieurs plates-formes (Windows, Linux, Mac OS X, etc.). Le débogage avec Eclipse CDT est comparable à l'utilisation d'autres outils tels que Visual Studio.

Vous pouvez consulter le tutoriel Eclipse CDT Debug , qui comprend également un certain nombre de captures d'écran.

16
Jon Ball

Qt Creator , à part d’autres goodies, a également une bonne intégration de débogueur, pour CDB, GDB et le débogueur Symnbian, sur toutes les plates-formes prises en charge. Vous n'avez pas besoin d'utiliser Qt pour utiliser l'EDI Qt Creator, ni pour utiliser QMake - il intègre également CMake, bien que QMake soit très facile à utiliser.

Vous voudrez peut-être utiliser Qt Creator en tant que IDE pour enseigner la programmation avec, considérez qu'il a quelques bonnes fonctionnalités:

  • Editeur C++ très intelligent et avancé
  • Outils de gestion de projet et de construction
  • Intégration QMake et CMake
  • Système d'aide intégré et sensible au contexte
  • Excellent débogueur visuel (CDB, GDB et Symbian)
  • Prend en charge GCC et VC++
  • Outils de navigation rapide de code
  • Prend en charge Windows, Linux et Mac OS X
14
CMircea

C'est peut-être indirect pour gdb (parce que c'est un IDE), mais mes recommandations seraient KDevelop . Étant assez gâté avec le débogueur de Visual Studio (professionnellement au travail depuis de nombreuses années), je me suis toujours senti le débogage le plus confortable de KDevelop (passe-temps à la maison, car je ne pouvais pas me permettre Visual Studio à des fins personnelles - jusqu'à la sortie d'Express Edition ). Cela ressemble à quelque chose de similaire à Visual Studio par rapport aux autres IDE que j'ai expérimentés (y compris Eclipse CDT) pour le débogage étape par étape, étape par étape, etc. (placer des points d'arrêt est un peu gênant car je ne n’aime pas trop utiliser la souris pour coder, mais ce n’est pas difficile).

12
HidekiAI

Je travaille pour TotalView et nous avons une version gratuite pour les étudiants de notre débogueur commercial Linux C++ (également Fortran et MPI, ainsi que threads).

http://www.roguewave.com/company/academic-programs.aspx

Il est à noter que nous avons également fortement réduit les prix des licences "partagées - en classe".

Voir http://www.roguewave.com/products/totalview/resources/videos.aspx pour des vidéos rapides illustrant le fonctionnement du produit.

Certaines fonctionnalités spécifiques de TotalView pour C++:

  • Transformation automatique des classes de collection STL en quelque chose de raisonnable
  • "Plongez" sur les pointeurs pour voir ce qui est indiqué
  • "Casting" facile des pointeurs sur les tableaux
  • La possibilité d'examiner un seul champ de données dans chaque instance d'un objet dans un tableau d'objets
  • Définir un point d'arrêt sur toutes les instances d'une classe

Chris Gottbrath Chef de produit TotalView Logiciel Rogue Wave

4
Chris Gottbrath