GDB Dashboard - модульный визуальный интерфейс для GDB на Python

  • Автор темы Banann
  • Дата начала
  • Участники 1

Banann

Newbie
11.06.2020
3
0
1
GDB Dashboard - модульный визуальный интерфейс для GDB на Python

Модульный визуальный интерфейс для 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 и целевого ввода-вывода.
  1. запустить GDB в одном терминале;
  2. откройте другой терминал (например, панель tmux) и получите его TTY с помощью команды tty (например, / dev / ttys001 , имя может быть другим по разным причинам);
  3. введите команду dashboard -output / dev / ttys001, чтобы перенаправить вывод панели на вновь созданный терминал;
  4. отлаживать как обычно.
Отображение всей панели управления в веб-браузере

Развивая это еще дальше, можно было бы использовать веб-браузер в качестве вспомогательного терминала с помощью gotty. Конечно, используя метод, описанный выше, можно также отображать вывод отдельных модулей в одном или нескольких экземплярах веб-браузера.
  1. запустить GDB в одном терминале;
  2. откройте другой терминал и выполните gotty sh -c 'tty; cat' ;
  3. откройте веб-браузер, перейдите по адресу http: // localhost: 8080 и обратите внимание на TTY;
  4. введите команду dashboard -output / dev / ttys001, чтобы перенаправить вывод панели инструментов в веб-браузер;
  5. отлаживать как обычно.


    Конфигурация
    Файлы в ~ / .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
 

Об LS-LA

  • Мы, группа единомышленников, основная цель которых повышать уровень знаний и умений.
    Не забывая о материальном благополучии каждого)

About LS-LA

  • We, a group of like-minded people, whose main goal is to increase the level of knowledge and skills.
    Not forgetting about everyone’s material well-being)

Быстрая навигация

Пользовательское меню