2009-07-30 8 views
31

Ich entwickle c auf Linux mit vim und Debugging mit DDD. Allerdings finde ich, dass ddd sehr schlecht beim Scrollen auf diesem Rechner funktioniert, daher ist es manchmal sehr frustrierend zu verwenden.Was ist eine gute Unix-Alternative zu DDD (Data Display Debugger)?

Ich mag die Art und Weise, dass DDD ziemlich dicht an die GDB-Befehlssätze, da dies bedeutet, ich bin frei, GDB-Befehle verwenden, wenn ich wählen, aber mit gdb selbst ist keine Option, da es keine gute Anzeige macht die Quelle.

Kann jemand eine anständige Alternative zu DDD vorschlagen? Ich bin nicht auf der Suche nach einer IDE, nur eine einigermaßen gut implementierte GUI-Fassade für gdb, die freie Software ist.

+0

Ich habe versucht, Nemiver, aber wenn Sie auf Stopp klicken, erscheint ein Dialogfeld mit der Meldung "Ziel empfangen ein Signal: SIGINT, Interrupt", die Sie klicken müssen. Das schließt diese Schnittstelle für mich ziemlich aus. – frankster

+0

Und die Tooltips benötigen etwa eine 1/3 Sekunde zu lange, um zu erscheinen, wenn Sie mit der Maus über eine Variable fahren, die Sie anzeigen möchten. – frankster

+0

Voting zum Schließen als Werkzeug rec. –

Antwort

9
+0

Erste Eindrücke: Das opensuse11-Paket ist fehlerhaft und das Icon, das es installiert, startet die App nicht, aber ich kann es starten ich selbst von/opt/kde3/bin/kdbg. Beim Anhängen an einen Prozess müssen Sie die Prozessnummer eingeben, anstatt die Prozessliste nach einem Prozess mit demselben Namen wie die gerade geladene Binärdatei zu durchsuchen. – frankster

+0

Die Variablenanzeige in KDbg ist nett. – frankster

+0

obwohl es auf der anderen Seite scheint ein bisschen ein Schmerz, die Werte von Ausdrücken wie "Array [Index] .Struct.Member" – frankster

3

könnten Ihnen gefallen: Einblick - Redhat Debugger basierend auf GDB

Diese Tools haben auch die gui:

Sun Studio Debugger

Ich habe nicht die Sun Studio verwendet Debugger in einer Weile, aber es hatte eine eigene Version von gvim und emacs, in der Sie Breakpoints setzen konnten, indem Sie neben dem Quellcode auf klicken.

Intel Debugger

Und ich denke, Eclipse-Debugger Integration hat.

Und ich denke, dass die meisten dieser Tools noch frei sind, aber nicht unbedingt Open Source.

+0

als eine zusätzliche Notiz, die alte Version Sun Studio unter Linux verwendet den gcc-Compiler mit gdb. Ich weiß nicht, ob es noch kompatibel ist, da sie ihre Compiler jetzt nach Linux portierten. – Juan

+0

Insight's Anfügen an Prozessfenster ist fehlerhaft - die Filterbox tut nichts. Zumindest stellt es eine Prozessliste auf, die eine leichte Verbesserung gegenüber kdbg darstellt. – frankster

+0

Die Dropdown-Box mit einer Liste von Funktionen, um in der Quelle zu suchen, ist eine nette Geste. – frankster

2

könnten Sie versuchen xxgdb aber es ist sehr alt, ich weiß nicht einmal, ob es noch

2

mantained ist Leider habe ich nicht versucht, alles andere als GDB und DDD, aber es gibt eine list of GDB front-ends auf Wikipedia, einschließlich KDbg und xxgdb wie von anderen empfohlen, aber mehrere mehr. Vielleicht wird einer von ihnen für Sie arbeiten, während Sie immer noch die Möglichkeit haben, GDB-Befehle zu verwenden, wenn Sie möchten. Insbesondere listet es Clewn (ich habe die Bedeutung, dies auszuprobieren), die GVim als Front-End sowie cgdb verwendet, die im Terminal (mit ncurses) ausgeführt wird, hat vi-Stil Schlüssel und zeigt Syntax hervorgehobene Quelle .

4

Haben Sie sich die Emacs GDB Integration angesehen? Es ist ziemlich gut, wenn du erst einmal herausgefunden hast, wie man es benutzt. Hier ist ein Screenshot: http://p.blog.csdn.net/images/p_blog_csdn_net/ariesjzj/pic3.jpg.

Alternativ gibt es Eclipse. Es ist sehr hübsch und scheint ziemlich umfassend zu sein, aber ich habe es nicht oft benutzt.

Wenn das nicht funktioniert, verwende ich einfach GDB im TUI-Modus (gib 'Layout next' so oft ein, bis das Display 'hübscher' aussieht).

Ich vermisse wirklich Visual Studio jetzt, dass ich stecken bleibe für Linux und eingebettete Systeme zu entwickeln.

+0

aha Ich wusste nicht über diesen TUI-Modus von gdb.Es ist nicht großartig, aber es richtet sich sicherlich zu einem gewissen Grad meine Beschwerde über gdb nicht die Quelle sehr gut angezeigt. – frankster

+0

Ich schreibe einfach Layout - es gibt einen Fehler, aber endet mit dem Layout am nützlichsten für mich: D – frankster

+0

+1, weil es in der Konsole funktioniert. So kann ich meine Sitzungen mit ttyrec aufzeichnen und sie mit byobu/screen teilen. – matiu

7

Ich benutze Eclipse CDT in meiner täglichen Basis sowie Visual Studio und es ist ein sehr gutes Werkzeug, so gut wie Visual Studio. Es verwendet die gesamte Eclipse-Infrastruktur, um eine sehr gute grafische gdb-Schnittstelle zu erstellen. Ist wie Debuggen von Java, aber mit C++.

Wenn Sie Eclipse-Projekte nicht nur zum Debuggen generieren möchten, weil Sie vim immer noch als Editor verwenden möchten, möchten Sie vielleicht wissen, dass Cmake Eclipse-Projektgenerator hat.Einige Links, die Sie zu diesem Thema helfen könnten: 1, 2, 3

+3

Eigentlich können Sie eine GDB-Sitzung in Eclipse ohne ein Projekt definieren. Definieren Sie das Programm einfach im Dialog "Debug-Konfigurationen ...", eventuell über die Konfigurationsauswahl "C/C++ Application". Nachdem Sie den Eintrag "C/C++ Application:" und möglicherweise die Registerkarte "Arguments" gefüllt haben, klicken Sie auf die Schaltflächen "Apply" und "Debug", um zur Debug-Perspektive zu gelangen. – ysap

+0

Keine Notwendigkeit, Vim aufzugeben, wenn Sie Eclipse verwenden. Ich benutze das [Vrapper] (http://vrapper.sourceforge.net/home/) Eclipse-Plugin, das eine vernünftige Menge an vi-Güte gibt. –

2

auf DDD Geben Sie nicht vollständig. Ich stimme zu, dass die Schnittstelle eine Generalüberholung benötigt, aber 2007 gab es einige rumblings für eine GTK-Überholung.

Achten Sie auch auf this.

+0

Das ist heute irgendwie nicht sinnvoll (auch du gibst mir +1 für die Tatsache, dass es Hoffnung für ddd gibt;) – Johan

+0

Sieht so aus, als hätten sie 2009 hoffen können, aber 2016 sieht eine DDD-Überholung eher hoffnungslos aus. – Atifm