Invece di gdbtui
o ctrl+x
sotto il gdb
quale mostra il codice sorgente nella parte superiore dello schermo, vorrei vedere questo nel mio editor Vim che salta tra le schede e i buffer di conseguenza.
Come posso fare questo?
Invece di gdbtui
o ctrl+x
sotto il gdb
quale mostra il codice sorgente nella parte superiore dello schermo, vorrei vedere questo nel mio editor Vim che salta tra le schede e i buffer di conseguenza.
Come posso fare questo?
Risposte:
Tra tutti i plugin che ho provato, ho trovato ConqueGDB l'approccio migliore. ConqueGDB utilizza Conque Shell per incorporare una shell interattiva all'interno di vim, utilizzata da GDB.
Il flusso di lavoro con ConqueGDB consiste nel non immettere comandi GDB sul terminale GDB, si utilizzano scorciatoie sul codice sorgente di VIM. Ma puoi continuare a usare il prompt GDB se vuoi, per comandi più avanzati, oppure scorrere per vedere l'intera sessione di debug.
Alcuni mapping predefiniti di ConqueGDB, ad esempio:
Notare come la linea del cursore vim è stata utilizzata per emettere una "riga di stampa" GDB, l'esecuzione corrente del codice è in un'altra riga (14) e c'è un punto di interruzione sulla riga 10.
Per installare con Vundle per esempio:
Plugin 'vim-scripts/Conque-GDB'
Uso queste opzioni di plugin:
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
significa?
<leader>r
significa <kbd> \ </kbd> + <kbd> r </kbd> sui miei computer. Il manuale di Vim ha una voce per questo::help leader
<Leader>b
. Imposta un punto di interruzione nella posizione del cursore. Tuttavia, NON è un interruttore, quindi non è possibile utilizzarlo per rimuoverlo di nuovo. Piuttosto, dovrai scrivere 'clear' sul prompt GDB.
Hai diversi plugin che integrano gdb.
E c'è anche un plugin che integra lldb (dal progetto LLVM)
Sembra che Bram stia attualmente lavorando (settembre 2017) all'integrazione di gdb all'interno di VIM grazie alla nuova :terminal
funzionalità. Per usarlo, dobbiamo caricare il termdebug
pacchetto (con :packadd termdebug
), quindi saremo in grado di avviare una console gdb in una finestra di VIM con :TermDebug (+options)
. IMO, possiamo considerarlo il futuro dell'integrazione GDB sotto Vim.
edit
Comando GDB
Apre un editor sulla riga corrente usando il comando:
$EDITOR +<current-line> <current-file>
L'impostazione predefinita editor
è ex
, ma vim
comprende anche il +<current-line>
formato.
Quando esci dall'editor, torni indietro gdb
.
Ciò consente di navigare liberamente nella fonte ed è particolarmente potente se si dispone di ctags
integrazione.
Questo è un gdb unidirezionale incorporato per un uomo povero per vim l'integrazione: la cosa principale mancante è impostare punti di interruzione da Vim.
edit
e al centro
edit
non centra Vim per impostazione predefinita attorno alla fonte, quindi ho creato uno script Python che lo fa: https://stackoverflow.com/questions/43557405/how-to-open-the-current-file-at-the- corrente-line-in-a-editor di testo-da-gdb / 43557406 # 43557406
Comando di breakpoint nell'helper degli appunti
Questo comando vim copia un identificatore di breakpoint di tipo:
b <file-path>:<line-number>
negli appunti:
command! Xg :let @+ = 'b ' . expand('%:p') . ':' . line('.')
Quindi puoi semplicemente incollarlo in gdb
.
Questa è la vim di un uomo povero per l'integrazione con gdb per facilitare l'impostazione dei punti di interruzione.
Vedi anche: https://stackoverflow.com/questions/3536600/do-you-debug-c-code-in-vim-how
Sebbene non tecnicamente vim. cgdb è una versione maledetta di gdb con combinazioni di tasti simili a vim. È stato il mio debugger goto per anni: