Quel est le meilleur débogueur Linux C / C ++ (ou frontal de gdb) pour aider à enseigner la programmation? [fermé]


106

J'enseigne une sorte de cours de programmation C ++ "lite" aux novices ("lite" signifiant pas de pointeurs, pas de classes, juste du vieux C, plus les références, la chaîne STL et les vecteurs). Les étudiants n'ont aucune expérience préalable en programmation, donc je pense que l'utilisation d'un débogueur interactif les aiderait à comprendre le déroulement du programme, les variables et la récursivité.

Le cours est enseigné sous Linux. Leur apprendre à utiliser gdb est juste exagéré (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 à quelque chose de similaire à l'ancien débogueur Turbo Pascal ou Turbo C ++ Borland, ou au débogueur Visual Studio.

Merci,


4
Je ne comprends pas la justification de l'enseignement du C ++ sans cours. Mais je reconnais l'effort ... de l'enseignement je veux dire :-)
m-ric

1
C / C ++ ne me semble pas être une bonne option pour les débutants ...
Jaime Hablutzel

Réponses:


36

ddd est une interface graphique pour gdb qui est plutôt sympa. L'un des inconvénients est une interface X classique, mais je semble me rappeler qu'elle est assez intuitive.


2
DDD est vraiment une excellente interface. J'enseignais le C ++. Mes étudiants n'ont jamais pu comprendre comment utiliser gdb, mais après leur avoir montré un rapide tour d'horizon de ddd (juste les bases et leur avoir dit de compiler avec -g), ils sont rapidement devenus beaucoup plus compétents pour déboguer leur code et comprendre ce qui se passait. L'interface utilisateur peut paraître "ancienne et datée", mais pourquoi corriger ce qui fonctionne évidemment?
wasatz

43
ddd a l'une des interfaces utilisateur les plus laides que j'ai jamais vues imgur.com/UFTBjnW
ubershmekel

3
bien que j'aie beaucoup utilisé ddd pour C, il supporte assez mal les vecteurs et std :: Things en général. Cela nécessite régulièrement que je fournisse le nom mutilé de quelque chose pour configurer un point d'arrêt, aussi. Je ne le recommanderais pas aux étudiants effectuant leurs premières étapes C ++.
PypeBros

1
DDD est idéal pour inspecter les structures de données, car vous pouvez les disposer sur un grand bureau et voir comment elles se dirigent les unes vers les autres. Mais il est vrai que ce n'est utile que pour les données de style C (pas de STL, pointeurs partout).
Roman Plášil

1
Cette chose a environ 17 ans.
Rolf le

25

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


4
Insight est tellement génial mais il a été retiré de Debian et je ne peux pas l'installer sur mon Linux .. Je ne sais pas qui est responsable, mais il est entré dans ma liste d'ennemis mortels et si je le rencontre, il affrontera ma colère! N'importe qui; il y a encore un moyen de le faire fonctionner mais l'interface utilisateur est un peu foutue: baptiste-wicht.com/2012/01/...
MasterMastic

@SamuelLampa apt-get install nemiver
Narek Babajanyan

@MasterMastic, il a été supprimé parce que personne ne l'a maintenu, je suppose. Ne vous inquiétez pas, vous pouvez le reprendre!
andrewsh

16

Vous voudrez peut-être consulter Eclipse CDT. Il fournit un IDE C / C ++ qui fonctionne sur plusieurs plates-formes (par exemple 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 didacticiel de débogage Eclipse CDT qui comprend également un certain nombre de captures d'écran.


14
Mec, les étudiants prendront des semaines pour apprendre Eclipse.
MrFox

14
-1 pour avoir recommandé Eclipse
Celeritas

7
Je ne vais pas -1 points mais IDE est nul.
ovrwngtvity

2
Et puisque vous vous plaignez tellement, que recommandez-vous? code :: blocks qui n'a pas été mis à jour depuis 3 ans maintenant?
JohnJohn

3
Eclipse est génial pour Java, mais c'est plutôt mauvais pour C / C ++ ...

14

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'IDE Qt Creator, ni d'utiliser QMake - il a également l'intégration CMake, bien que QMake soit très facile à utiliser.

Vous voudrez peut-être utiliser Qt Creator comme IDE pour enseigner la programmation, considérez qu'il possède de bonnes fonctionnalités:

  • Éditeur 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 contextuel
  • Excellent débogueur visuel (CDB, GDB et Symbian)
  • Prend en charge GCC et VC ++
  • Outils de navigation rapide dans le code
  • Prend en charge Windows, Linux et Mac OS X

Prend-il en charge le débogage de petits programmes qui n'ont pas de fichiers de projet? Je me souviens de l'avoir utilisé pour mon programme plus grand, mais la première configuration était assez pénible, bien que l'EDI soit très bon.
syockit

12

C'est peut-être indirect pour gdb (car c'est un IDE), mais mes recommandations seraient KDevelop . Étant assez gâté avec le débogueur de Visual Studio (professionnellement au travail pendant de nombreuses années), je me suis jusqu'à présent senti le débogage le plus confortable dans KDevelop (comme passe-temps à la maison, car je ne pouvais pas me permettre de Visual Studio pour un usage personnel - jusqu'à ce que Express Edition soit sorti ). Il "ressemble à quelque chose de similaire à" Visual Studio par rapport aux autres IDE que j'ai expérimentés (y compris Eclipse CDT) quand il s'agit de déboguer pas à pas, pas à pas, etc. (placer des points d'arrêt est un peu gênant car je ne le fais pas) j'aime trop utiliser la souris lors du codage, mais ce n'est pas difficile).

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.