2008-09-17 4 views
189

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

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

В частности, я ищу графический интерфейс пользователя, что:

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

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

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

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

+18

+1 за слишком. «Сайты, как это здорово, потому что вы можете получить представление о личном опыте людей.» многие люди в настоящее время просто делают список d ump, который ИМХО полностью пропустил. – kizzx2 2010-06-11 13:43:21

+1

Голосование закрывается как тема, потому что «рекомендуется найти инструмент». – 2015-06-10 05:30:33

+0

Об обратном проектировании: http://reverseengineering.stackexchange.com/questions/1392/decent-gui-for-gdb – 2015-07-10 08:31:36

ответ

57

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

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

+77

«Хотя я получу ....». Этот обратный психологический гамбит хорошо работает и на Slashdot. – fizzer 2010-11-20 16:15:56

+6

@fizzer - Должно. Вот где он скопировал и вставил этот ответ. :-) – 2011-04-14 18:46:07

+5

+1 для любви с закрытым источником. – 2011-06-01 05:47:47

2

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

8

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

1

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

0

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

70

GDB -tui работает нормально, если вы хотите что-то GUI-МОГ, но по-прежнему на основе характера.

16

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

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

3

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

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

80

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

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

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

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

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

4

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

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

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

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

3

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

1

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

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

6

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

GDB Emacs Frontend

3

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

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

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

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

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

26

Я ненавижу идею разработки 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 и не выйдет из вашего путь. Eclipse также, кажется, занимает много места и работает как собака.

23

Я использую cgdb, простой и ПОЛЕЗНЫЕ

0

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

0

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

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

27

Qt Creator выглядит как хороший материал. Один из коллег показал мне, что один из способов настроить его для отладки:

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

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

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

5

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

42

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

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

1

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

0

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

5

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

2

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

3

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

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

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

0

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

Мне очень нравится NetBeans.

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

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

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

Переход к [окно] -> [Debugging] -> Будет ли ваше окно сделать compfortable

Смежные вопросы