Есть ли графический интерфейс c++ gdb для Linux? [закрытый]

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

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

в частности, я ищу GUI, который:

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

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

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

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

28 ответов


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

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


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

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

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

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

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


gdb-tui работает нормально, если вы хотите что-то GUI-ish, но все еще на основе символов.


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

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


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

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

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

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

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

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


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

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

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

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


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


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

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


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


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

интерфейс GDB Emacs


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


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


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


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

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

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

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


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


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


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

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


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

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

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

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

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


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

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

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


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


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


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


вы пробовали gdb-w с cygwin gdb. Он supossed иметь интерфейс windows, который работает довольно хорошо.

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


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


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


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

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


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


Я искал отладчик, чтобы пройти через запущенную программу. Сказать: "Прикрепить". Программа была построена с Eclipse, но из-за Может некоторые multithreadding obstrucles, не sourcefiles, где любят. Чем когда-либо.

Я получил очень удобный с NetBeans.

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

теперь окно disappars и вы видите ничего. оторвать от процесса. Читаемый квадрат "стоп" помогает.

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

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