
Seer - una interfaz gráfica para gdb
Seer: una interfaz gráfica para gdb en Linux. (Ernie Pasveer [email protected])
Este proyecto se trabaja activamente. El objetivo es una interfaz gráfica simple pero agradable para gdb.
Por favor, reporta cualquier error o funcionalidad deseada a mi correo electrónico o crea una tarea en la página de mi proyecto en GitHub.
Seer puede instalarse desde un gestor de paquetes o desde el código fuente.
[!NOTE] Asegúrate de cumplir los requisitos antes de instalar.
Linux
C++17
gdb con el intérprete "mi" (compruébalo ejecutando: gdb --interpreter=mi)
CMake (3.5.0 o más reciente)
QT6
QT5
Disponible a través de los siguientes gestores de paquetes:
$ pamac install seer
$ zypper install seergdb
Sitio web de Flathub. Aquí
$ flatpak install flathub io.github.epasveer.seer
Versiones beta de Seer. Página de lanzamientos de Seer en github.
Importante: flatpak-spawn --host, necesario en GDB Launcher para ejecutar gdb. Consulta https://github.com/epasveer/seer/issues/377#issuecomment-3620844808.
Descarga seer.flatpak. Instálalo:
$ flatpak install -y --bundle --user seer.flatpak
Versiones beta de Seer. Página de lanzamientos de Seer en github.
$ snap install seergdb_<version>.snap --dangerous
(Recomendado) Seer puede compilarse con Qt6 siguiendo las instrucciones a continuación.
https://github.com/epasveer/seer/wiki/Building-Seer---Qt6
Todavía puede compilarse con Qt5, por el momento, siguiendo las instrucciones a continuación.
https://github.com/epasveer/seer/wiki/Building-Seer---Qt5
Consulta la página Wiki de Seer en github.
Seer está pensado para iniciar fácilmente el programa a depurar desde la línea de comandos. gdb tiene múltiples métodos para depurar un programa. Así que Seer naturalmente también los tiene.
Ve a la Wiki para ver todas las formas de ejecutar Seer.
https://github.com/epasveer/seer/wiki/Starting-Seer
Ejemplos de las diversas vistas y diálogos de Seer.
La vista principal de Seer se ve así:

Código fuente/Funciones/Tipos/Variables/Bibliotecas
Información de Variables/Registros
Administrador de código.
Breakpoints, Watchpoints, Catchpoints, Printpoints, comandos manuales de gdb y registros.
Cuando se invoca el diálogo de abrir ejecutable, se ve así:

Toda la salida de texto del ejecutable irá a la consola de Seer. La entrada de texto para el ejecutable también se puede introducir a través de la consola.

Normalmente Seer solo muestra el código fuente como pestañas en el Administrador de código. El ensamblador del programa también se puede mostrar como una pestaña.
Selecciona "View->Assembly View" y se mostrará una pestaña adicional junto a las pestañas de código fuente que muestra el ensamblador actual que se está ejecutando. Aquí hay un ejemplo.

Al igual que las pestañas de código fuente, se pueden establecer breakpoints en la pestaña de ensamblador. La instrucción actual está resaltada.
Al hacer doble clic en las entradas de la pestaña "Breakpoints" y de la pestaña "Stack frames" se mostrará el ensamblador para esas direcciones.
Hay atajos de teclado "Nexti" y "Stepi", según lo definido en tu configuración. Normalmente "Ctrl+F5" y "CTRL+F6". Usar "^F" en la pestaña de ensamblador mostrará una potente barra de búsqueda.
La funcionalidad de ensamblador en Seer es nueva. Siéntete libre de sugerir cambios/funcionalidades.
Al observar el contenido de la memoria bruta en el Visualizador de memoria, se ve así:
| Memoria | Desensamblado |
|---|---|
![]() | ![]() |
Al observar el contenido de arrays en el Visualizador de arrays, se ve así:
| Normal | Spline | Dispersión |
|---|---|---|
![]() | ![]() | ![]() |
Se pueden usar dos arrays como un gráfico X-Y. Por ejemplo, este simple array 'points' forma el contorno X-Y de una forma.
int main() {
int points[] = {50,1,20,91,97,35,2,35,79,91,50,1};
return 0;
}
| Valores X | Valores Y | Valores XY |
|---|---|---|
![]() | ![]() | ![]() |
Al observar el contenido de una estructura C/C++ o una clase C++ en el Visualizador de estructuras, se ve así. Este ejemplo muestra el contenido de "*this" para la clase C++ actual en la que está Seer. Todos los miembros de la estructura que son tipos básicos se pueden editar.

También hay un Visualizador de estructuras básico que es más ligero, pero no puede seguir punteros y no se puede editar.
Al observar el contenido de memoria bruta que es una imagen, se puede usar el Visualizador de imágenes.

Envía un correo electrónico a [email protected] para cualquier error o funcionalidad. O crea una tarea en la página de mi proyecto en GitHub.
Es un mundo maravilloso.
Información del marco de pila (stack frame).
Información de hilos.
Soporta el modo de Depuración Inversa de Gdb.