Etwas Ähnliches wie der DDD-Debugger für Windows?

Ich mag den DDD-Debugger sehr , weil er eine visuelle Darstellung von Datenstrukturen wie diese bietet:

Googeln hat keinen Build für Windows zurückgegeben, wahrscheinlich weil es ein Frontend für den GNU-Debugger ist (obwohl es einen Windows-Port davon gibt ).

Ich denke, ich könnte DDD mit Cygwin verwenden, aber ich habe immer Probleme, X-Windows mit Cygwin zum Laufen zu bringen.

Eine reine Windows-Lösung ohne Cygwin wäre mir jedenfalls lieber.

Kennt jemand so ein Tier? Und bitte kostenlos, nicht kommerziell.


[Update] ein paar Jahre später und in einem Artikel von Dr. Dobbs, den ich gelesen habe

Auch nicht DDD für Microsoft- und Borland-Compiler, da deren Debugging-Informationen von GDB nicht verstanden werden

Es sieht also so aus, als wäre die Antwort leider NEIN.

+1, aber es ist nicht kostenlos. Und siehe den Kommentar zur akzeptierten Antwort; Es ist zwar ein Debugger-Frontend, aber kein DDD. IE, es kann keine verknüpfte Liste wie oben gezeigt anzeigen.
Vielleicht kann ddd mit mingw gebaut werden?
Vielleicht? Wenn du es nicht weißt, warum posten? Vielleicht geht es mit einem Stück Käse ...
MS hat den PDB-Quellcode geöffnet , also versteht Clang jetzt dieses Format und kann mit Windows-Debuggern interagieren, obwohl ich nicht weiß, ob DDD mit lldb funktioniert oder nicht. IMHO wird eine verknüpfte Liste nicht häufig verwendet (und sollte im Allgemeinen nicht verwendet werden ), daher ist das Debuggen verknüpfter Listen im Vergleich zum visualisierten Debuggen anderer Datenstrukturen, in denen Visual Studio gut ist, nicht sehr nützlich. Es ist jedoch in der Tat nützlich für Baumstrukturen

Antworten (1)

