Лучший графический интерфейс для удаленного GDB

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

У меня был некоторый успех с eclipse-cdt но это только кажется, что иногда работает. предположительно Insight ранее использовался для отладки (это встроенный x86 доска) но похоже мертвая.

Мне нужна только отладка C, а не C++. Если возможно, я бы предпочел подключиться через gdbserver (как это по совету, и я подключаюсь к нему через командную строку все время), но если вы думаете, положить gdb или же ssh на устройстве и использовать его через тех, лучше упомянуть эти решения также.

PS версия gdbserver на устройстве 7.1 было бы неплохо, если бы решение могло работать с совместимой версией gdb но я мог бы установить другой gdbserver версия.

6 ответов

Решение

Я бы порекомендовал eclipse Indigo, в котором есть встроенная поддержка удаленной отладки приложений через gdbserver. Я просто не знаю, где должен находиться исходный код, чтобы он работал.

Sinec использует интерфейс MI GDB, он должен работать как любой другой интерфейс, взаимодействующий с GDB.

Я рекомендую попробовать Qt Creator. Он кроссплатформенный, обладает довольно хорошими функциями "понимания кода" и чертовски легче, чем Eclipse. Это полная среда разработки, а не просто интерфейс отладчика. Для него требуется GDB, созданный с поддержкой Python (я думаю, только для клиента), но он поставляется вместе с кроссплатформенным установщиком. Он определенно больше ориентирован на разработку приложений на C++/Qt, но поддерживает общие проекты Makefile и CMake, и я использую его в качестве своей повседневной C IDE и отладчика.

В зависимости от того, какую именно удаленную цель вы отлаживаете, ответ на этот вопрос может сильно различаться. Если вы выполняете кросс-отладку для глубоко встроенной цели микроконтроллера, работающей с ОСРВ, ваши возможности будут более ограниченными.

Для проектов на основе Makefile вы хотите использовать мастер создания "Универсальный проект", который по умолчанию добавляет все исходные файлы из указанного каталога в ваш проект. Для поддержки вашего проекта может потребоваться некоторая ручная работа, если вы хотите, чтобы Qt Creator "понимал" вещи, которые вы указали в вашем Makefile, например, каталоги include-команд командной строки (перейдите в файл.include), заголовки включенных командной строки (перейдите в файл.config) и определения символов командной строки (перейдите в файл.config). Хотя список файлов проекта и команды компиляции, развертывания и запуска могут поддерживаться из графического интерфейса.

How about using DDD? I haven't used it much to be honest, and there seems to be a way to do remote debugging using DDD http://www.gnu.org/s/ddd/manual/html_mono/ddd.html

Сам Gdb уже имеет встроенные псевдогуи, основанные на curses. По умолчанию он разделяет основной экран на 2 окна. Верхнее окно содержит исходный код, нижнее окно - интерфейс командной строки. Также есть другие режимы, позволяющие показать вам значения регистра и сборки. Он хорошо работает с ssh, поэтому, если вы можете, скопируйте gdb на ваше устройство и отладьте его через ssh. Если нет, все вышеперечисленное можно применять для отладки через gdbserver.

Вы можете использовать NetBeans. NETBeans поддерживает удаленную отладку с помощью gdb. Плагин поддержки Gdbserver также существует. Я не тестирую плагин, но удаленная отладка с использованием ssh работает хорошо.

Попробуйте Affinic Debugger GUI. У этого есть более новый дизайн.
DDD слишком стар, Affinic Debugger поддерживает все основные платформы и является более мощным, чем DDD.

Другие вопросы по тегам