Какие интерфейсы gdb можно использовать с vim для отладки кода C и С++? В настоящее время я использую cgdb и доволен этим. Было просто интересно, что еще там?
Интерфейс gdb для использования с vim?
Ответ 1
Google - ваш друг. http://clewn.sourceforge.net/
Честно говоря, я думаю, что вам лучше придерживаться cgdb.
Ответ 2
Посмотрите pyclewn. Как написано на vim.org:
Pyclewn - расширение для Vim, которое поддерживает полное использование gdb от Vim. С точками останова, наблюдаемыми переменными, завершением команды gdb и т.д. Использует интерфейс NetBeans.
Возможно, не так просто начать использовать его как cgdb, но его легко использовать.
Сначала вам нужно скомпилировать vim с помощью функции + netbeans_intg и + python/dyn или + python3/dyn Например, вы используете python3. Настройте vim следующим образом:
./configure --with-features=huge --enable-python3interp
Не забудьте установить файлы заголовков python (пакет python3-dev). Затем загрузите pyclewn-1.7.py3.tar.gz и установите.
Вы можете использовать руководство по установке из сайта или установить его с помощью pathogen. Для установки с патогеном:
tar zxvf pyclewn-1.7.py3.tar.gz
vimdir=$HOME/.vim/bundle/pyclewn python3 setup.py install --force --home=$HOME/.vim/local
Изменить строку $HOME/.vim/local/lib/python/clewn/vim.py: 343 из 'runtime plugin/pyclewn.vim' в 'runtime bundle/pyclewn/plugin/pyclewn.vim'
Добавить путь $HOME/.vim/local/bin (или любой другой, который вы используете) к вашему PATH.
Добавить переменную
export CLEWNDIR=$HOME/.vim/bundle/pyclewn/macros
Вы можете изменить отображение ключей в файле $HOME/.vim/bundle/pyclewn/macroros/.pyclewn_keys.gdb
Для простой работы с pyclewn я использую следующий файл bash: $HOME/.vim/local/bin/pclewn
#!/bin/bash
pyclewn --gdb="async" --args="--args [email protected]" --cargs='-c "runtime misc/pclewn.vim" -c "call PyClewnPre()"'
и vim script $HOME/.vim/misc/pclewn.vim
function! PyClewnInit()
C tbreak main
Cmapkeys
unmap <CR>
endfunction
function! PyClewnPre()
map <CR> :call PyClewnInit()<CR>
0put ='Press <Enter> to start'
setlocal buftype=nofile
endfunction
Итак, чтобы начать отладку, я использую команду:
pclewn my_program arg1 arg2 argN
UPD: ваша программа на С++, вероятно, использует контейнеры STL. Чтобы отобразить их, загрузите dbinit_stl_views-1.03.txt и переименуйте этот файл в ~/.gdbinit. После этого вы можете использовать команды типа:
pstring stl_variable
pvector stl_variable
Справка доступна из gdb, например, командой "help pmap". Подробнее здесь
И, конечно, вы можете сопоставить ключ для печати строки под курсором следующим образом:
nmap <F1> :exe "C pstring " . expand("<cword>")<CR>
Ответ 3
Conque GDB очень похож на cgdb. Это эмулятор терминала, который превращает буфер vim в интерфейс командной строки gdb. См. http://www.vim.org/scripts/script.php?script_id=4582
Ответ 4
IMO, gdb TUI является самым простым. Здесь вы можете посмотреть список привязок клавиш: http://sourceware.org/gdb/onlinedocs/gdb/TUI-Keys.html#TUI-Keys
В частности, s (step-in) и f (завершение функции и возврат) являются наиболее полезными привязками клавиш.