Welches ist der beste Linux C / C ++ - Debugger (oder das Front-End für GDB), um das Programmieren zu lehren? [geschlossen]

106

Ich unterrichte Anfänger in einer Art "lite" C ++ - Programmierkurs ("lite" bedeutet keine Zeiger, keine Klassen, nur altes C plus Referenzen und STL-Zeichenfolgen und Vektoren). Die Schüler haben noch keine Programmiererfahrung, daher glaube ich, dass die Verwendung eines interaktiven Debuggers ihnen helfen würde, den Programmfluss, die Variablen und die Rekursion zu verstehen.

Der Kurs wird unter Linux unterrichtet. Ihnen beizubringen, GDB zu verwenden, ist einfach übertrieben (sie werden die meisten Funktionen weder verwenden noch verstehen). Ich brauche nur etwas Einfaches, aber Benutzerfreundliches: um zu sehen, in welcher Zeile sich das Programm jetzt befindet, was sich im Stapel befindet (lokale Variablen, vorherige Aufrufe usw.). Ich sehe dem alten Debugger von Turbo Pascal oder Turbo C ++ Borland oder dem Debugger von Visual Studio ähnlich.

Danke dir,

omer.gimenez
quelle
4
Ich verstehe nicht die Begründung, C ++ ohne Unterricht zu unterrichten. Aber ich erkenne die Anstrengung ... Unterrichten meine ich :-)
m-ric
1
C / C ++ klingt für mich nicht nach einer guten Option für Anfänger ...
Jaime Hablutzel

Antworten:

36

ddd ist ein grafisches Frontend für gdb, das ziemlich nett ist. Eine der Schattenseiten ist eine klassische X-Oberfläche, aber ich erinnere mich, dass sie ziemlich intuitiv ist.

jbleners
quelle
2
DDD ist wirklich ein großartiges Frontend. Ich habe C ++ unterrichtet. Meine Schüler konnten nie verstehen, wie man gdb benutzt, aber nachdem sie ihnen eine kurze Tour durch ddd gezeigt hatten (nur die Grundlagen und ihnen gesagt hatten, sie sollen mit -g kompilieren), wurden sie schnell viel kompetenter darin, ihren Code zu debuggen und zu verstehen, was passiert ist. Die Benutzeroberfläche sieht vielleicht "alt und veraltet" aus, aber warum sollte das behoben werden, was offensichtlich funktioniert?
Wasatz
43
ddd hat eine der hässlichsten Benutzeroberflächen, die ich je gesehen habe imgur.com/UFTBjnW
ubershmekel
3
Obwohl ich ddd viel für C verwendet habe, hat es eine ziemlich schlechte Unterstützung für Vektoren und std :: things im Allgemeinen. Es erfordert regelmäßig, dass ich den verstümmelten Namen von etwas gebe, um auch einen Haltepunkt einzurichten. Ich würde es nicht für Schüler empfehlen, die ihre ersten C ++ - Schritte ausführen.
PypeBros
1
DDD eignet sich hervorragend zum Überprüfen von Datenstrukturen, da Sie sie auf einem großen Schreibtisch auslegen und sehen können, wie sie aufeinander und so weiter zeigen. Es ist jedoch wahr, dass es nur für Daten im C-Stil (keine STL, Zeiger überall) nützlich ist.
Roman Plášil
1
Das Ding ist wie 17 Jahre alt.
Rolf
25

Sie können versuchen, Insight als grafisches Front-End für von Red Hat geschriebene GDB zu verwenden . Wenn Sie die GNOME-Desktop-Umgebung verwenden, können Sie auch Nemiver ausprobieren .

