
Seer - a gui frontend to gdb
Seer - графический интерфейс для gdb в Linux. (Ernie Pasveer [email protected])
Этот проект активно разрабатывается. Цель — простой, но приятный графический интерфейс для gdb.
Пожалуйста, сообщайте об ошибках или желаемых функциях на мою электронную почту или создайте задачу на странице моего проекта GitHub.
Seer можно установить как через менеджер пакетов, так и из исходного кода.
[!NOTE] Убедитесь, что требования выполнены перед установкой.
Linux
C++17
gdb с интерпретатором «mi» (проверьте, выполнив: gdb --interpreter=mi)
CMake (3.5.0 или новее)
QT6
QT5
Доступно через следующие менеджеры пакетов:
$ pamac install seer
$ zypper install seergdb
Веб-сайт Flathub. Здесь
$ flatpak install flathub io.github.epasveer.seer
Бета-версии Seer. Страница релизов Seer на github.
Важно: flatpak-spawn --host необходим в GDB Launcher для запуска gdb. См. https://github.com/epasveer/seer/issues/377#issuecomment-3620844808.
Загрузите seer.flatpak. Установите его:
$ flatpak install -y --bundle --user seer.flatpak
(Рекомендуется) Seer можно собрать с Qt6, следуя инструкциям ниже.
https://github.com/epasveer/seer/wiki/Building-Seer---Qt6
Его всё ещё можно собрать с Qt5, пока что, следуя инструкциям ниже.
https://github.com/epasveer/seer/wiki/Building-Seer---Qt5
Посмотрите страницу Wiki Seer на github.
Seer предназначен для простого запуска отлаживаемой программы из командной строки. У gdb есть несколько методов отладки программы. Соответственно, Seer тоже их поддерживает.
Перейдите в Wiki, чтобы увидеть все способы запуска Seer.
https://github.com/epasveer/seer/wiki/Starting-Seer
Примеры различных представлений и диалогов Seer.
Основное представление Seer выглядит так:

Исходники/Функции/Типы/Переменные/Библиотеки
Информация о переменных/регистрах
Менеджер кода.
Точки останова, точки наблюдения, точки перехвата, точки печати, ручные команды gdb и журналы.
При вызове диалога открытия исполняемого файла он выглядит так:

Весь текстовый вывод исполняемого файла будет направлен в консоль Seer. Текстовый ввод для исполняемого файла также можно осуществить через консоль.

Обычно Seer показывает исходный код в виде вкладок в Менеджере кода. Ассемблер программы также можно отобразить в виде вкладки.
Выберите «Вид->Представление ассемблера», и рядом с вкладками исходного кода появится дополнительная вкладка, показывающая текущий выполняемый ассемблер. Вот пример.

Как и на вкладках исходного кода, на вкладке ассемблера можно устанавливать точки останова. Текущая инструкция выделена.
Двойной щелчок по записям на вкладке «Точки останова» и на вкладке «Стековые фреймы» покажет ассемблер для этих адресов.
Существуют горячие клавиши «Nexti» и «Stepi», как определено в настройках конфигурации. Обычно «Ctrl+F5» и «CTRL+F6». Использование «^F» на вкладке ассемблера покажет мощную строку поиска.
Функция ассемблера в Seer новая. Не стесняйтесь предлагать изменения/функции.
При просмотре содержимого сырой памяти в Визуализаторе памяти это выглядит так :
| Память | Дизассемблер |
|---|---|
![]() | ![]() |
При просмотре содержимого массивов в Визуализаторе массивов это выглядит так :
| Обычный | Сплайн | Разброс |
|---|---|---|
![]() | ![]() | ![]() |
Два массива можно использовать как график X-Y. Например, этот простой массив 'points' образует контур фигуры X-Y.
int main() {
int points[] = {50,1,20,91,97,35,2,35,79,91,50,1};
return 0;
}
| Значения X | Значения Y | Значения XY |
|---|---|---|
![]() | ![]() | ![]() |
При просмотре содержимого структуры C/C++ или класса C++ в Визуализаторе структур это выглядит так. В этом примере показано содержимое «*this» для текущего класса C++, в котором находится Seer. Все члены структуры, являющиеся базовыми типами, можно редактировать.

Существует также Базовый визуализатор структур, который является более легковесным, но не может следовать по указателям и не может редактироваться.
При просмотре содержимого сырой памяти, являющейся изображением, можно использовать Визуализатор изображений.

Отправьте электронное письмо на [email protected] по любым ошибкам или функциям. Или создайте задачу на странице моего проекта GitHub.
Это прекрасный мир.
Информация о стековых фреймах.
Информация о потоках.
Поддерживает режим обратной отладки Gdb.