Frage

Kurz:Kennt jemand eine GUI für gdb bringt es auf Augenhöhe oder in der Nähe des feature-set erhalten Sie in der neueren version von Visual C++?

Im detail:Als jemand, der viel Zeit damit verbracht, Programmieren in Windows, einer der größeren Stolpersteine, die ich gefunden habe, wenn ich code mit C++ in Linux ist, dass das Debuggen nichts mit Kommandozeilen-gdb nimmt mich mehrere mal länger als die in Visual Studio, und es nicht zu sein scheinen immer besser mit der Praxis.Einige Dinge sind einfacher oder schneller express grafisch.

Insbesondere bin ich auf der Suche für eine GUI, die:

  • Behandelt alle basics wie ein Schritt über & in code, Variablen beobachten und Haltepunkte
  • Versteht und kann die Anzeige der Inhalt Komplex und verschachtelt C++ Datentypen
  • Nicht verwechseln und vorzugsweise können intelligent Schritt durch vorgefertigte code-und Datenstrukturen und zeigt relevante Informationen wie die parameter-Typen
  • Verarbeiten kann threaded Anwendungen und wechseln Sie zwischen den verschiedenen threads zum Schritt durch, oder zeigen Sie die Zustand
  • Können Griff anbringen einer bereits gestarteten Prozess oder das Lesen eines core dump, in der neben Start das Programm in gdb

Wenn ein solches Programm nicht vorhanden ist, dann würde ich gerne hören, über die Erfahrungen, die Leute hatten mit Programmen, die mindestens einige der Stichpunkte.Hat jemand irgendwelche Empfehlungen?

Edit:
Auflisten der Möglichkeiten ist groß, und ich nehme, was ich kriegen kann, aber es wäre noch hilfreich, wenn Sie in Ihre Antworten:
(a) Ob oder nicht Sie haben tatsächlich verwendet dieses GUI-und wenn ja, was positiv/negativ feedback über es.
(b) Wenn Sie wissen, welche der oben genannten features sind/werden nicht unterstützt

Listen sind einfach zu kommen durch, Websites wie diese sind groß, weil Sie können erhalten eine Idee von Menschen, die persönliche Erfahrungen mit Anwendungen.

War es hilfreich?

Lösung

Sie finden nicht alles überlagern von GDB, die konkurrieren kann mit dem raw-power von der Visual Studio-debugger.Es ist einfach zu mächtig, und es ist einfach zu gut integriert in die IDE.

Für eine Linux-alternative, versuchen Sie, DDD, wenn freie software ist Ihre Sache.

Andere Tipps

Eclipse CDT wird die Erfahrung vergleichbar mit Visual Studio.Ich benutze Eclipse CDT auf einer täglichen basis für Ihren code schreiben und Debuggen von lokalen und remote-Prozesse.

Wenn Ihr nicht vertraut mit der Verwendung einer Eclipse-basierte IDE, die GUI wird nehmen ein wenig gewöhnungsbedürftig.Jedoch, sobald Sie verstehen, die GUI-Ideen, die einzigartig für Eclipse sind (z.B.ein-Perspektive) mit dem Werkzeug wird eine schöne Erfahrung.

Die CDT-Tools bietet eine anständige C/C++ indexer können Sie schnell finden Sie Referenzen auf Methoden, die in Ihrer code-Basis.Es bietet auch eine schöne makro-expansion tool und beschränkt refactoring-Unterstützung.

Im Hinblick auf die Unterstützung für debugging, CDT ist in der Lage, alles zu tun, in Ihrer Liste mit der Ausnahme, Lesen, core dump (es kann Unterstützung, aber ich habe noch nie versucht, dieses feature zu verwenden).Auch meine Erfahrung mit dem Debuggen von code mithilfe von Vorlagen ist begrenzt, also bin ich mir nicht sicher, welche Art von Erfahrung CDT bieten in dieser Hinsicht.

Weitere Informationen zum Debuggen mit Eclipse CDT, Sie möchten möglicherweise überprüfen Sie heraus diese Anleitungen:

gdb -tui arbeitet in Ordnung, wenn Sie etwas wollen, GUI-ish, aber immer noch die Figur.

Check-out Nemiver C/C++ - Debugger.Es ist einfach zu installieren in Ubuntu (Developer Tools/Debugging).

