Вы отлаживаете код C ++ в Vim? Как?

Вопрос ко всем вам, кто использует Vim для разработки приложений на C ++.

В моей жизни был период, который можно охарактеризовать как «Я ненавижу Vim !!!» .. «Vim хорош!»

Однако, вырос в основном в среде разработки Microsoft, я Привыкли к этим ярлыкам F5 - F11 при отладке кода, окна просмотра, стека вызовов и основного кода - все это видно без необходимости вводить какие-либо команды GDB.

Итак, вот вопрос:

Вы также используете Vim для отладки? Или вы переключаетесь на какую-то IDE для этой цели? Какой из них?

Для тех, кто использует Vim для отладки кода: есть ли плагины для установки точек останова в редакторе, выделите строку, которую мы сейчас отлаживаем, автоматическую навигацию во время шага, шага в, выхода ?

Пожалуйста, не говорите мне, что вы используете GDB в качестве командной строки, смотрите только одну отлаженную строку и т. Д.

139
задан Peter Mortensen 14 June 2017 в 23:12
поделиться

4 ответа

В отличие от других ответов, есть как минимум три варианта, которые делают именно то, что вам нужно: clewn , pyclewn и vimgdb .

Все три проекта связаны между собой. vimgdb - это патч против Vim, который требует перекомпиляции Vim. clewn - это отдельная программа, которая взаимодействует с Vim через интерфейс сокета Netbeans. Для этого требуется, чтобы Vim был собран с опцией + netbeans (это имеет место в последних дистрибутивах Linux, поэтому это не должно быть проблемой).

Цитата с веб-сайта clewn:

Clewn реализует полную поддержку gdb в редакторе vim: точки останова, контрольные переменные, завершение команды gdb, окна сборки и т. Д.

Я думаю, вам определенно стоит попробовать.

На домашней странице веб-сайта pyclewn показано сравнение трех проектов.

Несколько месяцев назад я попробовал pyclewn. Его было немного сложно настроить, но он выглядит неплохо и многообещающе. Я только что провел несколько тестов, и вы могли установить закладки и т. Д., Как обычно, что вы ожидаете от графического отладчика. В итоге я не использовал его по непредвиденным причинам, но я очень хочу попробовать еще раз.

70
ответ дан 23 November 2019 в 23:22
поделиться

Vim - хороший редактор, но для отладки я использую отладчик (например, GDB).

Но вам не обязательно использовать GDB в текстовом режиме; вы можете использовать графический интерфейс, например KDbg , DDD или Insight .

Есть способы вставить GDB в Vim (но тогда вы получите отладку на основе текста).

14
ответ дан 23 November 2019 в 23:22
поделиться

Совсем недавно долгое время работая над приложением, которое требовало наличия множества вещей на компьютере, на котором оно работало (установка устройства), я написал код в vim, у меня были сценарии, которые автоматизируют сборку и запускают ее. на сервер, на котором был сценарий, чтобы заметить, что файл-дозорный отправляется вместе с двоичными файлами. Это затем перезапустило бы соответствующие службы на коробке, и в другом окне ssh у меня был tail -f , работающий в моем файле журнала.

Короче говоря, я вообще не использовал отладчик. Если что-то неожиданно умирало, я просто повышал уровень ведения журнала, переделывал его и смотрел, что было последним в журнале перед смертью, а затем анализировал это и исправлял проблему.

Приятно было то, что при возникновении проблем в среде клиента я просто запрашивал журнал уровня отладки и мог идентифицировать проблему, даже не требуя доступа к их серверу.

... но да, были времена, когда было бы неплохо иметь отладчик.

1
ответ дан 23 November 2019 в 23:22
поделиться

Использование отладчика на уровне исходного текста - это лишь один из многих способов диагностировать неправильное поведение программы, и я редко нахожу себя в состоянии запустить его - несмотря на то, что это очень легко сделать.

Поэтому для меня просто нет никаких преимуществ в использовании текстового редактора, который также является отладчиком. Вместо этого я использую тот текстовый редактор, который мне больше нравится - независимо от того, какой отладчик я решил использовать. В настоящее время для этих целей я в основном использую gedit и kdbg, но со временем эти варианты будут меняться независимо друг от друга.

4
ответ дан 23 November 2019 в 23:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: