Anstelle von gdbtui
oder ctrl+x
unter gdb
dem der Quellcode oben auf dem Bildschirm angezeigt wird, möchte ich dies in meinem Vim-Editor sehen, der zwischen Registerkarten und Puffern entsprechend springt.
Wie kann ich das machen?
external-command
ide
Name
quelle
quelle
Antworten:
Unter all den Plugins, die ich ausprobiert habe, war ConqueGDB der beste Ansatz. ConqueGDB verwendet Conque Shell , um eine interaktive Shell in vim einzubetten, die von GDB verwendet wird.
Der Workflow mit ConqueGDB besteht darin, keine GDB-Befehle auf dem GDB-Terminal einzugeben. Sie verwenden Verknüpfungen im vim-Quellcode. Sie können die GDB-Eingabeaufforderung jedoch weiterhin verwenden, um erweiterte Befehle zu erhalten, oder einen Bildlauf durchführen, um die gesamte Debug-Sitzung anzuzeigen.
Einige ConqueGDB-Standardzuordnungen, zum Beispiel:
Beachten Sie, wie die vim-Cursorzeile zum Ausgeben einer GDB-Druckzeile verwendet wurde. Die aktuelle Codeausführung befindet sich in einer anderen Zeile (14), und in Zeile 10 befindet sich ein Haltepunkt.
So installieren Sie beispielsweise mit Vundle:
Ich benutze diese Plugin-Optionen:
quelle
leader
das?<leader>r
bedeutet <kbd> \ </ kbd> + <kbd> r </ kbd> auf meinen Computern. Vim Handbuch hat einen Eintrag dafür::help leader
<Leader>b
. Es setzt einen Haltepunkt an der Cursorposition. Es handelt sich jedoch NICHT um eine Umschaltfunktion, sodass Sie sie nicht zum erneuten Entfernen verwenden können. Stattdessen müssen Sie 'clear' in die GDB-Eingabeaufforderung schreiben.Sie haben mehrere Plugins, die GDB integrieren.
Und es gibt auch ein Plugin, das lldb integriert (aus dem LLVM-Projekt)
Es scheint, dass Bram derzeit (September 2017) dank der neuen
:terminal
Funktion an der Integration von gdb aus vim heraus arbeitet . Um es zu benutzen, müssen wirtermdebug
packet (with:packadd termdebug
) laden , dann können wir eine gdb-Konsole in einem vim-Fenster mit starten:TermDebug (+options)
. IMO, wir können davon ausgehen, dass dies die Zukunft der GDB-Integration unter Vim ist.quelle
GDB-
edit
BefehlÖffnet einen Editor in der aktuellen Zeile mit dem Befehl:
Der Standard
editor
istex
, versteht abervim
auch das+<current-line>
Format.Wenn Sie den Editor verlassen, kehren Sie zurück in
gdb
.Auf diese Weise können Sie die Quelle frei durchsuchen und sind besonders leistungsfähig, wenn Sie über eine
ctags
Integration verfügen .Dies ist eine eingebaute Einweg-GDB für die VIM-Integration: Das wichtigste, was fehlt, ist das Setzen von Haltepunkten für VIM.
edit
und zentrierenedit
zentriert Vim nicht standardmäßig um die Quelle, daher habe ich ein Python-Skript erstellt, das dies ausführt : https://stackoverflow.com/questions/43557405/how-to-open-the-current-file-at-the- Aktuelle Zeile in einem Texteditor von GDB / 43557406 # 43557406Haltepunktbefehl für den Zwischenablage-Helfer
Dieser vim-Befehl kopiert einen Haltepunkt-Bezeichner vom Typ:
in die Zwischenablage:
Dann können Sie das einfach einfügen
gdb
.Dies ist das Ziel eines armen Mannes bei der Integration von GDB, um das Setzen von Haltepunkten zu vereinfachen.
Siehe auch: https://stackoverflow.com/questions/3536600/do-you-debug-c-code-in-vim-how
quelle
Obwohl technisch nicht vim. cgdb ist eine verfluchte Version von gdb mit vim-ähnlichen Tastenkombinationen. Es ist seit Jahren mein Goto-Debugger:
https://cgdb.github.io/
quelle