
☕ GDBFrontend es un depurador gráfico fácil, flexible y extensible.

GDBFrontend es un depurador gráfico fácil, flexible y extensible.

Puedes instalar GDBFrontend con pip.
sudo python3 -m pip install gdbfrontend
si ya está instalado y lo estás actualizando
sudo python3 -m pip install --upgrade gdbfrontend
o si deseas instalar una instantánea GIT específica:
sudo python3 setup.py install
y puedes ejecutar
gdbfrontend
Puedes descargar la última fuente y ejecutarla.
Puedes ejecutar gdb-frontend con los siguientes comandos:
git clone https://github.com/rohanrhu/gdb-frontend.git gdb-frontend
cd gdb-frontend
./gdbfrontend
y puedes abrirlo con:
http://127.0.0.1:5550/
Puedes abrir el shell de GDB con el comando:
tmux a -t gdb-frontend
Puedes instalar el paquete de Arch Linux para distribuciones basadas en Arch. (Paquete AUR)
yay -S gdb-frontend-bin
y puedes ejecutarlo:
gdbfrontend
El paquete Flatpak está pendiente.
Sigue este tutorial para aprender a depurar aplicaciones C/C++ en Docker con GDBFrontend.
Sigue este tutorial rápido para depurar dispositivos embebidos con GDBFrontend.
Sigue este tutorial rápido para depurar extensiones nativas C de Python con GDBFrontend.
GDBFrontend dispone de APIs potentes y extensibles. Sigue este tutorial rápido para aprender a desarrollar plugins para GDBFrontend.
Sigue este tutorial rápido para ideas de integración para requisitos especiales de desarrollo/depuración.
Sigue este tutorial para depurar STM32 con OpenOCD y GDBFrontend.
GDBFrontend tiene un evaluador de expresiones que puedes usar múltiples al mismo tiempo.



Haz clic derecho en un punto de interrupción para establecer su condición.


Las expresiones de todas las variables, miembros e ítems están conectadas en el Explorador de Variables de GDBFrontend.

Puedes ver, filtrar o gestionar procesos con el Administrador de procesos.


GDBFrontend tiene un conjunto de funciones para la colaboración denominado "Colaboración mejorada".

El dibujo colaborativo está disponible cuando activas la Colaboración mejorada. Haz clic en Dibujar o usa el atajo Ctrl + Mayús + X para dibujar y Ctrl + Mayús + C para borrar todos los dibujos.

Con la Colaboración mejorada, todos los clientes del depurador están sincronizados en la visualización del código fuente.

GDBFrontend es muy extensible y tiene APIs potentes. Algunos ejemplos de la extensibilidad de GDBFrontend.


