Seer: una interfaz gráfica de usuario para gdb para Linux. (Ernie Pasveer [email protected])
Se trabaja activamente en este proyecto. El objetivo es una interfaz gráfica de usuario sencilla pero agradable para gdb.
Informe cualquier error o característica deseada a mi correo electrónico o cree una tarea en la página de mi proyecto de GitHub.
Seer se puede instalar desde un administrador de paquetes o desde la fuente.
Nota
Asegúrese de que se cumplan los requisitos antes de la instalación.
linux
C++17
gdb con el intérprete "mi" (verifique ejecutando: gdb --interpreter=mi )
CMake (3.1.0 o más reciente)
QT6
QT5
Disponible a través de los siguientes administradores de paquetes:
pamac install seer
zypper install seergdb
(Recomendado) Seer se puede construir con Qt6 siguiendo las instrucciones a continuación.
https://github.com/epasveer/seer/wiki/Building-Seer---Qt6
Todavía se puede construir con Qt5, por el momento siguiendo las instrucciones a continuación.
https://github.com/epasveer/seer/wiki/Building-Seer---Qt5
Consulte la página Wiki de Seer en github.
Ejemplos de las diversas vistas y diálogos de Seer.
La vista principal de Seer se ve así: 
Fuente/Función/Tipos/Variables/Bibliotecas
Información de variable/registro
Administrador de códigos.
Puntos de interrupción, puntos de vigilancia, puntos de captura, puntos de impresión, comandos gdb manuales y registros.
Información del marco de pila.
Información del hilo.
Admite el modo de depuración inversa de Gdb.
Cuando se invoca el cuadro de diálogo abrir ejecutable, se ve así: 
Todo el texto resultante del ejecutable irá a la consola Seer. La entrada de texto para el ejecutable también se puede realizar a través de la consola. 
Normalmente, Seer solo mostrará el código fuente como pestañas en el Administrador de código. El ensamblaje del programa también se puede mostrar como una pestaña.
Seleccione "Ver->Vista de ensamblaje" y se mostrará una pestaña adicional junto a las pestañas del código fuente que muestra el ensamblaje actual que se está ejecutando. Aquí hay un ejemplo. 
Al igual que las pestañas del código fuente, los puntos de interrupción se pueden establecer en la pestaña de ensamblaje. La instrucción actual está resaltada.
Al hacer doble clic en las entradas de la pestaña "Puntos de interrupción" y la pestaña "Apilar marcos" se mostrará el ensamblaje de esas direcciones.
Hay teclas de acceso rápido "Nexti" y "Stepi", según lo definido por su configuración. Normalmente "Ctrl+F5" y "CTRL+F6". Usar "^F" en la pestaña de ensamblaje mostrará una potente barra de búsqueda.
La función de ensamblaje en Seer es nueva. No dude en sugerir cambios/características.
Al observar el contenido de la memoria sin procesar en el Visualizador de memoria, se ve así:
| Memoria | Desmontaje |
|---|---|
![]() | ![]() |
Al observar el contenido de las matrices en el Visualizador de matrices, se ve así:
| Normal | Ranura | Dispersión |
|---|---|---|
![]() | ![]() | ![]() |
Se pueden utilizar dos matrices como gráfico XY. Por ejemplo, esta simple matriz de "puntos" forma el contorno XY 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 Struct Visualizer, se ve así. Este ejemplo muestra el contenido de "*this" para la clase C++ actual en la que se encuentra Seer. Todos los miembros de la estructura que sean tipos básicos se pueden editar.

También hay un visualizador de estructuras básico que es más liviano, pero no puede seguir punteros y no se puede editar.
Al observar el contenido de la memoria sin procesar que es una imagen, se puede utilizar el Visualizador de imágenes.

Seer está destinado a iniciar fácilmente el programa para depurarlo desde la línea de comando. gdb tiene múltiples métodos para depurar un programa. Entonces, naturalmente, Seer también lo hace.
Vaya a Wiki para ver todas las formas de ejecutar Seer.
https://github.com/epasveer/seer/wiki/Starting-Seer
Envíe un correo electrónico a [email protected] para detectar cualquier error o característica. O cree una tarea en la página de mi proyecto de GitHub.