Update: Neuen link.

Ich verabscheue die Idee der Entwicklung von Windows, aber der VC++ - debugger ist unter den besten, die ich je gesehen habe.Ich habe nicht gefunden ein GUI front-end, die nahe kommt, um die VC ein.

GDB ist genial, wenn Sie wirklich erhalten verwendet, um es.Verwenden Sie es in Zorn genug, und Sie werden sehr bewandert.Ich kann flitzen um ein Programm zu tun, all die Dinge, die Sie finden, ohne viel Aufwand mehr.Es hat einen Monat dauern, oder so des Leidens über eine SSH-Verbindung zu einem remote-server, bevor ich wurde tüchtig.Ich würde nie wieder gehen obwohl.

DDD ist wirklich mächtig, aber es war ziemlich buggy.Ich fand es erstarrte ziemlich oft, wenn Sie bekam Nachrichten von GDB, die es nicht verstehen.Es ist gut, denn es hat einen gdb-Schnittstelle-Fenster, sodass Sie sehen können, was Los ist, und auch die Interaktion mit gdb direkt.DDD kann nicht verwendet werden auf eine remote-X-Sitzung in meiner Umgebung (ein echtes problem, da Sitze ich gerade an einem thin-client, wenn ich Unix-dev) aus irgendeinem Grund, so es ist für mich heraus.

KDevelop gefolgt typische KDE-Stil und ausgesetzt, ALLES an den Benutzer.Auch ich hatte noch nie Glück Debuggen von nicht KDevelop-Programme in KDevelop.

Das Gnat Programming Studio (GPS) ist eigentlich ein ganz gutes front-end zu GDB.Es nicht nur zu verwalten, Ada-Projekte, also ist es einen Versuch Wert, wenn Sie in der Notwendigkeit einer debugger.

Könnten Sie Eclipse verwenden, aber es ist ziemlich schwer von Gewicht, und eine Menge von erfahrenen Unix-Leute, mit denen ich gearbeitet habe (mich eingeschlossen) don ' T care viel für seine Schnittstelle, die nicht nur STFU und Holen Sie sich aus dem Weg.Eclipse scheint auch nehmen viel Platz und laufen wie ein Hund.

Qt Creator scheint wie eine gute Sache.Ein Kollege zeigte mir einen Weg, es sich für debugging:

  • Erstellen Sie ein neues Projekt, "Importieren von Makefile-Projekt".
  • Zeigen Sie es auf Ihrem root-Projekt-Ordner (es wird in index-Quellen unter es, und es ist eindrucksvoll schnell).
  • Gehen Sie zu Projekt-Einstellungen und fügen Sie eine Konfiguration auszuführen, geben Sie dann die ausführbare Datei, die Sie Debuggen möchten, und Ihre Argumente.
  • Qt Creator scheint bauen Ihr Projekt, bevor Sie Debuggen.Wenn Sie das nicht wollen, oder nicht Gebrauch machen, können Sie das überschreiben der make-Befehl.Ich änderte es in "true".:)

Das mag ein bisschen viel Arbeit für das Debuggen einer app hatte ich bereits zusammengestellt, aber es ist es Wert.Der debugger zeigt, threads, stapeln und lokale Variablen in einer ähnlichen Art und Weise zu Visual Studio, und auch verwendet viele der gleichen Tastatur-shortcuts.Es scheint zu handhaben, Vorlagen sowie, zumindest std::string und std::map.Befestigung an vorhandenen Prozessen und core-dumps zu sein scheint, unterstützten, obwohl ich es noch nicht getestet noch.

Halten in Geist, dass ich es für weniger als Stunde und jetzt, aber ich bin beeindruckt so weit.

Ich benutze cgdb, einfach und nützlich

Ich benutze DDD viel, und es ist ziemlich stark, sobald Sie lernen, es zu benutzen.Eine Sache, die ich sagen möchte ist, verwenden Sie es nicht über X über die WAN-denn es scheint eine Menge tun, um unnötigen Bildschirm-updates.

