Есть ли графический интерфейс c++ gdb для Linux? [закрытый]
кратко: кто-нибудь знает о GUI для gdb, который приносит его наравне или близко к набору функций, который вы получаете в более поздней версии Visual C++?
подробно: как кто-то, кто потратил много времени на программирование в Windows, один из больших камней преткновения, которые я нашел всякий раз, когда мне нужно кодировать C++ в Linux, заключается в том, что отладка чего-либо с помощью командной строки gdb занимает у меня в несколько раз больше времени, чем в Visual Studio, и это, похоже, не становится лучше с практикой. Некоторые вещи просто проще или быстрее выразить графически.
в частности, я ищу интерфейс:
- обрабатывает все основы, такие как переход через & в код, смотреть переменные и точки останова
- понимает и может отображать содержимое сложных и вложенных типов данных C++
- не запутывается и предпочтительно может разумно проходить через шаблонный код и структуры данных при отображении соответствующей информации, такой как типы параметров
- смогите отрегулировать продетые нитку применения и переключить между различными потоками для того чтобы шагнуть до конца или осмотреть положение
- может обрабатывать присоединение к уже запущенному процессу или чтение дампа ядра, в дополнение к запуску программы в gdb
Если такой программы не существует, то я хотел бы услышать об опыте людей с программами, которые отвечают, по крайней мере, некоторые ключевые моменты.
У кого-нибудь есть рекомендации?
Edit:
Перечисление возможностей отлично, и я возьму то, что могу получить, но было бы еще более полезно, если бы вы могли включить в свои ответы:
(a) действительно ли вы использовали этот графический интерфейс, и если да, то какие положительные/отрицательные отзывы у вас есть об этом.
(b) если вы знаете, какие из вышеупомянутых функций поддерживаются/не поддерживаются
списки легко найти, сайты, как это здорово, потому что вы можете получить представление о личном опыте людей с приложениями.
28 ответов:
вы не найдете ничего наложение GDB, которое может конкурировать с необработанной мощностью отладчика Visual Studio. Он просто слишком мощный, и он слишком хорошо интегрирован внутри IDE.
для альтернативы Linux попробуйте DDD, если свободное программное обеспечение-это ваша вещь.
Eclipse CDT обеспечит опыт, сопоставимый с использованием Visual Studio. Я использую Eclipse CDT ежедневно для написания кода и отладки локальных и удаленных процессов.
Если вы не знакомы с использованием IDE на основе Eclipse, графический интерфейс немного привыкнет. Однако, как только вы поймете идеи GUI, которые уникальны для Eclipse (например, перспектива), использование инструмента становится приятным опытом.
инструмент CDT обеспечивает достойный C / C++ индексатор, который позволяет быстро находить ссылки на методы в базе кода. Он также обеспечивает хороший инструмент расширения макросов и ограниченную поддержку рефакторинга.
Что касается поддержки отладки, CDT может делать все в вашем списке, за исключением чтения дампа ядра (он может поддерживать это, но я никогда не пытался использовать эту функцию). Кроме того, мой опыт отладки кода с использованием шаблонов ограничен, поэтому я не уверен, какой опыт CDT предоставит эти отношения.
для получения дополнительной информации об отладке с помощью Eclipse CDT, вы можете проверить эти руководства:
проверить Отладчик 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. Присоединение к существующим процессы и основные дампы, похоже, поддерживаются, хотя я еще не тестировал его.
имейте в виду, что я использовал его менее чем за час, но я впечатлен до сих пор.
Я использую DDD много, и это довольно мощный, как только вы научитесь его использовать. Одна вещь, которую я бы сказал, это не использовать его над X над WAN, потому что он, кажется, делает много ненужных обновлений экрана.
кроме того, если вы не спарены с GDB и не возражаете против небольшого количества денег, я бы попробовал TotalView. Он имеет немного крутую кривую обучения (она определенно может быть более интуитивной), но это лучший отладчик C++, который я когда-либо использовал на любой платформе, и может быть расширен для интроспекции вашего объекты пользовательскими способами (таким образом, вы можете просматривать список STL как фактический список объектов, а не кучу запутанных внутренних элементов данных и т. д.)
Проверьте проект Eclipse CDT. Это плагин для Eclipse, ориентированный на разработку C/C++ и включает в себя довольно многофункциональную перспективу отладки (которая за кулисами использует GDB). Он доступен на самых разных платформах.
подобным удобным для интерфейса eclipse gdb является интерфейс emacs, плотно связанный с IDE emacs. Если вы уже работаете с Emacs, вам понравится:
DDD-это интерфейс GNU для gdb:http://www.gnu.org/software/ddd/
Qt Creator-on-Linux, безусловно, находится на одном уровне с Visual Studio-on-Windows для C++ в настоящее время. Я бы даже сказал лучше на стороне отладчика.
в этом списке отсутствует одна IDE, которая очень эффективна (я использовал ее во многих проектах C/C++ без каких-либо проблем): Netbeans.
Я пробовал несколько разных графических интерфейсов для gdb и обнаружил, что DDD лучше их. И хотя я не могу комментировать другие, не связанные с gdb предложения для linux, я использовал ряд других отладчиков на других платформах.
gdb делает большинство вещей, которые у вас есть в вашем списке пожеланий. DDD ставит более приятный фронт на них. Например, переключение потоков упрощается. Установка точек останова так же просто, как и следовало ожидать.
вы также получаете окно cli в случае, если там это что-то непонятное, что вы хотите сделать.
одной из особенностей DDD, которая выделяется над любым другим отладчиком, который я использовал, является "графическое отображение"данных. Это позволяет отображать и упорядочивать структуры, объекты и память в виде перетаскиваемых ящиков. Двойной щелчок по указателю откроет разыменованные данные с визуальными ссылками на родительский элемент.
то, что может быть пройдено, будет в значительной степени ограничено отладочной информацией, которую производит g++. Emacs предоставляет интерфейс для gdb, который позволяет управлять им через панели инструментов / меню и отображать данные в отдельных окнах, а также напрямую вводить команды gdb. CDT Eclipse предоставляет аналогичные инструменты. Я слышал, что Анюта и код::блоков, но не использовали их.
Как кто-то знакомый с Visual Studio, я посмотрел на несколько IDE с открытым исходным кодом, чтобы заменить его, и KDevelop подходит ближе всего к тому, что человек Visual C++ может просто сесть и начать использовать. Когда вы запускаете проект в режиме отладки, он использует gdb, но kdevelop в значительной степени обрабатывает все это, так что вам не нужно знать, что это gdb; вы просто один шаг или назначаете часы переменным.
Это все еще не так хорошо, как Visual Studio Отладчик, к сожалению.
вы не упоминаете, используете ли Вы Windows или UNIX.
в системах UNIX,KDevelop - это хорошо, но я использую KDbg потому что он прост в использовании, а также будет работать с приложениями, не разработанными в KDevelop.
затмение хороша на обеих платформах.
на Windows, есть большой пакет под названием Wascana Desktop Developer что затмение CDT и MinGW все упакованные вверх и предварительно настроенные славно для минимум боли. Это лучшее, что я нашел для разработки кода GNU на Windows.
Я использовал все эти отладчики, и ни один из них не так хорош, как MS Dev Studio. Eclipse / Wascana, вероятно, ближе всего, но у него есть ограничения, такие как вы не можете войти в DLL, и он не так хорошо справляется с изучением переменных.
вы когда-нибудь смотрели на отладчик DS-5?
существует платная версия, которая включает в себя много полезных функций, но вы также можете использовать Community Edition бесплатно (что также весьма полезно, особенно для встроенных систем).
У меня есть положительный опыт работы с этим инструментом при отладке приложений Android на реальном устройстве с помощью eclipse.
The Код:Блоки C++ IDE имеет графическую оболочку, с несколькими функциями, которые вы хотите, но ничего похожего на силу VS.
VisualGDB это еще один плагин Visual Studio для разработки и отладки приложений на linux и встроенных платформах.
вы пробовали gdb-w с cygwin gdb. Предполагается, что у него есть интерфейс windows, который работает довольно хорошо.
единственная проблема, которую я нашел, заключается в том, что на моей нынешней машине он не работал таким образом, пока я не установил ddd. Я подозреваю, что для этого требуется tcltk, который был установлен, когда я установил ddd.
Если вы ищете 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%. Если я получу шанс, я буду оценивать Eclipse в какой-то момент, мой рабочий компьютер, похоже, не имеет достаточно оперативной памяти (только 1 ГБ) для запуска Eclipse достаточно хорошо.
Я также слышал много похвал для TotalView, в том числе 1-й руки во время собеседования. Я получил eval для нашей компании в конце 2008 года, но в итоге мы этого не сделали действуйте так, как gdb был достаточно хорош для наших нужд; и он свободен и вездесущ.
Я искал отладчик, чтобы пройти через запущенную программу. Сказать: "Прикрепить". Программа была построена с eclipse, но из-за, возможно, некоторых многопоточных препятствий, нет исходных файлов, где fond. Что бы ни случилось.
Я получил очень комфортно с NetBeans.
- [отладка] из меню -> прикрепить Deugger...
- как процесс выбрал один для отладки
- проект [новый проект]
теперь окно disappars и вы видите ничего. оторвать от процесса. Читаемый квадрат "стоп" помогает.
- импортировать источник из проекта, например, в папку. ".../MyProject / src
он появляется в вашем проекте, и вы можете установить точки останова.- снова отладчик ttach
- выберите процесс для отладки.
- отладчик должен остановиться, если программа достигает следующей точки останова.
переход в [окно] - > [отладка] - > будет ли ваше окно удобным.
Comments