Вкратце: знает ли кто-нибудь о графическом интерфейсе для gdb, который делает его равным или близким к набору функций, который вы получаете в более поздней версии Visual C++?
Подробно: как человек, который потратил много времени на программирование в Windows, одним из самых больших препятствий, которые я обнаруживал всякий раз, когда мне приходится кодировать C++ в Linux, является то, что отладка чего-либо с помощью командной строки gdb занимает у меня в несколько раз больше времени, чем в Visual Studio, и с практикой ситуация не улучшается. Некоторые вещи проще или быстрее выразить графически.
В частности, я ищу графический интерфейс, который:
Если такой программы не существует, я хотел бы услышать об опыте людей с программами, которые соответствуют хотя бы некоторым из перечисленных пунктов. Есть у кого-нибудь рекомендации?
Редактировать:
Перечислить возможности - это здорово, и я возьму то, что могу, но было бы еще полезнее, если бы вы могли включить в свои ответы:
(a) Использовали ли вы этот графический интерфейс или нет, и если да, то какие положительные / отрицательные отзывы о нем у вас есть.
(б) Если вы знаете, какие из вышеупомянутых функций поддерживаются / не поддерживаются
Списки легко найти, такие сайты великолепны, потому что вы можете получить представление о личном опыте людей с приложениями.
По обратному проектированию: reverseengineering.stackexchange.com/questions/1392/…
См. Также аналогичный вопрос: Что является хорошей unix-альтернативой DDD (отладчику отображения данных)?
См. Этот список интерфейсов gdb здесь: sourceware.org/gdb/wiki/GDB%20Front%20Ends, и попробуйте первый в списке. Выглядит очень многообещающе и современно и является кроссплатформенным, поскольку основан на браузере: gdbgui.com.





Вы не найдете перекрывающего GDB что-либо, который мог бы конкурировать с чистой мощностью отладчика Visual Studio. Он слишком мощный и слишком хорошо интегрирован в IDE.
В качестве альтернативы Linux попробуйте DDD, если вам нравится бесплатное программное обеспечение.
gdb, работающий под управлением emacs, очень хорош и не требует чистой мощности. Однако для этого требуются навыки работы с emacs. Для тех, кто уже пользуется emacs, этот ответ неверен. Для пользователей, не использующих emacsers, это, вероятно, справедливо, хотя cgdb делает кое-что, чтобы смягчить боль командной строки gdb.
WinDBG намного превосходит то, что предоставляет Visual Studio. Отладчик Visual Studio построен на той же архитектуре, что и WinDBG. С учетом сказанного, GDB не о чем спрашивать при сравнении с Windbg. Графический отладчик лучше, чем DDD, было бы замечательно. Eclipse CDT - хорошая альтернатива. Я думаю, был KDE UI
О, посмотри. Ответ, который содержит претензию без каких-либо подтверждений. Мне также кажется странным, что был принят ответ не отвечает на вопрос.
для всех, кто приходит сюда в поисках реального ответа, знайте, что ddd - это мусор. Лучший графический интерфейс отладчика для Linux, который я нашел, - это IDA, которая не является бесплатным программным обеспечением.
Ответьте на вопрос как можно лучше или ничего не говорите. Используя оба варианта, Visual Studio стала более функциональной, но DDD достаточно хорош, так что я не скучаю по VS. К сожалению, DDD показывает свой возраст.
Этот пост необходимо обновить / улучшить. Qt Creator великолепен наравне с Visual Studio.
Что это за DDD, о котором вы говорите?
Ваш ответ довольно старый, и я уверен, что даже тогда он был неправильным. Отладчик Visual Studio довольно плох по сравнению, скажем, с eclipse + gdb.
@starbeamrainbowlabs Также известный как Data Display Debugger, старый интерфейс GNU GUI для GDB, который иногда может пригодиться, но выглядит полным дерьмом и имеет некоторые раздражающие проблемы с удобством использования. gnu.org/software/ddd
То, что можно выполнить, будет в значительной степени ограничено отладочной информацией, которую производит g ++. Emacs предоставляет интерфейс для gdb, который позволяет вам управлять им через панели инструментов / меню и отображать данные в отдельных окнах, а также напрямую вводить команды gdb. CDT Eclipse предоставляет аналогичные инструменты. Я слышал об Anjuta и Code :: Blocks, но никогда их не использовал.
Ознакомьтесь с проектом Eclipse CDT. Это плагин для Eclipse, ориентированный на разработку на C / C++ и включающий достаточно многофункциональную перспективу отладки (которая негласно использует GDB). Он доступен на самых разных платформах.
DDD - это интерфейс GNU для gdb: http://www.gnu.org/software/ddd/
KDevelop работает очень хорошо.
Последняя версия Geany поддерживает его (правда, только в Linux)
gdb -tui работает нормально, если вы хотите что-то в стиле GUI, но все же основанное на символах.
Вы также можете перейти в режим TUI (текстовый пользовательский интерфейс), находясь в gdb, используя команду '-'. Чтобы вернуться в командную строку, нажмите Ctrl-X Ctrl-A. В режиме TUI перемещение вверх, вниз, влево и вправо по источнику. Используйте Ctrl-P, Ctrl-N, Ctrl-F и Ctrl-B для навигации по истории командной строки.
Это именно то, что я искал. Мощь командной строки gdb с некоторыми полезными представлениями, которые обновляются по мере того, как я двигаюсь.
.Gdbinit на steriods дает вам действительно впечатляющий графический интерфейс на основе символов с цветом: github.com/cyrus-and/gdb-dashboard
Мне очень нравится gdb-приборная панель, но не могу не упомянуть и вольтрон.
@ Барри, спасибо. Для всех, кому интересно, вот ссылка: github.com/cs01/gdbgui. Он имеет отображение структуры данных, аналогичное DDD, архитектуру клиент / сервер для простой отладки удаленных машин без необходимости перенаправления X, а также возможность исследования сложных переменных и т. д.
Я часто использую DDD, и он станет довольно мощным, если вы научитесь его использовать. Я бы сказал, что не используйте его поверх X через WAN, потому что он, кажется, делает много ненужных обновлений экрана.
Кроме того, если вы не связаны с GDB и не против потратить немного денег, я бы попробовал TotalView. У него немного крутая кривая обучения (он определенно мог бы быть более интуитивным), но это лучший отладчик C++, который я когда-либо использовал на любой платформе, и его можно расширить для самоанализа ваших объектов настраиваемыми способами (что позволяет вам просматривать Список STL как реальный список объектов, а не кучка запутанных внутренних элементов данных и т. д.)
Я вообще не могу заставить DDD работать через удаленный X; просто вылетает с ошибками Xlib на моем тонком клиенте :(
totalview выглядит как жизнеспособная альтернатива. Я не считаю DDD лучше интерфейса gdb curses.
Как кто-то, знакомый с Visual Studio, я рассмотрел несколько IDE с открытым исходным кодом, чтобы заменить его, и KDevelop является наиболее близким IMO к тому, что человек Visual C++ может просто сесть и начать использовать. Когда вы запускаете проект в режиме отладки, он использует gdb, но kdevelop в значительной степени обрабатывает все, так что вам не нужно знать, что это gdb; вы просто выполняете один шаг или назначаете часы переменным.
К сожалению, он все еще не так хорош, как отладчик Visual Studio.
Eclipse CDT предоставит возможности, сравнимые с использованием Visual Studio. Я использую Eclipse CDT ежедневно для написания кода и отладки локальных и удаленных процессов.
Если вы не знакомы с использованием IDE на основе Eclipse, к графическому интерфейсу потребуется немного привыкнуть. Однако, как только вы поймете идеи графического интерфейса, которые уникальны для Eclipse (например, перспектива), использование этого инструмента станет приятным опытом.
Инструменты CDT предоставляют достойный индексатор C / C++, который позволяет быстро находить ссылки на методы в базе кода. Он также предоставляет удобный инструмент расширения макросов и ограниченную поддержку рефакторинга.
Что касается поддержки отладки, CDT может делать все, что указано в вашем списке, за исключением чтения дампа ядра (он может поддерживать это, но я никогда не пробовал использовать эту функцию). Кроме того, мой опыт отладки кода с использованием шаблонов ограничен, поэтому я не уверен, какие возможности предлагает CDT в этом отношении.
Для получения дополнительной информации об отладке с помощью Eclipse CDT вы можете ознакомиться с этими руководствами:
Поддерживается чтение дампов ядра. (Он называется посмертным отладчиком.)
У меня был лучший опыт отладки Eclipse CDT, чем в Visual Studios. Однако я не дал MSVC слишком много шансов.
Я думаю, что QtCreator следует упомянуть вместе с Eclipse, поскольку он сопоставим.
Я пробовал несколько разных интерфейсов для gdb и обнаружил, что DDD лучше из них. И хотя я не могу комментировать другие предложения для Linux, не относящиеся к GDB, я использовал ряд других отладчиков на других платформах.
gdb делает большинство из того, что указано в вашем списке желаний. DDD делает их более привлекательными. Например, упрощается переключение потоков. Установить точки останова так же просто, как и следовало ожидать.
Вы также получаете окно cli на случай, если есть что-то непонятное, что вы хотите сделать.
Единственная особенность DDD, которая выделяется среди других отладчиков, которые я использовал, - это графическое отображение данных. Это позволяет отображать и упорядочивать структуры, объекты и память в виде перетаскиваемых блоков. Двойной щелчок по указателю откроет разыменованные данные с визуальными ссылками на родительский объект.
Работает ли ddd на программах с аргументами? Я не мог заставить его передать аргументы ...
Если я правильно помню, DDD может предоставить вам консольное окно прямо в GDB. В консоли GDB вы можете установить аргументы командной строки с помощью команды "set args xyz abc".
Я использовал KDbg (работает только под KDE).
KDbg нет ограничен KDE.
Это классно. Интересно, где это было все это время.
Вы пробовали использовать gdb -w с cygwin gdb. Предполагается, что интерфейс Windows работает достаточно хорошо.
Единственная проблема, которую я обнаружил, заключается в том, что на моей нынешней машине он не работал таким образом, пока я не установил ddd. Я подозреваю, что для этого требуется tcltk, который был установлен при установке ddd.
Интерфейс emacs, тесно связанный с IDE emacs, похож на интерфейс eclipse gdb. Если вы уже работаете с emacs, вам это понравится:
Вы не упоминаете, используете ли вы Windows или UNIX.
В системах UNIX подходит KDevelop, но я использую KDbg, потому что он прост в использовании и также будет работать с приложениями, разработанными не в KDevelop.
Затмение хорош на обеих платформах.
В Windows есть отличный пакет под названием Разработчик Wascana Desktop, который представляет собой Eclipse CDT и MinGW, все упакованные и предварительно настроенные для минимума боли. Это лучшее, что я нашел для разработки кода GNU в Windows.
Я использовал все эти отладчики, и ни один из них не так хорош, как MS Dev Studio. Eclipse / Wascana, вероятно, самый близкий, но у него есть ограничения, например, вы не можете войти в библиотеки DLL, и он не так хорошо справляется с проверкой переменных.
Мне не нравится идея разработки для Windows, но отладчик VC++ - один из лучших, что я когда-либо видел. Я не нашел интерфейса GUI, который был бы похож на VC.
GDB прекрасен, если вы действительно к нему привыкнете. Используйте его достаточно в гневе, и вы станете очень опытным. Я могу без особых усилий осматривать программу, выполняющую все перечисленные вами действия. Мне потребовался месяц или около того мучений из-за SSH-соединения с удаленным сервером, прежде чем я стал профессионалом. Но я бы никогда не вернулся.
DDD действительно мощный, но довольно глючный. Я обнаружил, что он довольно часто зависал, когда получал сообщения от GDB о том, что он не грок. Это хорошо, потому что у него есть окно интерфейса gdb, поэтому вы можете видеть, что происходит, а также напрямую взаимодействовать с gdb. DDD нельзя использовать в удаленном X-сеансе в моей среде (настоящая проблема, поскольку я сижу за тонким клиентом, когда работаю с Unix-разработчиком) по какой-то причине, поэтому он не для меня.
KDevelop следовал типичному стилю KDE и предоставлял пользователю ВСЕ. Мне также никогда не удавалось отлаживать программы, не относящиеся к KDevelop, в KDevelop.
Gnat Programming Studio (GPS) на самом деле является неплохим интерфейсом для GDB. Он не просто управляет проектами Ada, поэтому стоит попробовать, если вам нужен отладчик.
Вы могли бы использовать Eclipse, но он довольно тяжелый, и многие опытные специалисты по Unix, с которыми я работал (в том числе и я), не очень заботятся о его интерфейсе, который не просто STFU и не мешает вам. Затмение также, кажется, занимает много места и бегает как собака.
Просто хотел подключить свой проект gdbgui (github.com/cs01/gdbgui). Это архитектура клиент / сервер, поэтому она хорошо работает при отладке удаленных машин без X-сеанса. Он также имеет терминал для прямого взаимодействия с GDB и визуальные элементы для отображения структур данных, аналогичные DDD.
Сравнение с плюсами и минусами на основе опыта. Как раз то, что нужно для этого вопроса. ты
Я использую gdb, простой и полезный
Если вы ищете gdb в Visual Studio, проверьте WinGDB.
Последние 15 месяцев я использую Insight (пришел с FC6). Небольшая, написана на Tcl / Tk, но простая и полезная. DDD имеет аналогичное качество / полезность, но несколько сложнее в использовании (различные ошибки и упущения в графическом интерфейсе). Я также попытался интегрировать gdb со своей IDE, SlickEdit. Он работал нормально (я играл с ним около 4 часов), но мне не нравились переключатели контекста графического интерфейса. Мне нравится, чтобы моя IDE оставалась неизменной во время отладки; в Windows я использую SlickEdit для IDE и отладчик Visual Studio для отладки. Итак, из 3: Insight, DDD и SlickEdit, Insight - мой первый выбор, я использую его> 95% времени, gdb командной строки и DDD составляют остальные 5%. Если у меня будет возможность, я опробую Eclipse в какой-то момент, на моем рабочем ПК, похоже, недостаточно оперативной памяти (только 1 ГБ) для нормальной работы Eclipse.
Я также слышал много похвал в пользу TotalView, в том числе из первых рук во время собеседования. Я получил пробную версию для нашей компании в конце 2008 года, но в конце концов мы не продолжили работу, так как gdb был достаточно хорош для наших нужд; и это бесплатно и повсеместно.
Qt Creator кажется хорошим материалом. Коллега показал мне один способ настроить его для отладки:
Это может показаться трудоемким для отладки уже скомпилированного приложения, но оно того стоит. Отладчик показывает потоки, стеки и локальные переменные аналогично Visual Studio и даже использует многие из тех же сочетаний клавиш. Кажется, он хорошо обрабатывает шаблоны, по крайней мере, std :: string и std :: map. Прикрепление к существующим процессам и дампу ядра вроде бы поддерживается, хотя я еще не тестировал это.
Имейте в виду, что я использовал его меньше часа, но пока я впечатлен.
Qt Creator-on-Linux в настоящее время находится на одном уровне с Visual Studio-on-Windows для C++. Я бы даже сказал лучше на стороне отладчика.
Проверьте Отладчик Nemiver C / C++. Его легко установить в Ubuntu (Инструменты разработчика / Отладка).
Обновлять: Новая ссылка.
интерфейс довольно понятен и удобен для чтения, но иногда дает сбой при использовании возможностей интерфейса v0.9.6. Он также принимает параметры отлаженного приложения, чего я до сих пор не могу позволить ddd.
Также доступно на Fedora 30 (по крайней мере). Я случайно на этот вопрос и немивер.
C++ IDE Код: блоки имеет графическую оболочку с некоторыми функциями, которые вам нужны, но ничего подобного мощи VS.
Используйте www.zero-bugs.com/ Нулевой отладчик, требуется поддержка C++ 0x от gcc
www.zero-bugs.com/ сайт не работает
В этом списке отсутствует одна IDE, которая очень эффективна (я без проблем использовал ее во многих проектах C / C++): Netbeans.
Я очень предпочитаю cgdb сейчас, когда я к нему привык, но Netbeans был такой большой отправной точкой для VS.
VisualGDB - еще один плагин Visual Studio для разработки и отладки приложений на Linux и встроенных платформах.
Вы когда-нибудь смотрели на Отладчик DS-5?
Существует платная версия, которая включает в себя множество полезных функций, но вы также можете использовать Community Edition бесплатно (что также весьма полезно, особенно для встроенных систем).
У меня есть положительный опыт использования этого инструмента при отладке приложений Android на реальном устройстве с помощью eclipse.
Я искал отладчик для пошагового выполнения работающей программы. Скажите: прикрепить. Программа была построена с использованием eclipse, но из-за, возможно, некоторых препятствий для многопоточности, отсутствие файлов исходных текстов, которые можно было бы полюбить. Что бы ни.
Мне очень понравилось работать с NetBeans.
Теперь окно закрывается, и вы ничего не видите. оторваться от процесса. Помогает Рид Сквер «Стоп».
Переход в [окно] -> [Отладка] -> Будет ли ваше окно удобным.
+1 за «Такие сайты великолепны, потому что вы можете получить представление о личном опыте людей». В настоящее время слишком много людей просто делают дамп списка, который, ИМХО, полностью упускает из виду.