Em vez de gdbtui
ou ctrl+x
sob o gdb
qual mostra o código fonte na parte superior da tela, eu gostaria de ver isso no meu editor Vim, que saltaria entre as guias e os buffers de acordo.
Como posso fazer isso?
Em vez de gdbtui
ou ctrl+x
sob o gdb
qual mostra o código fonte na parte superior da tela, eu gostaria de ver isso no meu editor Vim, que saltaria entre as guias e os buffers de acordo.
Como posso fazer isso?
Respostas:
Entre todos os plugins que experimentei, achei o ConqueGDB a melhor abordagem. O ConqueGDB usa o Conque Shell para incorporar um shell interativo no vim, usado pelo GDB.
O fluxo de trabalho com o ConqueGDB consiste em não inserir comandos GDB no terminal GDB, você usa atalhos no código-fonte do vim. Mas você pode continuar usando o prompt do GDB, se desejar, para obter comandos mais avançados ou rolar para ver a sessão de depuração inteira.
Alguns mapeamentos padrão do ConqueGDB, por exemplo:
Observe como a linha do cursor vim foi usada para emitir uma 'linha de impressão' do GDB, a execução atual do código está em outra linha (14) e há um ponto de interrupção na linha 10.
Para instalar com o Vundle, por exemplo:
Plugin 'vim-scripts/Conque-GDB'
Eu uso estas opções de plug-in:
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> nos meus computadores. Manual Vim tem uma entrada para ele::help leader
<Leader>b
. Ele define um ponto de interrupção na posição do cursor. No entanto, NÃO é uma alternância, portanto você não pode usá-lo para removê-lo novamente. Em vez disso, você precisará escrever 'clear' no prompt do GDB.
Você tem vários plugins que integram o gdb.
E também há um plugin que integra lldb (do projeto LLVM)
Parece que Bram está atualmente (setembro de 2017) trabalhando na integração do gdb a partir do vim, graças ao novo :terminal
recurso. Para usá-lo, precisamos carregar o termdebug
pacote (com :packadd termdebug
), então poderemos iniciar um console gdb em uma janela do vim com :TermDebug (+options)
. Na IMO, podemos considerar o futuro da integração do GDB no Vim.
edit
Comando GDB
Abre um editor na linha atual usando o comando:
$EDITOR +<current-line> <current-file>
O padrão editor
é ex
, mas vim
também entende o +<current-line>
formato.
Ao sair do editor, você volta ao gdb
.
Isso permite que você navegue livremente na fonte e é especialmente poderoso se você tiver ctags
integração.
Essa é a integração do gdb para o vim de um pobre homem: a principal coisa que falta é definir pontos de interrupção no Vim.
edit
e centro
edit
não centraliza o Vim por padrão na fonte, por isso criei um script Python que o faz: https://stackoverflow.com/questions/43557405/how-to-open-the-current-file-at-the- linha-atual-em-um-editor-de-texto-do-gdb / 43557406 # 43557406
Comando do ponto de interrupção para o auxiliar da área de transferência
Este comando vim copia um especificador de ponto de interrupção do tipo:
b <file-path>:<line-number>
para a área de transferência:
command! Xg :let @+ = 'b ' . expand('%:p') . ':' . line('.')
Então você pode simplesmente colar isso gdb
.
Este é o ponto fraco da integração com o gdb para facilitar a definição de pontos de interrupção.
Consulte também: https://stackoverflow.com/questions/3536600/do-you-debug-c-code-in-vim-how
Embora não seja tecnicamente vim. O cgdb é uma versão maldita do gdb com atalhos de teclado parecidos com o vim. Tem sido meu depurador Goto por anos: