Существует ли C++ gdb GUI для Linux? [закрытый]

NullPointerException s - исключения, возникающие при попытке использовать ссылку, которая указывает на отсутствие местоположения в памяти (null), как если бы она ссылалась на объект. Вызов метода по нулевой ссылке или попытка получить доступ к полю нулевой ссылки вызовет функцию NullPointerException. Они наиболее распространены, но другие способы перечислены на странице NullPointerException javadoc.

Вероятно, самый быстрый пример кода, который я мог бы придумать для иллюстрации NullPointerException, be:

public class Example {

    public static void main(String[] args) {
        Object obj = null;
        obj.hashCode();
    }

}

В первой строке внутри main я явно устанавливаю ссылку Object obj равной null. Это означает, что у меня есть ссылка, но она не указывает на какой-либо объект. После этого я пытаюсь обработать ссылку так, как если бы она указывала на объект, вызывая метод на нем. Это приводит к NullPointerException, потому что нет кода для выполнения в местоположении, на которое указывает ссылка.

(Это техничность, но я думаю, что она упоминает: ссылка, которая указывает на null, равна 't то же, что и указатель C, указывающий на недопустимую ячейку памяти. Нулевой указатель буквально не указывает на в любом месте , который отличается от указаний на местоположение, которое оказывается недопустимым.)

208
задан Ciro Santilli 新疆改造中心法轮功六四事件 9 June 2015 в 19:31
поделиться

20 ответов

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

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

55
ответ дан Aaron McDaid 23 November 2019 в 04:41
поделиться

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

0
ответ дан Milan Babuškov 23 November 2019 в 04:41
поделиться

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

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

1
ответ дан BubbaT 23 November 2019 в 04:41
поделиться

KDevelop работает вполне прилично.

1
ответ дан Harold Ekstrom 23 November 2019 в 04:41
поделиться

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

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

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

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

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

3
ответ дан Adam Pierce 23 November 2019 в 04:41
поделиться

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

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

3
ответ дан 23 November 2019 в 04:41
поделиться

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

3
ответ дан Allen 23 November 2019 в 04:41
поделиться

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

6
ответ дан codeguru 23 November 2019 в 04:41
поделиться

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

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

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

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

5
ответ дан Andrew Edgecombe 23 November 2019 в 04:41
поделиться

DDD является GNU frontend для gdb: http://www.gnu.org/software/ddd/

6
ответ дан mmattax 23 November 2019 в 04:41
поделиться

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

GDB Emacs Frontend

7
ответ дан Community 23 November 2019 в 04:41
поделиться

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

8
ответ дан user14636 23 November 2019 в 04:41
поделиться

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

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

16
ответ дан Nick Bastin 23 November 2019 в 04:41
поделиться

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

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

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

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

Комар программируя Studio (GPS) является на самом деле вполне хорошим фронтендом к GDB. Это только управляет проектами Ada, таким образом, это стоит испытать, если Вы нуждаетесь в отладчике.

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

29
ответ дан Adam Hawes 23 November 2019 в 04:41
поделиться

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

78
ответ дан 23 November 2019 в 04:41
поделиться

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

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

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

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

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

по Отладке MI CDT
84
ответ дан Jon Ball 23 November 2019 в 04:41
поделиться

I use cgdb, simple and usefull

26
ответ дан 23 November 2019 в 04:41
поделиться

В последние 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, включая 1-й. рука во время собеседования. Я получил пробную версию для нашей компании в конце 2008 года, но в итоге мы не продолжили работу, поскольку gdb был достаточно хорош для наших нужд; и это бесплатно и повсеместно.

Я опробую Eclipse в какой-то момент, на моем рабочем ПК, похоже, недостаточно оперативной памяти (только 1 ГБ) для достаточно хорошей работы Eclipse.

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

Я опробую Eclipse в какой-то момент, на моем рабочем ПК, похоже, недостаточно оперативной памяти (только 1 ГБ) для достаточно хорошей работы Eclipse.

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

0
ответ дан 23 November 2019 в 04:41
поделиться

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

0
ответ дан 23 November 2019 в 04:41
поделиться

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

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

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

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

28
ответ дан 23 November 2019 в 04:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: