it-swarm-eu.dev

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

Ich unterrichte Anfängern eine Art "Lite" C++ - Programmierkurs ("Lite" bedeutet keine Zeiger, keine Klassen, nur altes C, plus Referenzen und STL-Zeichenfolge und Vektoren). Die Schüler haben keine Vorkenntnisse in der Programmierung, daher glaube ich, dass die Verwendung eines interaktiven Debuggers ihnen hilft, den Programmfluss, die Variablen und die Rekursion zu verstehen.

Der Kurs wird in Linux unterrichtet. Ihnen beizubringen, gdb zu benutzen, ist einfach übertrieben (sie werden die meisten Funktionen weder benutzen noch verstehen). Ich brauche nur etwas einfaches, aber leicht zu benutzendes: um zu sehen, in welcher Zeile sich das Programm gerade befindet, was sich im Stapel befindet (lokale Variablen, vorherige Aufrufe usw.). Ich sehe ähnlich aus wie der alte Debugger von Turbo Pascal oder Turbo C++ Borland oder der Visual Studio-Debugger.

Vielen Dank,

106
omer.gimenez

ddd ist ein grafisches Frontend für gdb, das ziemlich gut ist. Eine der Nachteile ist eine klassische X-Benutzeroberfläche, aber ich scheine mich daran zu erinnern, dass sie ziemlich intuitiv ist.

35
jbleners

Sie können versuchen, Insight ein grafisches Front-End für gdb zu verwenden, das von Red Hat geschrieben wurde. Wenn Sie eine GNOME-Desktop-Umgebung verwenden, können Sie auch Nemiver versuchen.

25

Möglicherweise möchten Sie Eclipse CDT auschecken. Es stellt ein C/C++ IDE, das auf mehreren Plattformen ausgeführt wird (z. B. Windows, Linux, Mac OS X usw.). Das Debuggen mit Eclipse CDT ist vergleichbar mit der Verwendung anderer Tools wie Visual Studio.

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

16
Jon Ball

Qt Creator hat 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 zum Erlernen der Programmierung verwenden. Beachten Sie dabei, 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-Navigationstools
  • Unterstützt Windows, Linux und Mac OS X
14
CMircea

Vielleicht ist es indirekt zu gdb (weil es eine IDE ist), aber meine Empfehlungen wären KDevelop . Da ich mit Visual Studios Debugger (seit vielen Jahren professionell im Einsatz) ziemlich verwöhnt bin, habe ich mich bisher als das angenehmste Debugging in KDevelop gefühlt (als Hobby zu Hause, da ich mir Visual Studio für den persönlichen Gebrauch nicht leisten konnte - bis Express Edition herauskam ). Es sieht Visual Studio "ähnlich" aus 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 keine Probleme habe). Ich mag es nicht, wenn ich die Maus zu oft benutze, aber es ist nicht schwierig.

12
HidekiAI

Ich arbeite für TotalView und wir haben eine für Studenten kostenlose Version unseres kommerziellen Linux C++ - Debuggers (auch Fortran und MPI sowie Threads).

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

Es ist erwähnenswert, dass wir auch die Preise für "Shared-in-Classroom" -Lizenzen stark reduziert haben.

Unter http://www.roguewave.com/products/totalview/resources/videos.aspx finden Sie einige kurze Videos, die die Funktionsweise des Produkts veranschaulichen.

Einige Besonderheiten von TotalView für C++:

  • Automatische Umwandlung von STL-Auflistungsklassen in etwas Vernünftiges
  • "Tauchen" Sie auf Zeiger, um zu sehen, worauf hingewiesen wird
  • Einfaches "Casting" von Zeigern auf Arrays
  • Die Möglichkeit, ein einzelnes Datenfeld in jeder Instanz eines Objekts in einem Array von Objekten zu betrachten
  • Legen Sie einen Haltepunkt für alle Instanzen einer Klasse fest

Chris Gottbrath TotalView Produktmanager Rogue Wave Software

4
Chris Gottbrath