Существует ли графический интерфейс GDB на C++ для Linux?[закрыто]

StackOverflow https://stackoverflow.com/questions/79023

  •  09-06-2019
  •  | 
  •  

Вопрос

Кратко:Кто-нибудь знает графический интерфейс для GDB, который приближает его к набору функций, который вы получаете в более поздней версии Visual C++, или близко к нему?

В деталях:Как человек, потративший много времени на программирование в Windows, один из самых больших камней преткновения, с которым я сталкиваюсь всякий раз, когда мне приходится писать код на C++ в Linux, заключается в том, что отладка чего-либо с использованием командной строки GDB занимает у меня в несколько раз больше времени, чем в Visual Studio. и, похоже, с практикой ситуация не становится лучше.Некоторые вещи проще и быстрее выразить графически.

В частности, я ищу графический интерфейс, который:

  • Управляет всеми базовыми операциями, такими как переход и вход в код, просмотр переменных и точек останова.
  • Понимает и может отображать содержимое сложных и вложенных типов данных C++.
  • Не запутывается и, желательно, может разумно перемещаться по шаблонному коду и структурам данных, отображая при этом соответствующую информацию, такую ​​​​как типы параметров.
  • Может обрабатывать многопоточные приложения и переключаться между различными потоками для пошагового выполнения или просмотра состояния
  • Может обрабатывать присоединение к уже запущенному процессу или чтение дампа ядра, а также запускать программу в GDB.

Если такой программы не существует, то я хотел бы услышать об опыте людей, использующих программы, которые соответствуют хотя бы некоторым пунктам списка.Есть ли у кого-нибудь рекомендации?

Редактировать:
Перечислять возможности — это здорово, и я возьму все, что смогу, но было бы еще полезнее, если бы вы включили в свои ответы:
(а) Использовали ли вы этот графический интерфейс на самом деле, и если да, то какие положительные/отрицательные отзывы вы о нем имеете.
(б) Если вы знаете, какие из вышеупомянутых функций поддерживаются/не поддерживаются

Списки легко найти, такие сайты хороши, потому что вы можете получить представление о личном опыте людей с приложениями.

Это было полезно?

Решение

Вы не найдете что-либо наложение GDB, которое может конкурировать с мощью отладчика Visual Studio.Он слишком мощный и слишком хорошо интегрирован в IDE.

В качестве альтернативы Linux попробуйте DDD, если вам нравится свободное программное обеспечение.

Другие советы

Eclipse CDT предоставит возможности, сравнимые с использованием Visual Studio.Я использую Eclipse CDT ежедневно для написания кода и отладки локальных и удаленных процессов.

Если вы не знакомы с использованием IDE на основе Eclipse, к графическому пользовательскому интерфейсу придется немного привыкнуть.Однако как только вы поймете идеи графического интерфейса, уникальные для Eclipse (например,перспектива), использование этого инструмента становится приятным занятием.

Инструментарий CDT предоставляет достойный индексатор C/C++, который позволяет быстро находить ссылки на методы в вашей базе кода.Он также предоставляет хороший инструмент расширения макросов и ограниченную поддержку рефакторинга.

Что касается поддержки отладки, CDT умеет делать все, что есть в вашем списке, за исключением чтения дампа ядра (он может это поддерживать, но я никогда не пробовал использовать эту функцию).Кроме того, мой опыт отладки кода с использованием шаблонов ограничен, поэтому я не уверен, какой опыт предоставит CDT в этом отношении.

Для получения дополнительной информации об отладке с использованием Eclipse CDT вы можете ознакомиться с этими руководствами:

gdb -tui работает нормально, если вам нужно что-то с графическим интерфейсом, но по-прежнему основанное на символах.

Проверить Отладчик Nemiver C/C++.Его легко установить в Ubuntu (инструменты разработчика/отладка).

Обновлять: Новая ссылка.

Мне не нравится идея разработки под Windows, но отладчик VC++ — один из лучших, которые я когда-либо видел.Я не нашел интерфейса с графическим интерфейсом, который был бы близок к интерфейсу VC.

GDB великолепен, если к нему действительно привыкнуть.Используйте его достаточно сильно в гневе, и вы станете очень опытным.Я могу без особых усилий работать с программой, выполняющей все перечисленные вами действия.Мне потребовался месяц или около того мучений из-за SSH-соединения с удаленным сервером, прежде чем я научился этому.Хотя я бы никогда не вернулся.

DDD действительно мощный инструмент, но в нем было много ошибок.Я обнаружил, что он довольно часто зависал, когда получал сообщения от GDB о том, что он не вникает.Это хорошо, потому что у него есть окно интерфейса GDB, поэтому вы можете видеть, что происходит, а также напрямую взаимодействовать с GDB.По какой-то причине DDD нельзя использовать в удаленном сеансе X в моей среде (настоящая проблема, поскольку я сижу за тонким клиентом, когда занимаюсь разработкой Unix), так что это для меня недоступно.

