Ein (n)curses-basiertes Debugger-Frontend?

Ich mag reine Kommandozeilen-Debugger nicht so sehr; aber manchmal verwende ich eine Maschine, die einfach keine X-basierten Anwendungen oder irgendetwas mit einer anderen Art von GUI hat, und ich bin auf eine Terminalsitzung beschränkt.

Ich interessiere mich daher für einen Debugger mit (n) Curses als Benutzeroberfläche - etwas, mit dem ich die Quelle beobachten kann, wie sie den Stack-Trace hinaufgeht, ohne ständig Befehle usw. eingeben zu müssen. Es muss nicht schick sein ; also wäre so etwas wie das ncurses-analog von, sagen wir, kdbg relevant.

Erforderlich:

  • Libre-Lizenz.
  • Gratis.
  • Unterstützt gdb
  • Schnell
  • Verwendbar mit C- und C++-Code

Wünschenswert:

  • Unterstützung für andere kompilierte Sprachen
  • Unterstützt den Debugger von LLVM sowie gdb
  • Eine Art Index / Parsing von Code / etc., der es ermöglichen würde, von der Verwendung zur Definition oder zwischen Definition und Deklaration zu wechseln
  • Unter aktiver Entwicklung
  • Möglichkeit, mit der Benutzeroberfläche auf andere Weise zu interagieren, als Befehle in einer Befehlszeile einzugeben. (dh nicht nur eine schickere Zustandsanzeige über die gdb/llvm-Debugger-Befehlszeile).

Antworten (1)

Vanilla GDB befriedigt Ihre Einschränkungen. gdb -tuibasiert auf Flüchen.

Außerdem ist GDB in der Lage, erweiterte Anpassungen mit .gdbinit. Vielleicht lassen Sie sich von diesen inspirieren:

Einige Leute bevorzugen cgdb gegenüber GDB TUI.

Weitere Optionen finden Sie unter Hervorheben und Einfärben der gdb-Ausgabe während des interaktiven Debuggens? auf Stapelüberlauf. Die Screenshots stammen von dort.

Aber basieren diese nicht immer noch auf der Eingabe von Befehlen auf der Kommandozeile?
Cgdb listet unter seinen Features "visuelle Haltepunkteinstellung" , "Tastaturkürzel für allgemeine Funktionen" und "Tastenzuordnungen (Makros)" auf. Seine Benutzeroberfläche ist sehr Vim-ähnlich.
GDB TUI verfügt über einen Ein-Tasten -Modus , in dem allgemeine Debugging-Aufgaben nur einen einzigen Tastendruck erfordern. Dennoch werden einige Befehle benötigt, zB um einen Haltepunkt zu setzen.
Also habe ich diese Antwort positiv bewertet, und sie ist offensichtlich sehr nützlich im Vergleich zur einfachen gdb-Nutzung, aber ich hoffe immer noch auf eine Antwort, die weniger von einer Befehlszeile abhängig ist.
Ich habe von Clewn gehört , das die Verwendung von Vim als Schnittstelle zu GDB ermöglicht. Ich plane, es einige Zeit zu geben. Es hat das Potenzial, eine engere Integration und eine stärker auf Verknüpfungen basierende Schnittstelle zu ermöglichen. Dennoch ist GDB ein so fortschrittliches Tool, dass das Umgehen aller seiner Befehle möglicherweise nicht der bequemste Weg ist, um Dinge zu erledigen.