Introducción
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.
Instalación
Seer puede instalarse desde un gestor de paquetes o desde el código fuente.
[!NOTE]
Asegúrate de cumplir los requisitos antes de instalar.
Requisitos
Instalar desde paquete
Disponible a través de los siguientes gestores de paquetes:
Pamac (Manjaro)
$ pamac install seer
zypper (openSUSE Tumbleweed)
$ zypper install seergdb
Flathub
Sitio web de Flathub. Aquí
$ flatpak install flathub io.github.epasveer.seer
Flatpak
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
Snap
Versiones beta de Seer. Página de lanzamientos de Seer en github.
$ snap install seergdb_<version>.snap --dangerous
Instalar desde el código fuente
(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
NOTICIAS
Consulta la página Wiki de Seer en github.
- La versión v1.17 será la última versión para Qt5.
- La próxima versión será la v2.0 y estará basada en Qt6. Sin embargo, por el momento, todavía se puede compilar con Qt5.
- Si quieres el código fuente estable más reciente para Qt5, obtén la v1.17 desde aquí: https://github.com/epasveer/seer/releases/tag/v1.17
Iniciar Seer
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
Resumen de la interfaz gráfica
Ejemplos de las diversas vistas y diálogos de Seer.
Vista principal
La vista principal de Seer se ve así:

-
Código fuente/Funciones/Tipos/Variables/Bibliotecas
- La lista de archivos de código fuente/cabecera que se usaron en el programa.
- Buscar Funciones, Tipos y Variables estáticas.
Al hacer doble clic se abrirá el archivo de código fuente.
- La lista de bibliotecas compartidas referenciadas por el programa.
- La lista de archivos de código fuente/cabecera se puede buscar. Esto "reducirá" la lista de archivos mostrados.
- Al hacer doble clic en un archivo se abrirá en el Administrador de código.
-
Información de Variables/Registros
- Mostrar valores de variables y registros.
- "Logger" - registrar el valor de una variable. Introdúcela manualmente o haz doble clic en la variable en el archivo
que está abierto en el administrador de código.
- "Tracker" - crear una lista de variables para mostrar el valor cada vez que gdb alcance un punto de detención
(step, next, finish, etc.). Cuando se alcance el punto de detención, todas las variables de la lista mostrarán
su posible nuevo valor.
- "Registers" - mostrar los valores de todos los registros de la cpu.
-
Administrador de código.
- La gran área de la parte central de la interfaz gráfica de Seer.
- Los archivos de código fuente se abren en esta vista.
- Se puede buscar texto en un archivo con ^F.
- Se pueden añadir variables al "Logger" haciendo doble clic en el nombre de la variable.
Al hacer doble clic con la tecla CTRL presionada se antepondrá "" a la variable.
Al hacer doble clic con la tecla SHIFT presionada se antepondrá "&" a la variable.
Al hacer doble clic con las teclas CTRL+SHIFT presionadas se antepondrá "&" a la variable.
- Se pueden añadir variables al "Tracker" seleccionando el nombre de la variable y con el botón derecho del ratón (RMB) seleccionar
"Add variable to Tracker".
- Se pueden añadir variables al "Memory Visualizer" seleccionando el nombre de la variable y con el botón derecho del ratón (RMB) seleccionar
"Add variable to Memory Visualizer".
- Se puede crear un breakpoint/printpoint con el botón derecho del ratón (RMB) en una línea específica.
- Se puede ejecutar hasta una línea específica con el botón derecho del ratón (RMB) en una línea específica.
- Las pestañas de esta vista se pueden desacoplar haciendo doble clic en una pestaña.
-
Breakpoints, Watchpoints, Catchpoints, Printpoints, comandos manuales de gdb y registros.
- El área debajo del Administrador de código.
- Comandos manuales. Introduce manualmente un comando de gdb o gdbmi.
Los comandos se recuerdan para el próximo uso de Seer.
- Administrador de breakpoints. Crear y gestionar breakpoints.
- Administrador de watchpoints. Crear y gestionar watchpoints.
Un watchpoint supervisa cuándo se accede a una variable (lectura, escritura, lectura/escritura).
- Administrador de catchpoints. Crear y gestionar catchpoints.
Un catchpoint detiene la ejecución en una llamada C++ throw/rethrow/catch.
- Administrador de printpoints. Crear y gestionar printpoints.
Un printpoint es como un breakpoint pero te permite imprimir variables en
ese printpoint. Consulta la llamada 'dprintf' de gdb.
- Salida de GDB. Un registro de cualquier salida del propio programa gdb.
- Salida de Seer. Un registro de cualquier salida del propio programa Seer. Como diagnóstico.
- Las pestañas de esta vista se pueden desacoplar haciendo doble clic en una pestaña.
-
Información del marco de pila (stack frame).
- Lista de marcos de pila. Se puede hacer doble clic en un marco para cambiar el ámbito (la función actual).
- Argumentos del marco de pila. Para cada marco, imprime los argumentos pasados a cada función.
- Variables locales de la pila. Para la función actual, imprime los valores de las variables locales.
-
Información de hilos.
- Identificadores de hilos. Una lista de todos los hilos. Haz doble clic en un identificador de hilo para cambiar el ámbito (el hilo actual).
- Marcos de hilos. Para cada hilo, lista sus marcos de pila.
-
Soporta el modo de Depuración Inversa de Gdb.
- Activar o desactivar la grabación de instrucciones.
- Establecer la dirección de reproducción hacia adelante o hacia atrás.
Diálogo de apertura