KDevelop следовал типичному стилю KDE и предоставлял пользователю ВСЕ.Мне также никогда не удавалось отлаживать программы, не относящиеся к KDevelop, в KDevelop.

Gnat Programming Studio (GPS) на самом деле является довольно хорошим интерфейсом для GDB.Он не просто управляет проектами Ada, поэтому стоит попробовать, если вам нужен отладчик.

Вы могли бы использовать Eclipse, но он довольно тяжелый, и многие опытные пользователи Unix, с которыми я работал (включая меня), не особо заботятся о его интерфейсе, который не будет просто STFU и не будет мешать вам.Eclipse также занимает много места и бегает как собака.

Qt Creator кажется хорошей штукой.Коллега показал мне один из способов настройки для отладки:

  • Создайте новый проект «Импорт проекта на основе Makefile».
  • Укажите его на корневую папку вашего проекта (он проиндексирует исходные файлы, и это впечатляюще быстро).
  • Перейдите к настройкам проекта и добавьте конфигурацию запуска, затем укажите исполняемый файл, который вы хотите отладить, и его аргументы.
  • Qt Creator, похоже, настаивает на создании вашего проекта перед его отладкой.Если вы этого не хотите или не используете команду make, вы можете переопределить команду make.Я изменил его на «истина».:)

Может показаться, что для отладки приложения, которое я уже скомпилировал, требуется слишком много работы, но оно того стоит.Отладчик отображает потоки, стеки и локальные переменные аналогично Visual Studio и даже использует многие из тех же сочетаний клавиш.Кажется, он хорошо обрабатывает шаблоны, по крайней мере, std::string и std::map.Кажется, поддерживается подключение к существующим процессам и дампам ядра, хотя я еще не проверял это.

Имейте в виду, что я использовал его менее часа, но до сих пор я впечатлен.

Я использую cgdb, просто и полезно

Я часто использую DDD, и если вы научитесь его использовать, он станет довольно мощным инструментом.Я бы посоветовал не использовать его через X через WAN, потому что он, похоже, выполняет много ненужных обновлений экрана.

Кроме того, если вы не связаны с GDB и не против потратить немного денег, я бы попробовал TotalView.Кривая обучения ему требует довольно крутого подхода (он определенно мог бы быть более интуитивным), но это лучший отладчик C++, который я когда-либо использовал на любой платформе, и его можно расширить для самоанализа ваших объектов собственными способами (что позволяет вам просматривать Список STL как реальный список объектов, а не набор запутанных внутренних элементов данных и т. д.)

Ознакомьтесь с проектом Eclipse CDT.Это плагин для Eclipse, ориентированный на разработку на C/C++ и включающий в себя довольно многофункциональную перспективу отладки (которая за кулисами использует GDB).Он доступен на самых разных платформах.

Интерфейс emacs аналогичен интерфейсу eclipse gdb и тесно связан с IDE emacs.Если вы уже работаете с emacs, вам понравится:

Интерфейс GDB для Emacs

DDD — это интерфейс GNU для GDB: http://www.gnu.org/software/ddd/

Я использовал KDbg (работает только под KDE).

Qt Creator-on-Linux в настоящее время, безусловно, находится на одном уровне с Visual Studio-on-Windows для C++.Я бы даже сказал лучше на стороне отладчика.

В этом списке отсутствует одна IDE, которая очень эффективна (я использовал ее во многих проектах C/C++ без каких-либо проблем): Netbeans.

Я попробовал несколько разных графических интерфейсов для GDB и обнаружил, что DDD — лучший из них.И хотя я не могу комментировать другие предложения для Linux, не относящиеся к GDB, я использовал ряд других отладчиков на других платформах.

gdb делает большую часть того, что есть в вашем списке пожеланий.DDD придает им более приятный вид.Например, переключение потоков стало проще.Установить точки останова так же просто, как и следовало ожидать.

Вы также получаете окно командной строки на случай, если вы захотите сделать что-то непонятное.

Единственная особенность DDD, которая выделяется среди других отладчиков, которые я использовал, — это «построение графиков» данных.Это позволяет отображать и упорядочивать структуры, объекты и память в виде перетаскиваемых блоков.Двойной щелчок по указателю откроет разыменованные данные с визуальными ссылками на родительский объект.

То, через что можно пройти, будет в значительной степени ограничено отладочной информацией, которую создает g++.Emacs предоставляет интерфейс для gdb, который позволяет вам управлять им через панели инструментов/меню и отображать данные в отдельных окнах, а также напрямую вводить команды gdb.CDT Eclipse предоставляет аналогичные инструменты.Я слышал об Anjuta и Code::Blocks, но никогда ими не пользовался.

