Вместо gdbtui
или ctrl+x
под gdb
которым отображается исходный код в верхней части экрана, я хотел бы видеть это в моем редакторе Vim, который будет переключаться между вкладками и буферами соответственно.
Как я могу это сделать?
Вместо gdbtui
или ctrl+x
под gdb
которым отображается исходный код в верхней части экрана, я хотел бы видеть это в моем редакторе Vim, который будет переключаться между вкладками и буферами соответственно.
Как я могу это сделать?
Ответы:
Из всех плагинов, которые я пробовал, я нашел ConqueGDB лучшим подходом. ConqueGDB использует Conque Shell для встраивания интерактивной оболочки в vim, которая используется GDB.
Рабочий процесс с ConqueGDB состоит не в вводе команд GDB на терминале GDB, вы используете ярлыки в исходном коде vim. Но вы можете продолжить использовать приглашение GDB, если хотите, для более сложных команд или прокручивать, чтобы увидеть весь сеанс отладки.
Некоторые сопоставления по умолчанию для ConqueGDB, например:
Обратите внимание, как строка курсора vim использовалась для выдачи «строки печати» GDB, текущее выполнение кода находится в другой строке (14), а в строке 10 есть точка останова.
Для установки с Vundle, например:
Я использую эти варианты плагинов:
источник
leader
значит?<leader>r
означает <kbd> \ </ kbd> + <kbd> r </ kbd> на моих компьютерах. В руководстве Vim есть запись для этого::help leader
<Leader>b
. Он устанавливает точку останова в позиции курсора. Тем не менее, это НЕ переключение, поэтому вы не можете использовать его, чтобы удалить его снова. Скорее, вам придется написать «очистить» в приглашении GDB.У вас есть несколько плагинов, которые интегрируют GDB.
И есть также плагин, который интегрирует lldb (из проекта LLVM)
Похоже, что в настоящее время Брэм (сентябрь 2017 года) работает над интеграцией GDB изнутри vim, благодаря новой
:terminal
функции. Чтобы использовать его, нам нужно загрузитьtermdebug
пакет (с:packadd termdebug
), тогда мы сможем запустить консоль GDB в окне VIM с:TermDebug (+options)
. ИМО, мы можем считать это будущим интеграции GDB под Vim.источник
edit
Команда GDBОткрывает редактор текущей строки с помощью команды:
По умолчанию
editor
этоex
, ноvim
также понимает+<current-line>
формат.Когда вы выходите из редактора, вы возвращаетесь в
gdb
.Это позволяет вам свободно просматривать исходный код и является особенно мощным, если у вас есть
ctags
интеграция.Это встроенная односторонняя интеграция GDB в vim для бедного человека: главное, чего не хватает, - это установки точек останова из Vim.
edit
и центрedit
По умолчанию Vim не центрируется вокруг источника, поэтому я создал скрипт Python, который делает это: https://stackoverflow.com/questions/43557405/how-to-open-the-current-file-at-the- текущая линия-в-текст-редактор из-БГДА / 43557406 # 43557406Команда точки останова для помощника буфера обмена
Эта команда vim копирует спецификатор точки останова типа:
в буфер обмена:
Тогда вы можете просто вставить это в
gdb
.Это интеграция vim в gdb для бедных, чтобы упростить установку точек останова.
Смотрите также: https://stackoverflow.com/questions/3536600/do-you-debug-c-code-in-vim-how
источник
Хотя технически не vim. cgdb является проклятой версией gdb с vim-подобными сочетаниями клавиш. Это был мой goto отладчик в течение многих лет:
https://cgdb.github.io/
источник