./gdbfrontend$ gdbfrontend --help
GDBFrontend is a easy, flexible and extensionable gui debugger.
Options:
--help, -h: Shows this help message.
--version, -v: Shows version.
--gdb-args="ARGS", -G "ARGS": Specifies GDB command line arguments. (Optional)
--gdb-executable=PATH, -g PATH: Specifies GDB executable path (Default is "gdb" command on PATH environment variable.)
--tmux-executable=PATH, -tmux PATH: Specifies Tmux executable path (Default is "tmux" command on PATH environment variable.)
--terminal-id=NAME, -t NAME: Specifies tmux terminal identifier name (Default is "gdb-frontend".)
--credentials=USER:PASS, -c USER:PASS: Specifies username and password for accessing to debugger.
--host=IP, -H IP: Specifies current host address that you can access via for HTTP and WS servers.
--listen=IP, -l IP: Specifies listen address for HTTP and WS servers.
--port=PORT, -p PORT: Specifies HTTP port. (0 for random port.)
--url-base=PATH, -u PATH: Specifies URL base path. (Default: /)
--readonly, -r: Makes code editor readonly. (Notice: This option is not related to security.)
--workdir, -w: Specifies working directory.
--plugin-dir, -P: Specifies plugins directory.
--dontopenuionstartup, -D: Avoids opening UI just after startup.
--verbose, -V: Enables verbose output.
--help, -hMuestra el texto de ayuda.
--version, -vMuestra la versión.
--gdb-args="ARGS", -G "ARGS"Especifica los argumentos de línea de comandos de GDB. (Opcional)
--gdb-executable=PATH, -g PATHPuedes especificar la ruta del ejecutable de GDB, por ejemplo: gdbfrontend --gdb-executable=/ruta/a/gdb. (Opcional)
--tmux-executable=PATH, -tmux PATHPuedes especificar la ruta del ejecutable de Tmux, por ejemplo: gdbfrontend --tmux-executable=/ruta/a/tmux. (Opcional)
--terminal-id=PATH, -t PATHPuedes especificar el ID del terminal de Tmux, por ejemplo: gdbfrontend --terminal-id=nombre-terminal. (Por defecto: gdb-frontend)
--credentials=USER:PASS, -c USER:PASSEspecifica el nombre de usuario y la contraseña para acceder al depurador.
--host=IP, -H IPEspecifica la dirección del host actual a la que puedes acceder para los servidores HTTP y WS.
--listen=IP, -l IPEspecifica la dirección de escucha para los servidores HTTP y WS.
--port=PORT, -p PORTEspecifica el puerto HTTP. (0 para un puerto aleatorio.)
--url-base=PATH, -u PATHEspecifica la ruta base de la URL. (Por defecto: /)
--readonly, -rHace que el editor de código sea de solo lectura. (Aviso: Esta opción no está relacionada con la seguridad.)
--workdir, -wEspecifica el directorio de trabajo.
--plugin-dir, -PEspecifica el directorio de plugins.
--dontopenuionstartup, -DEvita abrir la interfaz de usuario justo después del inicio.
--verbose, -VActiva la salida detallada.
Los comandos GDB de GDBFrontend comienzan con gf-.
gf-refreshRefresca todos los clientes del navegador.
gf-theme [nombre-tema]Cambia al tema deseado. Por ejemplo: gf-theme light, gf-theme red o gf-theme default para el tema por defecto.
gf-list-pluginsLista todos los plugins de GDBFrontend en el directorio de plugins.
gf-load-plugin [nombre-plugin]Carga un plugin de GDBFrontend.
gf-unload-plugin [nombre-plugin]Descarga un plugin de GDBFrontend.
Los atajos actuales se enumeran a continuación.
GDBFrontend tiene temas integrados.
Para cambiar entre temas, usa el comando gf-theme [TEMA] en el shell de GDB.
(gdb) gf-theme doki
(gdb) gf-theme sky
(gdb) gf-theme sakura
(gdb) gf-theme waifu
(gdb) gf-theme cyberpunk
(gdb) gf-theme dark
(gdb) gf-theme green
(gdb) gf-theme light
(gdb) gf-theme red
Para volver al tema por defecto.
(gdb) gf-theme
También puedes consultar el Tutorial de desarrollo de plugins.
Puedes acceder a la API Python de GDBFrontend a través del módulo gdbfrontend.
(gdb) python-interactive
>>> dir(gdbfrontend)
Por ejemplo, puedes obtener todos los sockets de cliente así:
>>> gdbfrontend.api.globalvars.httpServer.ws_clients
{1: <server.GDBFrontendSocket object at 0x...>}
o puedes obtener todos los plugins:
>>> gdbfrontend.plugin.getAll()
['hello', 'theme_cyberpunk', 'theme_dark', 'theme_doki', 'theme_green', 'theme_light', 'theme_red', 'theme_sakura', 'theme_sky', 'theme_waifu']
Puedes usar la opción --credentials=USER:PASS para agregar autenticación HTTP a tu sesión de depuración.
GDBFrontend se desarrolla principalmente probando en navegadores basados en Chromium. Funcionará correctamente con otros navegadores, especialmente con Firefox, pero si encuentras algún problema en otros navegadores, puedes enviar un informe de error.
La mayoría de las funciones de GDBFrontend son seguras para subprocesos y trabajan en el hilo principal de GDB. Por lo tanto, si ejecutas algo que bloquea el shell de GDB, las funciones de GDBFrontend deben esperar hasta que termine.
Recibirás esta advertencia cuando una función segura para subprocesos de GDBFrontend necesite trabajar y estés bloqueando el hilo principal de GDB.
(gdb) shell
$ ...