Narek Babajanyan
quelle
4
Insight ist so großartig, aber es wurde aus Debian entfernt und ich kann es nicht auf meinem Linux installieren. Ich weiß nicht, wer dafür verantwortlich ist, aber er hat meine Liste der tödlichen Feinde eingetragen und wenn ich ihm begegne, wird er meinem Zorn ausgesetzt sein! Irgendjemand; Es gibt noch eine Möglichkeit, es zum Laufen zu bringen, aber die Benutzeroberfläche ist ein wenig durcheinander: baptiste-wicht.com/2012/01/…
MasterMastic
@ SamuelLampa apt-get install nemiver
Narek Babajanyan
@ MasterMastic, es wurde entfernt, weil es wohl niemand gewartet hat. Mach dir keine Sorgen, du kannst es übernehmen!
Andrewsh
16

Vielleicht möchten Sie Eclipse CDT ausprobieren. Es bietet eine C / C ++ - IDE, die auf mehreren Plattformen (z. B. Windows, Linux, Mac OS X usw.) ausgeführt wird. Das Debuggen mit Eclipse CDT ist vergleichbar mit der Verwendung anderer Tools wie Visual Studio.

Sie können das Eclipse CDT Debug-Tutorial lesen , das auch eine Reihe von Screenshots enthält.

Jon Ball
quelle
14
Alter, die Schüler werden Wochen brauchen, um Eclipse zu lernen.
MrFox
14
-1 für die Empfehlung von Eclipse
Celeritas
7
Ich werde nicht -1 Punkte, aber IDE saugt.
ovrwngtvity
2
Und da ihr euch so sehr beschwert, was empfehlen ihr? Code :: Blöcke, die seit 3 ​​Jahren nicht mehr aktualisiert wurden?
JohnJohn
3
Eclipse ist großartig für Java, aber es ist ziemlich schlecht für C / C ++ ...
14

Qt Creator bietet neben anderen Extras auch eine gute Debugger-Integration für CDB, GDB und den Symnbian-Debugger auf allen unterstützten Plattformen. Sie müssen weder Qt verwenden, um die Qt Creator-IDE zu verwenden, noch müssen Sie QMake verwenden - es verfügt auch über eine CMake-Integration, obwohl QMake sehr einfach zu verwenden ist.

Möglicherweise möchten Sie Qt Creator als IDE verwenden, um das Programmieren zu unterrichten. Beachten Sie, dass es einige gute Funktionen bietet:

  • Sehr intelligenter und fortschrittlicher C ++ - Editor
  • Projekt- und Build-Management-Tools
  • QMake- und CMake-Integration
  • Integriertes, kontextsensitives Hilfesystem
  • Hervorragender visueller Debugger (CDB, GDB und Symbian)
  • Unterstützt GCC und VC ++
  • Schnelle Code-Navigationswerkzeuge
  • Unterstützt Windows, Linux und Mac OS X.
Mircea Chirea
quelle
Unterstützt es das Debuggen kleiner Programme ohne Projektdateien? Ich erinnere mich, dass ich es für mein größeres Programm verwendet habe, aber das erste Setup war ziemlich schmerzhaft, obwohl die IDE sehr gut ist.
Syockit
12

Vielleicht ist es indirekt zu gdb (weil es eine IDE ist), aber meine Empfehlungen wären KDevelop . Da ich mit dem Debugger von Visual Studio (der seit vielen Jahren professionell bei der Arbeit ist) ziemlich verwöhnt bin, habe ich mich bisher als das angenehmste Debugging in KDevelop gefühlt (als Hobby zu Hause, weil ich mir Visual Studio für den persönlichen Gebrauch nicht leisten konnte - bis Express Edition herauskam ). Es sieht ähnlich aus wie Visual Studio im Vergleich zu anderen IDEs, mit denen ich experimentiert habe (einschließlich Eclipse CDT), wenn es um das Debuggen von Step-Through, Step-In usw. geht (das Platzieren von Haltepunkten ist etwas umständlich, weil ich es nicht tue). Ich mag es nicht, die Maus beim Codieren zu oft zu benutzen, aber es ist nicht schwierig.

HidekiAI
quelle