GDBFrontend — это простой, гибкий и расширяемый отладчик графического интерфейса. Попробуйте онлайн!
Вы можете установить 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.
Следуйте этому руководству, чтобы узнать, как отлаживать приложения Dockerized 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 [theme-name]
Переключитесь на нужную тему. Например: gf-theme light
, gf-theme red
или gf-theme default
для темы по умолчанию.
gf-list-plugins
Перечисляет все плагины GDBFrontend в каталоге плагинов.
gf-load-plugin [plugin-name]
Загружает плагин GDBFrontend.
gf-unload-plugin [plugin-name]
Выгружает плагин GDBFrontend.
Текущие горячие клавиши перечислены ниже.
Действие | Горячая клавиша | Контекст |
---|---|---|
Общее: открыть исходный файл | Ctrl + О | GDBФронтенд |
Общее: новый ExpressionEvaluator | Ctrl + Р | GDBФронтенд |
Общее: новый ExpressionEvaluator в собственном окне. | Ctrl + Shift + Р | GDBФронтенд |
Общее: поиск нечетких источников | Ctrl + П | GDBФронтенд |
Время выполнения: Запустить | F5 | GDBФронтенд |
Время выполнения: Продолжить | F6 | GDBФронтенд |
Время выполнения: Пауза/Прерывание | F7 | GDBФронтенд |
Время выполнения: перешагнуть | F8 | GDBФронтенд |
Время выполнения: шаг в | F9 | GDBФронтенд |
Время выполнения: пошаговая инструкция | F10 | GDBФронтенд |
Время выполнения: стоп | F11 | GDBФронтенд |
Расширенные возможности совместной работы: переключение режима рисования | Ctrl + Shift + X | GDBFrontend/Расширенное сотрудничество: включено |
Расширенные возможности совместной работы: очистка всех рисунков | Ctrl + Shift + С | GDBFrontend/Расширенное сотрудничество: включено |
GDBFrontend имеет встроенные темы.
Для переключения между темами используйте команду gf-theme [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
Также вы можете посмотреть Учебное пособие по разработке плагинов.
Вы можете получить доступ к API Python GDBFrontend через модуль gdbfrontend
.
(gdb) python-interactive
> >> dir ( gdbfrontend )
Например, вы можете получить все клиентские сокеты следующим образом:
> >> gdbfrontend . api . globalvars . httpServer . ws_clients
{ 1 : < server . GDBFrontendSocket object at 0 x ... > }
или вы можете получить все плагины:
> >> 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
Если вы используете ExpressionEvaluator с расширенными переменными/членами очень большой глубины, производительность перемещения окна прокрутки и оценщика может плохо повлиять на визуализацию указателя. В этой ситуации вы можете отключить указатели сигналов и слотов для этого окна оценщика.
Фактически, gdb-frontend может работать в Windows, но в версии GDB для Windows есть некоторые серьезные проблемы, из-за которых использование gdb-frontend в Windows не допускается. Конечно, вы можете использовать gdb-frontend в WSL, если используете Windows 10.
Вы можете использовать интерфейс gdb в WSL (подсистема Windows для Linux).
/proc/net/tcp
не работает в WSL. (WSL 2 не имеет этой проблемы.) Начиная с бета-версии v0.2.0, GDBFrontend перешел на новую стратегию управления версиями.
В vX.YZ-STABILITY
:
X
— это основные версии, в которые в долгосрочной перспективе вносятся основные функции и улучшения.Y
— основные версии, включающие новые функции и улучшения.Z
— выпуски с исправлениями ошибок основных версий.STABILITY
— уровень стабильности релиза. ( alpha
, beta
, rcN
, stable
) Документация пока TODO.
Документация API пока TODO.
Вы можете прочитать Учебное пособие по разработке плагинов.
Темы разрабатываются как плагины.
Присоединяйтесь к сообществу Discord.
Вы можете внести свой вклад, приняв участие в проекте или разработав плагин. Все коммиты приветствуются.
Валюта | Адрес |
---|---|
БТД | bc1qhvlc762kwuzeawedl9a8z0duhs8449nwwc35e2 |
ETH/USDT/USDC | 0x1D99B2a2D85C34d478dD8519792e82B18f861974 |
XMR | 88qvS4sfUnLZ7nehFrz3PG1pWovvEgprcUhkmVLaiL8PVAFgfHjspjKPLhWLj3DUcm92rwNQENbJ1ZbvESdukWvh3epBUty |
Предпочтительно пожертвовать USDT или USDC, но вы можете пожертвовать любую из вышеперечисленных валют. ?
Авторское право (C) 2019, Огужан Эроглу [email protected] (https://oguzhaneroglu.com/)
Стандартная общественная лицензия GNU v3 (GPL-3)
Вы можете копировать, распространять и модифицировать программное обеспечение при условии, что вы отслеживаете изменения/даты в исходных файлах. Любые модификации программного обеспечения, включая (через компилятор) код под лицензией GPL, также должны быть доступны под лицензией GPL вместе с инструкциями по сборке и установке.