Sie könnten Gnat Programming Studio ( https://www.adacore.com/community ) ausprobieren, eine IDE, die Ada, C und C++ (und mehr) unterstützt.

Wie bei allen IDEs können Sie Projekte erstellen und debuggen, aber Sie können auch direkt ausführbare Dateien laden. Wenn der Pfad der Quellen mit den Quellen auf der Platte übereinstimmt, funktioniert es mit einem Standardprojekt, das einfach in einer Pseudo-Ada-Datei beschrieben wird:

project Default is
    for Source_Dirs use ("src");
    for Object_Dir use "obj";
    for Main use ("main.c");
    for Languages use ("C");
end Default;

Es hat eine grafische gdb-Oberfläche und eine Diagrammanzeige ähnlich wie DDD / Eclipse (abhängig von den Versionen) und Windows-native Version (kein Cygwin). Sie können Befehle auch direkt in die gdb-Konsole eingeben.

Die vorgestellte Version ist die Professional Edition, aber die kostenlose Version wird jährlich veröffentlicht und erhält die Pro-Funktionen nur wenig später.

Im Screenshot unten habe ich versucht, graph display nwas eine Struktur meines Programms ist.

typedef struct node_
{
  struct node_ *next;
  int v;
} Node;

Geben Sie hier die Bildbeschreibung ein

Es ist vielleicht nicht das, was Sie wollen (da es eher wie Eclipse-Debug aussieht), aber früher sah es sehr nach DDD aus (und sie dachten wahrscheinlich, es sei veraltet). Ich werde mehr untersuchen, um zu sehen, ob die alte Diagrammanzeige noch verfügbar ist, in der Zwischenzeit haben Sie einen kostenlosen/relativ leichten Debugger, der kein Eclipse-Setup erfordert.

BEARBEITEN: Sie können auch die vorherige Version von Gnat Programming Studio ausprobieren, die Sie hier herunterladen können:

https://www.adacore.com/download/mehr

Wählen Sie x86 (32-Bit) und das Jahr 2017 (2018 haben sie die Diagrammanzeige entfernt, Mist)

Mein Beispiel ist ein bisschen chaotisch, aber mit etwas Arbeit (durch kluge Verwendung von "Dereferenzierungszeigern") könnten Sie etwas erreichen.

Geben Sie hier die Bildbeschreibung ein

Das sieht gut aus, aber kann es eine verknüpfte Liste gemäß meiner Frage anzeigen? Wenn Ihre vpStruktur einen Zeiger auf eine andere Struktur enthalten würde, was würde ich sehen (können Sie bitte ein Beispiel posten?) Ich vermute, dass es ein Baum wäre, und vielleicht könnte ich damit leben, da es nicht so aussieht, wie ich es bin werde ein Diagramm bekommen, wie bei DDD. Wenn Ihr neues Bild gut aussieht, werde ich die Antwort positiv bewerten und prämieren.
Lassen Sie mich ein Beispiel für eine verknüpfte Liste erstellen. Ich muss zugeben, dass ich das nie probiert habe.
fertig ist, ist das Ergebnis irgendwie nicht das, was Sie erwarten, aber ältere Versionen können passen. Ich habe die Autoren gefragt.
Das ist sicherlich besser als alles andere, was ich jemals unter Windows gesehen habe (@Izzy, warum kann ich die Schaltfläche "Akzeptieren" nicht sehen?). Wenn Sie etwas finden, das noch mehr wie DDD aussieht, füge ich einen Bonus hinzu. Vielen Dank; Ich kann sehen, dass Sie ein geschätztes Mitglied unserer Gemeinschaft werden :-)
Lolx! Izzy, vergiss es - dieser Beitrag sieht so sehr nach meinem aus, dass ich dachte, es wäre einer. So etwas suche ich seit Jahren. @Jean lass es mich wissen, wenn du etwas mehr wie DDD finden kannst; Auf jeden Fall gebe ich Ihnen einen Bonus, aber wenn es grafischer ist, wird es ein größerer Bonus sein :-)
Sie müssen nicht akzeptieren, da es nicht genau das ist, wonach Sie gefragt haben, das ist für mich in Ordnung. Ja, GPS (Gnat Programming Studio) wird stark unterschätzt, weil es ursprünglich für Ada gemacht wurde, aber jetzt (und mit meinen zig Millionen Fehlerberichten) wird es in C sehr gut und in C++ ziemlich gut (dank der Clang-Parsing-Engine). Es benötigt auch nicht den umständlichen Arbeitsbereich und die komplexe Einrichtung, die Eclipse benötigt. Ich muss aber die kostenlose Version testen / ältere überprüfen (auch wenn die Verwendung älterer Versionen nicht so gut ist, weil Sie nicht von Bugfixes profitieren)
Ha ha - ich hatte tatsächlich vergessen, Gnat zu verwenden - weit zurück in den Jahren '00 bis '04 für Ada 95. Happy Days! Wenn Sie eine gute Beziehung zum Gnat-Team haben, bitten Sie sie, Diagramme hinzuzufügen, wie es DDD tut. Da es sich um FOSS handelt, können sie möglicherweise viel Code wiederverwenden.
Früher hatten sie diese Diagramme. Ich habe eine Frage an das Support-Team gestellt, um zu sehen, wie man sie zurückbekommt oder was auch immer. Und ich habe mir auch die Zeit genommen, die kostenlose Version von GPS zu testen, und sie ist der professionellen Version sehr, sehr nahe (ich habe die Screenshots jedoch nicht aktualisiert).
Nachdem ich mir den Feature-Vergleich angesehen habe, kann ich nicht erkennen, dass ich wirklich eine kostenpflichtige Version brauche. Ich werde es für (embedded) C und C++ versuchen. Danke für die Empfehlung
Die kostenpflichtige Version ist nur aktueller für Fehler und Funktionen. Die kostenlose Version erscheint einmal im Jahr. Das ist der einzige Unterschied, aber ein großer :)
@Mawg Ich habe meine Antwort aktualisiert. Es gibt eine ältere Version, die Ihren Anforderungen möglicherweise sehr nahe kommt.
Exzellent! Dafür kann ich Ihnen nicht genug danken. Ich kann nicht verstehen, warum sie diese Funktion entfernt haben
Nun, sie haben es wahrscheinlich herausgenommen, damit es mehr wie Eclipse aussieht ... (was scheiße ist)
Warum nicht einfach Eclipse-basiert machen, mit einer Reihe von Plug-Ins? Das scheinen alle anderen zu tun
weil sie schon seit einiger Zeit ihre eigene IDE haben, lange bevor Eclipse für C "brauchbar" wurde. Das Problem von Eclipse ist dieser verdammte Arbeitsbereich und die Komplexität, die er mit sich bringt. Sie haben ein Plugin, aber für das .gpr-Projektmanagement, nicht für das Debuggen. GPS verwendet eine Projektdatei (wie Borland und "alte" IDEs), die es ermöglicht, Projekte zu öffnen und zu erstellen. Keine Notwendigkeit für verdammte binäre Arbeitsbereiche, die Sie jedes Mal neu erstellen müssen, wenn Sie Ihr Konto/Ihren Computer ändern.