it-swarm-ru.tech

Есть ли C ++ GDB GUI для Linux?

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

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

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

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

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

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

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

201
HappyDude

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

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

56
Vicent Marti

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

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

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

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

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

84
Jon Ball

gDB-TUI работает нормально, если вы хотите что-то с графическим интерфейсом, но все же на основе символов.

78
Carleton

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

Обновление: Новая ссылка.

46
Sergey Shandar

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

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

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

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

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

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

29
Adam Hawes

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

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

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

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

28
Soulman

Я использую GDB, простой и полезный

26
cod

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

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

16
Nick Bastin

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

8
user14636

Интерфейс Eclipse GDB удобен также и для интерфейса Emacs, тесно связанного с Emacs IDE. Если вы уже работаете с emacs, вам понравится:

GDB Emacs Frontend

7
Johannes Schaub - litb

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

5
codeguru

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

5
Marv

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

5
Florent

DDD является интерфейсом GNU для gdb: http://www.gnu.org/software/ddd/

5
mmattax

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

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

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

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

5
Andrew Edgecombe

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

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

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

3
Viktor Malyi

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

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

3
Dennis Ferron

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

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

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

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

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

3
Adam Pierce

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

3
Allen

Code: Blocks C++ IDE имеет графическую оболочку с несколькими функциями, которые вы хотите, но не похожими на возможности VS.

2
crobar

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

2
Sergey Zhukov

Вы пробовали GDB-W с Cygwin GDB. Предполагается иметь интерфейс Windows, который работает довольно хорошо.

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

1
BubbaT

KDevelop работает довольно хорошо.

1
Harold Ekstrom

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

0
Dominic.wig

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

0
Milan Babuškov

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

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

0
Radim Cernej

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

Мне стало очень удобно с NetBeans.

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

Теперь окно не открывается, и вы ничего не видите. оторваться от процесса. Чтение площади "Стоп" помогает.

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

Переход к [window] -> [Debugging] -> сделает ваше окно удобным.

0
Cutton Eye

Используйте www.zero-bugs.com/ Нулевой отладчик, он требует поддержки C++ 0x от gcc

0
siddhusingh