Cuando salgas del shell, las funciones bloqueadas de GDBFrontend continuarán funcionando.
Nota: A veces puedes recibir esta advertencia sin ejecutar nada en el shell de GDB, significa que algo (en el bucle de eventos de GDB) está tomando mucho tiempo; en este caso ignora esta advertencia.
GDBFrontend envía SIGTERM a sus subprocesos, a tu aplicación y a sus subprocesos. Si tu aplicación está bifurcando nuevos procesos y estableciendo sus PGID, GDBFrontend puede no cerrarlos. En ese caso, debes enviar SIGKILL a tus procesos.
pkill -f gdb
Si estás usando ExpressionEvaluator con variables/miembros expandidos de profundidad muy larga, el rendimiento del desplazamiento y el movimiento de la ventana del evaluador puede verse afectado negativamente para la visualización de punteros. En esta situación, puedes desactivar las indicaciones de signal y slot para esa ventana del evaluador.

De hecho, gdb-frontend puede ejecutarse en Windows, pero hay algunos problemas graves en la versión de GDB para Windows que impiden usar gdb-frontend en Windows. Por supuesto, puedes usar gdb-frontend en WSL si usas Windows 10.
Puedes usar gdb-frontend en WSL (Subsistema de Windows para Linux).
/proc/net/tcp no funciona en WSL. (WSL 2 no tiene este problema).Desde v0.2.0-beta, GDBFrontend cambió a una nueva estrategia de versionado.
En vX.Y.Z-ESTABILIDAD:
X son versiones principales, cambian a largo plazo con características y mejoras importantes.Y son versiones principales que incluyen nuevas características y mejoras.Z son lanzamientos de corrección de errores de las versiones principales.ESTABILIDAD es el nivel de estabilidad del lanzamiento (alpha, beta, rcN, stable).La documentación está pendiente.
La documentación de la API está pendiente.
Puedes leer el Tutorial de desarrollo de plugins.
Los temas se desarrollan como plugins.
Únete a la comunidad de Discord.
Puedes contribuir realizando commits al proyecto o desarrollando un plugin. Todos los commits son bienvenidos.
| Moneda | Dirección |
|---|---|
| BTC | bc1qhvlc762kwuzeawedl9a8z0duhs8449nwwc35e2 |
| ETH / USDT / USDC | 0x1D99B2a2D85C34d478dD8519792e82B18f861974 |
| XMR | 88qvS4sfUnLZ7nehFrz3PG1pWovvEgprcUhkmVLaiL8PVAFgfHjspjKPLhWLj3DUcm92rwNQENbJ1ZbvESdukWvh3epBUty |
Preferiblemente, se recomienda donar USDT o USDC, pero puedes donar cualquiera de las monedas anteriores. 🥳
Copyright (C) 2019, Oğuzhan Eroğlu [email protected] (https://oguzhaneroglu.com/)
GNU General Public License v3 (GPL-3)
Puedes copiar, distribuir y modificar el software siempre que realices un seguimiento de los cambios/fechas en los archivos fuente. Cualquier modificación al software o software que incluya (a través del compilador) código con licencia GPL también debe ponerse a disposición bajo la GPL junto con las instrucciones de compilación e instalación.
| Acción | Tecla | Contexto |
|---|
| General: Abrir un archivo fuente | Ctrl + O | GDBFrontend |
| General: Nuevo evaluador de expresiones | Ctrl + R | GDBFrontend |
| General: Nuevo evaluador de expresiones en ventana nativa | Ctrl + Mayús + R | GDBFrontend |
| General: Buscador difuso de fuentes | Ctrl + P | GDBFrontend |
| Ejecución: Ejecutar | F5 | GDBFrontend |
| Ejecución: Continuar | F6 | GDBFrontend |
| Ejecución: Pausar/Interrumpir | F7 | GDBFrontend |
| Ejecución: Saltar línea | F8 | GDBFrontend |
| Ejecución: Entrar en función | F9 | GDBFrontend |
| Ejecución: Ejecutar instrucción | F10 | GDBFrontend |
| Ejecución: Detener | F11 | GDBFrontend |
| Colaboración Mejorada: Activar/desactivar modo dibujo | Ctrl + Mayús + X | GDBFrontend / Colaboración Mejorada: Activada |
| Colaboración Mejorada: Borrar todos los dibujos | Ctrl + Mayús + C | GDBFrontend / Colaboración Mejorada: Activada |