Как человек, знакомый с Visual Studio, я рассмотрел несколько IDE с открытым исходным кодом, чтобы заменить ее, и KDevelop, по моему мнению, ближе всего к тому, что человек, использующий Visual C++, может просто сесть и начать использовать.Когда вы запускаете проект в режиме отладки, он использует GDB, но kdevelop в значительной степени обрабатывает все это, так что вам не нужно знать, что это GDB;вы просто выполняете один шаг или назначаете часы переменным.

К сожалению, он все еще не так хорош, как отладчик Visual Studio.

Вы не указываете, используете ли вы Windows или UNIX.

В системах UNIX КДевелопмент это хорошо, но я использую КДбг потому что он прост в использовании и будет работать с приложениями, не разработанными в KDevelop.

Затмение хорош на обеих платформах.

В Windows есть отличный пакет под названием Разработчик настольных компьютеров Wascana это Eclipse CDT и MinGW, все упакованные и предварительно настроенные для минимальной боли.Это лучшее, что я нашел для разработки кода GNU в Windows.

Я использовал все эти отладчики, и ни один из них не уступает MS Dev Studio.Eclipse/Wascana, вероятно, является наиболее близким, но у него есть ограничения, например, вы не можете входить в библиотеки DLL, и он не так хорошо справляется с проверкой переменных.

Вы когда-нибудь смотрели на Отладчик ДС-5?

Существует платная версия, которая включает в себя множество полезных функций, но вы также можете использовать Community Edition бесплатно (что также весьма полезно, особенно для встраиваемых систем).

У меня есть положительный опыт работы с этим инструментом при отладке приложений Android на реальном устройстве с использованием eclipse.

А Код:Блоки C++ IDE имеет графическую оболочку с некоторыми необходимыми функциями, но не имеет ничего общего с мощью VS.

VisualGDB — еще один плагин Visual Studio для разработки и отладки приложений на Linux и встроенных платформах.

KDevelop работает очень хорошо.

Вы пробовали gdb -w с cygwin gdb.Предполагается, что интерфейс Windows работает достаточно хорошо.

Единственная проблема, которую я обнаружил, заключается в том, что на моей нынешней машине она не работала до тех пор, пока я не установил ddd.Я подозреваю, что для этого требуется tcltk, который был установлен при установке DDD.

Последняя версия Geany поддерживает его (правда, только в Linux)

Если вы ищете GDB в Visual Studio, проверьте WinGDB.

Последние 15 месяцев пользуюсь Insight (входит в комплект FC6).Он невелик, написан на Tcl/Tk, но прост и полезен.DDD имеет такое же качество/полезность, но несколько сложнее в использовании (различные ошибки и упущения в графическом интерфейсе).Я также пытался интегрировать GDB с моей IDE SlickEdit.Все работало нормально (я играл с ним около 4 часов), но мне не понравились переключения контекста графического интерфейса.Мне нравится, чтобы моя IDE оставалась неизменной во время отладки;в Windows я использую SlickEdit для IDE и отладчик Visual Studio для отладки.Итак из 3:Insight, DDD и SlickEdit. Insight — мой первый выбор, я использую его >95% времени, GDB и DDD для командной строки составляют остальные 5%.Если у меня будет возможность, я в какой-то момент оценю Eclipse, но на моем рабочем компьютере, похоже, недостаточно оперативной памяти (только 1 ГБ) для достаточно хорошей работы Eclipse.

Я также слышал много похвал в адрес TotalView, в том числе из первых рук во время собеседования.Я получил оценку нашей компании в конце 2008 года, но в конце концов мы не пошли дальше, поскольку GDB был достаточно хорош для наших нужд;и это бесплатно и повсеместно.

Используйте www.zero-bugs.com/ Zero Debugger, требуется поддержка C ++ 0x из GCC

Я искал отладчик для пошаговой обработки работающей программы.Сказать:Прикреплять.Программа была построена с использованием eclipse, но из-за, возможно, некоторых препятствий многопоточности, исходные файлы не использовались.Что бы ни.

Я очень хорошо освоился с NetBeans.

  • [отладка] из меню -> Прикрепить Deugger...
  • поскольку процесс выбрал тот, который нужно отладить
  • как проект [новый проект]

Теперь окно исчезает, и вы ничего не видите.отстраниться от процесса.Квадрат чтения «Стоп» помогает.

  • источник импорта из проекта, например.папка.".../MyProject/src
  • Теперь он появится в вашем проекте, и вы сможете установить точки останова.
  • снова ttach-отладчик
  • выбрал процесс для отладки.
  • отладчик должен остановиться, если программа достигнет следующей точки останова.

Переходим в [окно] -> [Отладка] -> Сделаем ли ваше окно удобным.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top