Auch, wenn Sie nicht gedeckt zu GDB und nicht dagegen ponying up a little cash, dann würde ich versuchen TotalView.Es hat ein bisschen eine Lernkurve (es könnte definitiv intuitiver sein), aber es ist das beste C++ - debugger, die ich je benutzt habe auf jeder Plattform und kann erweitert werden, um die Introspektion der Ihre Objekte auf benutzerdefinierte Weise (so dass Sie zum anzeigen einer STL-Liste als eine aktuelle Liste von Gegenständen, und ein paar von verwirrenden internen Daten-member, etc.)

Check out the Eclipse CDT-Projekt.Es ist ein plugin für Eclipse ausgerichtet auf C/C++ - Entwicklung und enthält eine ziemlich reichhaltige debugging-Perspektive (hinter den kulissen benutzt GDB).Es ist verfügbar auf einer Vielzahl von Plattformen.

Ähnlich angenehm auf der eclipse-gdb-frontend wird die emacs-frontend, fest gebunden, um die emacs IDE.Wenn Sie arbeiten bereits mit emacs, Sie werden es mögen:

Emacs GDB Frontend

DDD ist die GNU-frontend für gdb: http://www.gnu.org/software/ddd/

Ich verwendet KDbg (funktioniert nur unter KDE).

Qt-Creator-on-Linux ist sicherlich auf Augenhöhe mit Visual Studio on Windows für C++ ist heute.Ich würde sogar sagen, besser auf die debugger-Seite.

Es ist eine IDE, die in dieser Liste fehlt und ist sehr effizient (ich habe es in vielen C/C++ - Projekte ohne Probleme): Netbeans.

Ich habe versucht ein paar verschiedene guis für gdb und gefunden haben, DDD, um die bessere von Ihnen.Und während ich kann nicht kommentieren, andere, nicht-gdb-Angebote für linux habe ich eine Anzahl von anderen Debuggern auf anderen Plattformen.

gdb hat die Mehrheit der Dinge, die Sie in Ihrer Wunschliste.DDD stellt eine schönere front auf Sie.Zum Beispiel die thread-Umschaltung einfacher gemacht.Das setzen von breakpoints ist so einfach, wie Sie es erwarten würden.

Sie erhalten auch eine cli-Fenster, in Fall gibt es etwas zu verdecken, was Sie tun möchten.

Funktion die man von DDD, das steht über allen anderen debugger, die ich verwendet habe, ist der Daten - "Grafik".Dieses ermöglicht die Anzeige und anordnen von Strukturen, Objekten und Gedächtnis als ziehbar Boxen.Doppelklick auf einen Zeiger, öffnet sich aufgelöst Daten mit visual Link, der Sie zurück zu den Eltern.

Was kann durch intensiviert werden wird begrenzt sein, indem Sie die debugging-Informationen, die g++ erzeugt, zu einem großen Teil.Emacs bietet eine Schnittstelle für gdb, können Sie Steuern es über die Symbolleisten/Menüs und die Anzeige von Daten in separate windows, als auch für den Typ gdb-Befehle direkt.Eclipse-CDT bietet ähnliche Werkzeuge.Ich habe gehört, Anjuta und Code::Blocks, aber nie eingesetzt hatten.

Als jemand, der vertraut mit Visual Studio, habe ich mich an mehreren open-source-IDE, um es zu ersetzen, und KDevelop am nächsten kommt IMO, zu etwas, das eine Visual C++ - person kann sich einfach hinsetzen und anfangen verwenden.Wenn Sie das Projekt ausführen im debug-Modus, es verwendet die gdb aber kdevelop ziemlich viel behandelt die ganze Sache so, dass Sie nicht wissen, es ist gdb;du bist nur Einzelschritt oder die Zuweisung Uhren Variablen.

Es ist immer noch nicht so gut, wie der Visual Studio-Debugger, leider.

Sie nicht erwähnen, ob Sie Windows-oder UNIX.

Auf UNIX-Systemen KDevelop ist gut aber ich benutze KDbg weil es ist einfach zu bedienen und funktioniert auch mit apps, die nicht in KDevelop.

Eclipse gut ist auf beiden Plattformen.

Auf Windows, es ist eine große Paket namens Wascana Desktop-Entwickler die Eclipse CDT und MinGW alle verpackt und vorkonfigurierte schön für das minimum von Schmerzen.Es ist das beste, was ich gefunden habe für die Entwicklung von GNU-code auf Windows.

