Подтвердить что ты не робот

Интерфейс gdb для использования с vim?

Какие интерфейсы gdb можно использовать с vim для отладки кода C и С++? В настоящее время я использую cgdb и доволен этим. Было просто интересно, что еще там?

4b9b3361

Ответ 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 (завершение функции и возврат) являются наиболее полезными привязками клавиш.