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?
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?
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:
Plugin 'vim-scripts/Conque-GDB'
Ich benutze diese Plugin-Optionen:
let g:ConqueTerm_Color = 2 " 1: strip color after 200 lines, 2: always with color
let g:ConqueTerm_CloseOnEnd = 1 " close conque when program ends running
let g:ConqueTerm_StartMessages = 0 " display warning messages if conqueTerm is configured incorrectly
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 wir termdebug
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.
GDB- edit
Befehl
Öffnet einen Editor in der aktuellen Zeile mit dem Befehl:
$EDITOR +<current-line> <current-file>
Der Standard editor
ist ex
, versteht aber vim
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 zentrieren
edit
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 # 43557406
Haltepunktbefehl für den Zwischenablage-Helfer
Dieser vim-Befehl kopiert einen Haltepunkt-Bezeichner vom Typ:
b <file-path>:<line-number>
in die Zwischenablage:
command! Xg :let @+ = 'b ' . expand('%:p') . ':' . line('.')
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
Obwohl technisch nicht vim. cgdb ist eine verfluchte Version von gdb mit vim-ähnlichen Tastenkombinationen. Es ist seit Jahren mein Goto-Debugger: