
☕ GDBFrontend — это простой, гибкий и расширяемый графический отладчик.

GDBFrontend — это простой, гибкий и расширяемый GUI-отладчик.

Вы можете установить GDBFrontend с помощью pip.
sudo python3 -m pip install gdbfrontend
если он уже установлен и вы обновляетесь
sudo python3 -m pip install --upgrade gdbfrontend
или если вы хотите установить конкретный снимок GIT:
sudo python3 setup.py install
и вы можете запустить
gdbfrontend
Вы можете скачать последний исходный код и запустить его.
Вы можете запустить gdb-frontend с помощью следующих команд:
git clone https://github.com/rohanrhu/gdb-frontend.git gdb-frontend
cd gdb-frontend
./gdbfrontend
и вы можете открыть его по адресу:
http://127.0.0.1:5550/
Вы можете открыть оболочку GDB с помощью команды:
tmux a -t gdb-frontend
Вы можете установить пакет Arch Linux для дистрибутивов на основе Arch. (Пакет AUR)
yay -S gdb-frontend-bin
и запустить его:
gdbfrontend
Flatpak-пакет — это TODO.
Следуйте этому руководству, чтобы узнать, как отлаживать контейнеризированные C/C++ приложения с помощью GDBFrontend.
Следуйте этому краткому руководству, чтобы отлаживать встроенные устройства с помощью GDBFrontend.
Следуйте этому краткому руководству, чтобы отлаживать нативные C-расширения Python с помощью GDBFrontend.
GDBFrontend имеет мощные и расширяемые API. Следуйте этому краткому руководству, чтобы научиться разрабатывать плагины для GDBFrontend.
Следуйте этому краткому руководству для идей интеграции для особых требований разработки/отладки.
Следуйте этому руководству, чтобы отлаживать STM32 с помощью OpenOCD и GDBFrontend.
GDBFrontend имеет вычислитель выражений, который можно использовать одновременно в нескольких экземплярах.



Щелкните правой кнопкой мыши по точке останова, чтобы установить условие.


Выражения всех переменных, членов и элементов соединены в VariablesExplorer GDBFrontend.

Вы можете просматривать, фильтровать или управлять процессами с помощью Process Manager.


GDBFrontend имеет набор функций для совместной работы, называемый «Расширенное сотрудничество».

Рисование при сотрудничестве доступно, когда включено Расширенное сотрудничество. Нажмите «Рисовать» или используйте сочетание Ctrl + Shift + X, чтобы рисовать, и Ctrl + Shift + C, чтобы очистить все рисунки.

При расширенном сотрудничестве все клиенты отладчика синхронизированы при просмотре исходного кода.

GDBFrontend очень расширяем и имеет мощные API. Некоторые примеры расширяемости GDBFrontend.


./gdbfrontend$ gdbfrontend --help
GDBFrontend is a easy, flexible and extensionable gui debugger.
Options:
--help, -h: Shows this help message.
--version, -v: Shows version.
--gdb-args="ARGS", -G "ARGS": Specifies GDB command line arguments. (Optional)
--gdb-executable=PATH, -g PATH: Specifies GDB executable path (Default is "gdb" command on PATH environment variable.)
--tmux-executable=PATH, -tmux PATH: Specifies Tmux executable path (Default is "tmux" command on PATH environment variable.)
--terminal-id=NAME, -t NAME: Specifies tmux terminal identifier name (Default is "gdb-frontend".)
--credentials=USER:PASS, -c USER:PASS: Specifies username and password for accessing to debugger.
--host=IP, -H IP: Specifies current host address that you can access via for HTTP and WS servers.
--listen=IP, -l IP: Specifies listen address for HTTP and WS servers.
--port=PORT, -p PORT: Specifies HTTP port. (0 for random port.)
--url-base=PATH, -u PATH: Specifies URL base path. (Default: /)
--readonly, -r: Makes code editor readonly. (Notice: This option is not related to security.)
--workdir, -w: Specifies working directory.
--plugin-dir, -P: Specifies plugins directory.
--dontopenuionstartup, -D: Avoids opening UI just after startup.
--verbose, -V: Enables verbose output.
--help, -hПоказывает справочный текст.
--version, -vПоказывает версию.
--gdb-args="ARGS", -G "ARGS"Указывает аргументы командной строки GDB. (Необязательно)
--gdb-executable=PATH, -g PATHВы можете указать путь к исполняемому файлу GDB, например gdbfrontend --gdb-executable=/path/to/gdb. (Необязательно)
--tmux-executable=PATH, -tmux PATHВы можете указать путь к исполняемому файлу Tmux, например gdbfrontend --tmux-executable=/path/to/tmux. (Необязательно)
--terminal-id=PATH, -t PATHВы можете указать идентификатор терминала Tmux, например gdbfrontend --terminal-id=terminal-name. (По умолчанию: gdb-frontend)
--credentials=USER:PASS, -c USER:PASSУказывает имя пользователя и пароль для доступа к отладчику.
--host=IP, -H IPУказывает текущий адрес хоста, доступный для HTTP и WS серверов.
--listen=IP, -l IPУказывает адрес прослушивания для HTTP и WS серверов.
--port=PORT, -p PORTУказывает HTTP порт. (0 для случайного порта.)
--url-base=PATH, -u PATHУказывает базовый путь URL. (По умолчанию: /)
--readonly, -rДелает редактор кода только для чтения. (Примечание: Эта опция не связана с безопасностью.)
--workdir, -wУказывает рабочую директорию.
--plugin-dir, -PУказывает директорию плагинов.
--dontopenuionstartup, -DИзбегает открытия интерфейса сразу после запуска.
--verbose, -VВключает подробный вывод.
Команды GDB GDBFrontend начинаются с gf-.
gf-refreshОбновляет всех клиентов браузера.
gf-theme [имя-темы]Переключает на нужную тему. Например: gf-theme light, gf-theme red или gf-theme default для темы по умолчанию.
gf-list-pluginsСписок всех плагинов GDBFrontend в директории плагинов.
gf-load-plugin [имя-плагина]Загружает плагин GDBFrontend.
gf-unload-plugin [имя-плагина]Выгружает плагин GDBFrontend.
Текущие горячие клавиши перечислены ниже.
GDBFrontend имеет встроенные темы.
Для переключения между темами используйте команду gf-theme [ТЕМА] в оболочке GDB.
(gdb) gf-theme doki
(gdb) gf-theme sky
(gdb) gf-theme sakura
(gdb) gf-theme waifu
(gdb) gf-theme cyberpunk
(gdb) gf-theme dark
(gdb) gf-theme green
(gdb) gf-theme light
(gdb) gf-theme red
Для возврата к теме по умолчанию.
(gdb) gf-theme
Также вы можете обратиться к Руководству по разработке плагинов.
Вы можете получить доступ к Python API GDBFrontend через модуль gdbfrontend.
(gdb) python-interactive
>>> dir(gdbfrontend)
Например, вы можете получить все клиентские сокеты следующим образом:
>>> gdbfrontend.api.globalvars.httpServer.ws_clients
{1: <server.GDBFrontendSocket object at 0x...>}
или вы можете получить все плагины:
>>> gdbfrontend.plugin.getAll()
['hello', 'theme_cyberpunk', 'theme_dark', 'theme_doki', 'theme_green', 'theme_light', 'theme_red', 'theme_sakura', 'theme_sky', 'theme_waifu']
Вы можете использовать опцию --credentials=USER:PASS для добавления HTTP-аутентификации в вашу сессию отладчика.
GDBFrontend в основном разрабатывается с тестированием на браузерах на основе Chromium. Он будет корректно работать и с другими браузерами, особенно с Firefox, но если вы столкнётесь с проблемами в других браузерах, вы можете отправить отчёт об ошибке.
Большинство функций GDBFrontend являются потокобезопасными и работают в главном потоке GDB. Поэтому, если вы запускаете что-то блокирующее в оболочке GDB, функции GDBFrontend должны ждать его завершения.
Вы получите это предупреждение, когда потокобезопасной функции GDBFrontend потребуется работа, а вы блокируете главный поток GDB.
(gdb) shell
$ ...

Когда вы выйдете из оболочки, блокирующие функции GDBFrontend продолжат работу.
Примечание: Иногда вы можете получить это предупреждение, не запуская ничего в оболочке GDB; это означает, что что-то (в цикле событий GDB) занимает много времени; в таком случае просто проигнорируйте это предупреждение.
GDBFrontend отправляет SIGTERM своим подпроцессам, вашему приложению и его подпроцессам. Если ваше приложение порождает новые процессы и устанавливает их PGID, GDBFrontend может их не закрыть. В этом случае вы должны отправить SIGKILL вашим процессам.
pkill -f gdb
Если вы используете Вычислитель выражений с очень длинной глубиной развёрнутых переменных/членов, это может негативно сказаться на производительности прокрутки и перемещения окна вычислителя для визуализации указателей. В такой ситуации вы можете отключить указания signal и slot для этого окна вычислителя.

На самом деле gdb-frontend может работать в Windows, но есть серьёзные проблемы в версии GDB для Windows, которые мешают использованию gdb-frontend в Windows. Конечно, вы можете использовать gdb-frontend в WSL, если у вас Windows 10.
Вы можете использовать gdb-frontend в WSL (подсистема Windows для Linux).
/proc/net/tcp не работает в WSL. (WSL 2 не имеет этой проблемы.)Начиная с v0.2.0-beta, GDBFrontend перешёл на новую стратегию версионирования.
В vX.Y.Z-STABILITY:
X — основные версии, изменения долгосрочные с крупными функциями и улучшениями.Y — главные версии, которые включают новые функции и улучшения.Z — исправления ошибок главных версий.STABILITY — уровень стабильности релиза (alpha, beta, rcN, stable).Документация — TODO.
Документация API — TODO.
Вы можете прочитать Руководство по разработке плагинов.
Темы разрабатываются как плагины.
Присоединяйтесь к сообществу Discord.
Вы можете внести вклад, создавая коммиты в проект или разрабатывая плагин. Все коммиты приветствуются.
| Валюта | Адрес |
|---|---|
| BTC | bc1qhvlc762kwuzeawedl9a8z0duhs8449nwwc35e2 |
| ETH / USDT / USDC | 0x1D99B2a2D85C34d478dD8519792e82B18f861974 |
| XMR | 88qvS4sfUnLZ7nehFrz3PG1pWovvEgprcUhkmVLaiL8PVAFgfHjspjKPLhWLj3DUcm92rwNQENbJ1ZbvESdukWvh3epBUty |
Предпочтительно рекомендую пожертвовать USDT или USDC, но вы можете пожертвовать любую из вышеуказанных валют. 🥳
Copyright (C) 2019, Oğuzhan Eroğlu [email protected] (https://oguzhaneroglu.com/)
GNU General Public License v3 (GPL-3)
Вы можете копировать, распространять и модифицировать программное обеспечение при условии отслеживания изменений/дат в исходных файлах. Любые модификации программного обеспечения или программное обеспечение, включающее (через компилятор) код под лицензией GPL, также должны быть доступны под лицензией GPL вместе с инструкциями по сборке и установке.
| Действие | Горячая клавиша | Контекст |
|---|
| Общие: Открыть файл исходного кода | Ctrl + O | GDBFrontend |
| Общие: Новый вычислитель выражений | Ctrl + R | GDBFrontend |
| Общие: Новый вычислитель выражений в отдельном окне | Ctrl + Shift + R | GDBFrontend |
| Общие: Поиск исходного файла (fuzzy) | Ctrl + P | GDBFrontend |
| Выполнение: Запуск | F5 | GDBFrontend |
| Выполнение: Продолжить | F6 | GDBFrontend |
| Выполнение: Пауза/Прерывание | F7 | GDBFrontend |
| Выполнение: Шаг с обходом | F8 | GDBFrontend |
| Выполнение: Шаг с заходом | F9 | GDBFrontend |
| Выполнение: Шаг по инструкции | F10 | GDBFrontend |
| Выполнение: Остановка | F11 | GDBFrontend |
| Расширенное сотрудничество: Включить режим рисования | Ctrl + Shift + X | GDBFrontend / Расширенное сотрудничество: Вкл. |
| Расширенное сотрудничество: Очистить все рисунки | Ctrl + Shift + C | GDBFrontend / Расширенное сотрудничество: Вкл. |