Ich habe alle diese Debugger und keiner von Ihnen sind so gut wie MS Dev Studio.Eclipse/Wascana ist wohl am nächsten, aber es hat Grenzen, wie Sie nicht Schritt in DLLs und es nicht so gut einen job bei der Prüfung Variablen.

Haben Sie schon einmal einen Blick auf DS-5 debugger?

Es gibt eine kostenpflichtige version, die beinhaltet viele hilfreiche Funktionen, aber Sie können auch die Community-Edition kostenlos (die ist auch ganz nützlich, vor allem für eingebettete Systeme).

Ich habe eine positive Erfahrung mit diesem tool beim Debuggen von Android-Apps auf echtem Gerät mit eclipse.

Die Code:Blocks C++ - IDE verfügt über eine grafische Hülle, mit ein paar von den Funktionen, die Sie wollen, aber nichts, wie die macht von VS.

VisualGDB ist ein anderes Visual Studio-plugin-Entwicklung und das Debuggen von Anwendungen auf linux-und embedded-Plattformen.

KDevelop funktioniert ziemlich gut.

Haben Sie versucht, gdb -w mit gdb cygwin.Es ist supossed, um eine windows-Schnittstelle, die funktioniert Recht gut.

Das einzige problem, das ich fand, ist, dass auf meinem jetzigen Rechner nicht ausgeführt, bis der installiert, nachdem ich ddd.Ich vermute, dass es erfordert, tcltk, die installiert war, als ich installiert ddd.

Neueste version von Geany unterstützt (nur unter Linux, obwohl)

Wenn Sie suchen für gdb unter Visual Studio, dann check WinGDB.

In den letzten 15 Monaten, die ich verwenden insight (kam mit FC6).Es ist nicht groß, es ist geschrieben in Tcl/Tk, aber es ist einfach und nützlich.DDD ist von ähnlicher Qualität / nutzen, aber etwas schwieriger zu verwenden (verschiedene GUI Einschränkungen und Auslassungen).Ich habe auch versucht zu integrieren, gdb mit meiner IDE, SlickEdit.Es funktionierte OK (ich habe 4 Stunden mit ihm), aber ich wusste nicht, wie die GUI-Kontext-switches.Ich möchte, dass meine IDE unverändert bleiben, während ich mich zu Debuggen;auf Windows nutze ich SlickEdit für IDE und Visual Studio-Debugger zum Debuggen.Also von 3:Einsicht, DDD und SlickEdit, Einsicht ist meine 1. Wahl, ich benutze es, >95% der Zeit, command-line gdb und DDD die anderen 5%.Wenn ich die chance bekomme, werde ich eval Eclipse irgendwann, mein Arbeits-PC nicht scheinen, um genug RAM haben (1 GB nur) zum ausführen von Eclipse einigermaßen gut.

Ich habe auch gehört, viel Lob für TotalView, einschließlich 1. hand bei einem Vorstellungsgespräch.Ich erhielt eine eval-für unsere Unternehmen in spät 2008, aber am Ende haben wir nicht, gehen Sie wie gdb war gut genug für unsere Bedürfnisse;und es ist kostenlos und allgegenwärtig.

Verwenden www.zero-bugs.com/ Null debugger, es erfordert C++0x-Unterstützung von gcc

Ich war auf der Suche nach einem debugger Schritt für Schritt durch ein programm läuft.Sagen:Befestigen.Das programm war bauen mit eclipse, aber, weil vielleicht einige multithreadding obstrucles, keine Quelldateien, wo gern.Was auch immer.

Ich habe sehr angenehmes mit NetBeans.

  • [debug] aus dem Menü -> Attach Deugger...
  • als Prozess wählen, die zu Debuggen
  • als Projekt [neues Projekt]

Jetzt das Fenster disappars und Sie sehen nichts.trennen Sie den Vorgang.Lesen Quadratischen "Stop" hilft.

  • import-Quelle aus dem Projekt, wie z.B.Ordner.".../MyProject/src
  • Nun scheint es, in Ihrem Projekt, und Sie können Haltepunkte.
  • wieder befestigen debugger
  • wählte den Prozess zu Debuggen.
  • debugger sollte aufhören, wenn programm erreicht nächste Haltepunkt.

Gehen Sie zu [Fenster] -> [Debugging] -> Wird Ihr Fenster gemütlicher machen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top