Вы отлаживаете код C++ в Vim? Как?
вопрос ко всем вам, кто использует Vim для разработки приложений на C++.
был период в моей жизни, который можно охарактеризовать как
- Ненавижу Вима!!!'..'Vim-это приятно!-
однако, выросший в основном на Идах разработки Microsoft, я привык к этим F5 -F11 ярлыки при отладке кода, окна просмотра, стека вызовов и основного кода - все это видно без необходимости вводить какие-либо команды GDB.
вот вопрос:
вы также используете Vim для отладки? Или вы переключаетесь на какую-то IDE для этой цели? Какой именно?
для тех, кто использует Vim для отладки кода: есть ли плагины для установки точек останова в Редакторе, выделите строку, которую мы сейчас отлаживаем, автонавигацию во время шага, Шаг в, шаг наружу?
пожалуйста,не говорите мне, что вы используете GDB в качестве командной строки, см. только одну строку, которая отлажена и т. д.
5 ответов:
в отличие от других ответов, есть по крайней мере три варианта, которые делают именно то, что вам нужно: clewn,pyclewn и vimgdb.
все три проекта связаны между собой. vimgdb является патчем против Vim и требует перекомпиляции Vim. clewn это автономная программа, которая взаимодействует с Vim через интерфейс сокета Netbeans. Это требует, чтобы Vim был построен с (Это случай в последних дистрибутивах Linux, поэтому это не должно быть проблемой).
цитата с сайта clewn:
Clewn реализует полную поддержку gdb в Редакторе vim: точки останова, переменные наблюдения, завершение команды gdb, окна сборки и т. д.
Я думаю, что вы должны дать ей идти.
на главной странице сайта pyclewn показано сравнение между тремя проектами.
несколько месяцев назад я попытался пиклвен. Это было немного трудно настроить, но это выглядит хорошо, хотя и многообещающим. Я просто сделал несколько тестов, и вы можете установить закладки и т. д., обычный материал, который вы ожидаете от графического отладчика. Я закончил тем, что не использовал его по случайным причинам, но я очень хочу дать ему еще одну попытку.
использование отладчика исходного уровня-это только один из многих способов диагностики неисправного поведения программы, и я редко запускаю его, несмотря на то, что это очень легко сделать.
для меня просто нет неотъемлемого преимущества использования текстового редактора, который также является отладчиком. Вместо этого я использую текстовый редактор, который я предпочитаю -- независимо от того, какой отладчик я выбираю для использования. На данный момент, я в основном использую gedit и kdbg для этих целей, но эти выборы эволюционируют независимо с течением времени.
недавно работая над приложением в течение длительного времени, которое требовало, чтобы куча вещей была на месте на коробке, которую он запускал (настройка устройства), я написал код в vim, имел сценарии, которые автоматизировали построение, толкая его на сервер, у которого был сценарий, чтобы заметить файл sentinel, толкаемый вместе с двоичными файлами. Затем это перезапустит соответствующие службы в поле, а в другом окне ssh у меня было
tail -fработает в моем файле журнала.короче говоря, я не использовал отладчик вообще. Если бы у меня что-то неожиданно умерло, я бы просто поднял уровни ведения журнала, повторил его и посмотрел, что было последним, что было зарегистрировано перед смертью, а затем проанализировал это и исправил проблему.
приятно было то, что когда что-то имело проблемы в среде клиента, я просто просил журнал уровня отладки и мог идентифицировать проблему, даже не требуя доступа к их серверу.
... Но да, Были времена, когда было бы неплохо иметь отладчик.
GDB
editкомандаоткроется редактор в текущей строке с помощью команды:
$EDITOR +<current-line> <current-file>по умолчанию
editorиex, аvimпонимает .когда вы выходите из редактора, вы возвращаетесь в
gdb.это позволяет просматривать источник свободно и особенно мощный, если у вас есть
ctagsинтеграция.это "для бедных", встроенный в одну сторону ГДБ для интеграции vim: основная недостающая вещь-это установка точек останова из Vim.
editи центр
editне центрирует Vim по умолчанию вокруг источника, поэтому я создал скрипт Python, который это делает:как открыть текущий файл в текущей строке в текстовом редакторе из GDB?команда точки останова в буфер обмена помощник
эта команда vim копирует спецификатор точки останова тип:
b <file-path>:<line-number>в буфер обмена:
command! Xg :let @+ = 'b ' . expand('%:p') . ':' . line('.')затем вы можете просто вставить в
gdb.это vim бедного человека к интеграции gdb для облегчения установки точек останова.
Comments