Introducción
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.
Instalación
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.
Requisitos
Instalar desde el paquete
Disponible a través de los siguientes administradores de paquetes:
Pámac (Manjaro)
zypper (openSUSE Tumbleweed)
Instalar desde la fuente
(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
NOTICIAS
Consulte la página Wiki de Seer en github.
- La versión v1.17 será la última versión de 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 desea la última fuente estable de Qt5, obtenga la versión 1.17 desde aquí: https://github.com/epasveer/seer/releases/tag/v1.17
Descripción general de la GUI
Ejemplos de las diversas vistas y diálogos de Seer.
Vista principal
La vista principal de Seer se ve así:
Fuente/Función/Tipos/Variables/Bibliotecas
- La lista de archivos fuente/encabezado que se utilizaron en el programa.
- Busque funciones, tipos y variables estáticas. Al hacer doble clic se abrirá el archivo fuente.
- La lista de bibliotecas compartidas a las que hace referencia el programa.
- Se puede buscar en la lista de archivos fuente/encabezado. Esto "reducirá" la lista de archivos mostrados.
- Al hacer doble clic en un archivo, se abrirá en el Administrador de códigos.
Información de variable/registro
- Mostrar valores de variables y registros.
- "Registrador": registra el valor de una variable. Introdúzcalo manualmente o haga doble clic en la variable en el archivo que se abre en el administrador de códigos.
- "Rastreador": crea una lista de variables para mostrar el valor cada vez que gdb llega a un punto de parada (paso, siguiente, finalizar, etc.). Cuando se alcanza el punto de parada, todas las variables de la lista mostrarán su valor potencialmente nuevo.
- "Registros": muestra los valores de todos los registros de la CPU.
Administrador de códigos.
- La gran área de la parte media de Seer gui.
- Los archivos fuente se abren en esta vista.
- El texto de un archivo se puede buscar con ^F.
- Se pueden agregar variables al "Registrador" haciendo doble clic en el nombre de la variable. Haga doble clic con la tecla CTLR presionada y antepondrá la variable con " ". Haga doble clic con la tecla MAYÚS presionada y antepondrá la variable con "&". Haga doble clic con la tecla CTRL+MAYÚS presionada y antepondrá la variable con " &".
- Se pueden agregar variables al "Rastreador" seleccionando el nombre de la variable y RMB y seleccionando "Agregar variable al Rastreador".
- Se pueden agregar variables al "Visualizador de memoria" seleccionando el nombre de la variable y RMB y seleccione "Agregar variable al Visualizador de memoria".
- RMB puede crear un punto de interrupción/punto de impresión en una línea específica.
- Puede ejecutarse en una línea específica mediante RMB en una línea específica.
- Las pestañas en esta vista se pueden separar haciendo doble clic en una pestaña.
Puntos de interrupción, puntos de vigilancia, puntos de captura, puntos de impresión, comandos gdb manuales y registros.
- El área debajo del Administrador de códigos.
- Comandos manuales. Ingrese manualmente un comando gdb o gdbmi. Los comandos se recuerdan para el próximo uso del Vidente.
- Administrador de puntos de interrupción. Cree y administre puntos de interrupción.
- Gestor de puntos de vigilancia. Cree y administre puntos de vigilancia. Un punto de vigilancia monitorea cuándo se accede a una variable (lectura, escritura, lectura/escritura).
- Gestor de puntos de captura. Cree y administre puntos de captura. Un punto de captura detiene la ejecución en una llamada de lanzamiento/relanzamiento/captura de C++.
- Administrador de puntos de impresión. Cree y administre puntos de impresión. Un punto de impresión es como un punto de interrupción pero le permite imprimir variables en ese punto de impresión. Vea la llamada 'dprintf' de gdb.
- Salida del BGF. Un registro de cualquier salida del propio programa gdb.
- Salida del vidente. Un registro de cualquier resultado del propio programa Seer. Como diagnóstico.
- Las pestañas en esta vista se pueden separar haciendo doble clic en una pestaña.
Información del marco de pila.
- Lista de marcos de pila. Se puede hacer doble clic en un marco para cambiar el alcance (la función actual).
- Argumentos del marco de pila. Para cada cuadro, imprima los argumentos pasados a cada función.
- Apila a los lugareños. Para la función actual, imprima los valores de las variables locales.
Información del hilo.
- Identificadores de hilo. Una lista de todos los hilos. Haga doble clic en la identificación de un hilo para cambiar el alcance (el hilo actual).
- Marcos de hilo. Para cada hilo, enumere sus marcos de pila.
Admite el modo de depuración inversa de Gdb.
- Activa o desactiva la grabación de instrucciones.
- Configure la dirección de reproducción para avanzar o retroceder.
Abrir diálogo
Cuando se invoca el cuadro de diálogo abrir ejecutable, se ve así:
Consola vidente
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.
Vista de ensamblaje
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.
Visualizador de memoria
Al observar el contenido de la memoria sin procesar en el Visualizador de memoria, se ve así:
Memoria | Desmontaje |
---|
| |
Visualizador de matrices
Al observar el contenido de las matrices en el Visualizador de matrices, se ve así:
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 |
---|
| | |
Visualizador de estructuras
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.
Visualizador de imágenes
Al observar el contenido de la memoria sin procesar que es una imagen, se puede utilizar el Visualizador de imágenes.
Vidente inicial
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
Soporte/Contacto
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.