Модульный визуальный интерфейс для GDB на Python.
Это отдельный файл .gdbinit, который, помимо прочего, позволяет настраивать панель мониторинга, отображающую наиболее важную информацию во время выполнения программы. Его основная цель - уменьшить количество команд GDB, выдаваемых для проверки текущего состояния программы, позволяя программисту вместо этого сосредоточиться на потоке управления.
Монтаж
Просто поместите .gdbinit в свой домашний каталог, например:
wget -P ~ git.io/.gdbinit
Функции:
- Один файл инициализации GDB.
- Запишите приборную панель в основную консоль GDB или во внешний файл / TTY.
- Взаимодействие с GDB с помощью собственного Python API.
- Несколько модулей по умолчанию включены для удовлетворения самых основных потребностей: исходный код, сборка, регистры и т. Д.).
- Пользовательские модули можно легко разработать, расширив класс Python.
- Дополнительные файлы конфигурации (как GDB, так и Python) читаются из ~ / .gdbinit.d /.
- Полностью стильный пользовательский интерфейс и динамическая командная строка.
- Дополнительная подсветка синтаксиса с использованием библиотеки Python Pygments.
- Никакая команда GDB не была переопределена, вместо этого все функции доступны как подкоманды основной команды панели управления.
Модули по умолчанию:
Следует за списком встроенных модулей по умолчанию. Обратитесь к справочной системе GDB за полным синтаксисом.
- Assembly показывает дизассемблированный код, окружающий счетчик программ. Инструкции, составляющие текущий оператор, помечаются, если они доступны.
- history перечисляет последние записи истории значений GDB.
- память позволяет просматривать области памяти.
- registers показывает регистры процессора и их значения.
- source показывает исходный код программы, если таковой имеется.
- stack показывает текущую трассировку стека, включая имя функции и расположение файла, если доступно. При желании укажите также аргументы фрейма и локальные переменные.
- потоки перечисляет доступные на данный момент потоки.
- expressions следит за выражениями пользователей.
По умолчанию панель мониторинга отображается в терминале GDB, но команда -output как панели мониторинга, так и модулей может изменить это поведение. Если вывод модуля не указан, используется глобальный вывод.
Отобразить всю дашборд в другом терминале
Может быть полезно переместить приборную панель на другой терминал, чтобы основной терминал можно было использовать исключительно для команд GDB и целевого ввода-вывода.
- запустить GDB в одном терминале;
- откройте другой терминал (например, панель tmux) и получите его TTY с помощью команды tty (например, / dev / ttys001 , имя может быть другим по разным причинам);
- введите команду dashboard -output / dev / ttys001, чтобы перенаправить вывод панели на вновь созданный терминал;
- отлаживать как обычно.
Развивая это еще дальше, можно было бы использовать веб-браузер в качестве вспомогательного терминала с помощью gotty. Конечно, используя метод, описанный выше, можно также отображать вывод отдельных модулей в одном или нескольких экземплярах веб-браузера.
- запустить GDB в одном терминале;
- откройте другой терминал и выполните gotty sh -c 'tty; cat' ;
- откройте веб-браузер, перейдите по адресу http: // localhost: 8080 и обратите внимание на TTY;
- введите команду dashboard -output / dev / ttys001, чтобы перенаправить вывод панели инструментов в веб-браузер;
- отлаживать как обычно.
Конфигурация
Файлы в ~ / .gdbinit.d / выполняются в алфавитном порядке, но предпочтение отдается файлам Python. Если есть подкаталоги, они просматриваются рекурсивно. Идея состоит в том, чтобы отделить определение настраиваемых модулей от самой конфигурации.
По соглашению, основной файл конфигурации должен быть помещен в ~ / .gdbinit.d / (скажем, ~ / .gdbinit.d / init ) и может использоваться для настройки стилей панели управления и конфигурации модулей, а также обычных параметров GDB.
Альтернативой является жесткое изменение кода в предоставленном .gdbinit , для этого просто добавьте новые модули и настройки GDB в # Модули по умолчанию и # Улучшенные значения по умолчанию GDB соответственно.
Конфигурация для каждого проекта
GDB изначально поддерживает автоматическую загрузку файлов .gdbinit , это может пригодиться для настройки другого стиля приборной панели в соответствии с текущим типом проекта (например, разработка C ++, обратное проектирование и т. Д.). Эта функция по умолчанию отключена из соображений безопасности. Чтобы включить автоматическую загрузку везде в файловой системе, добавьте эту строку в основной файл конфигурации:
set auto-load safe-path /
Минимальные требования:
Для правильной работы приборной панели GDB требуется как минимум GDB 7.7, скомпилированный с Python 2.7.
СКАЧАТЬ GDB DASHBOARD