Подтвердить что ты не робот

Есть ли С++ gdb GUI для Linux?

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

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

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

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

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

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

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

4b9b3361

Ответ 1

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

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

Ответ 2

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

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

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

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

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

Ответ 3

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

Ответ 4

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

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

Ответ 5

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

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

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

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

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

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

Ответ 6

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

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

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

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

Ответ 7

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

Ответ 8

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

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

Ответ 9

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

Ответ 10

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

Внешний вид GDB Emacs

Ответ 12

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

Ответ 13

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

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

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

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

Ответ 14

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

Ответ 15

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

По-прежнему это не так хорошо, как отладчик Visual Studio.

Ответ 16

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

Ответ 17

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

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

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

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

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

Ответ 18

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

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

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

Ответ 19

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

Ответ 20

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

Ответ 21

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

Ответ 22

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

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

Ответ 23

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

Ответ 24

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

Ответ 25

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

Ответ 26

За последние 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, у моего рабочего ПК, похоже, нет достаточного количества ОЗУ (только 1 ГБ) для разумного использования Eclipse.

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

Ответ 27

Использовать www.zero-bugs.com/ Zero debugger, для этого требуется поддержка С++ 0x от gcc

Ответ 28

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

Мне очень понравилось NetBeans.

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

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

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

Переход в [окно] → [Отладка] → Будет ли ваше окно непринужденным.