Лучший графический интерфейс для удаленного 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.