GDBFrontend es un depurador de interfaz gráfica de usuario sencillo, flexible y ampliable. ¡Pruébalo en línea!
Puede instalar GDBFrontend con pip
.
sudo python3 -m pip install gdbfrontend
si ya está instalado y estás actualizando
sudo python3 -m pip install --upgrade gdbfrontend
o si desea instalar una instantánea GIT específica:
sudo python3 setup.py install
y puedes correr
gdbfrontend
Puede descargar la fuente más reciente y ejecutarla.
Puede 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/
Puede abrir el shell GDB con el comando:
tmux a -t gdb-frontend
Puede instalar el paquete Arch Linux para distribuciones basadas en Arch. (Paquete AUR)
yay -S gdb-frontend-bin
y puedes ejecutarlo:
gdbfrontend
El paquete Flatpak es TODO.
Siga este tutorial para aprender cómo depurar aplicaciones Dockerizadas C/C++ con GDBFrontend.
Siga este rápido tutorial para depurar dispositivos integrados con GDBFrontend.
Siga este rápido tutorial para depurar extensiones nativas de C Python con GDBFrontend.
GDBFrontend tiene API potentes y extensibles. Siga este rápido tutorial para aprender a desarrollar complementos de GDBFrontend.
Siga este rápido tutorial para obtener ideas de integración para requisitos especiales de desarrollo/depuración.
Siga este tutorial para depurar STM32 con OpenOCD y GDBFrontend.
GDBFrontend tiene un evaluador de expresiones que puede usar varias veces al mismo tiempo.
Haga clic derecho en un punto de interrupción para establecer su condición.
Las expresiones de todas las variables, miembros y elementos están conectadas en el Explorador de variables de GDBFrontend.
Puede observar, filtrar o administrar procesos con Process Manager.
GDBFrontend tiene un conjunto de características para la colaboración denominadas "Colaboración mejorada".
El sorteo de colaboración está disponible cuando habilita la colaboración mejorada. Haga clic para dibujar o use el atajo Ctrl + Shift + X para dibujar y Ctrl + Shift + C para borrar todos los dibujos.
Con la colaboración mejorada, todos los clientes del depurador se sincronizan al visualizar el código fuente.
GDBFrontend es muy extensible y tiene API 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
, -h
Muestra texto de ayuda.
--version
, -v
Muestra la versión.
--gdb-args="ARGS", -G "ARGS"
Especifica los argumentos de la línea de comando de GDB. (Opcional)
--gdb-executable=PATH
, -g PATH
Puede especificar la ruta ejecutable de GDB como gdbfrontend --gdb-executable=/path/to/gdb
. (Opcional)
--tmux-executable=PATH
, -tmux PATH
Puede especificar la ruta ejecutable de Tmux como gdbfrontend --tmux-executable=/path/to/tmux
. (Opcional)
--terminal-id=PATH
, -t PATH
Puede especificar la identificación del terminal Tmux como gdbfrontend --terminal-id=terminal-name
. (Predeterminado: gdb-frontend
)
--credentials=USER:PASS
, -c USER:PASS
Especifica el nombre de usuario y la contraseña para acceder al depurador.
--host=IP
, -H IP
Especifica la dirección de host actual a la que puede acceder para servidores HTTP y WS.
--listen=IP
, -l IP
Especifica la dirección de escucha para servidores HTTP y WS.
--port=PORT
, -p PORT
Especifica el puerto HTTP. (0 para puerto aleatorio).
--url-base=PATH
, -u PATH
Especifica la ruta base de la URL. (Por defecto: /)
--readonly, -r
Hace que el editor de código sea de solo lectura. (Aviso: esta opción no está relacionada con la seguridad).
--workdir, -w
Especifica el directorio de trabajo.
--plugin-dir, -P
Especifica el directorio de complementos.
--dontopenuionstartup
, -D
Evita abrir la interfaz de usuario justo después del inicio.
--verbose
, -V
Habilita la salida detallada.
Los comandos GDB de GDBFrontend comienzan con gf-
.
gf-refresh
Actualiza todos los clientes del navegador.
gf-theme [theme-name]
Cambie al tema deseado. Por ejemplo: gf-theme light
, gf-theme red
o gf-theme default
para el tema predeterminado.
gf-list-plugins
Enumera todos los complementos de GDBFrontend en el directorio de complementos.
gf-load-plugin [plugin-name]
Carga el complemento GDBFrontend.
gf-unload-plugin [plugin-name]
Descarga el complemento GDBFrontend.
Las teclas de acceso rápido actuales se enumeran a continuación.
Acción | tecla de acceso rápido | Contexto |
---|---|---|
General: abrir un archivo fuente | Ctrl + O | GDBFrontend |
General: Nuevo evaluador de expresiones | Ctrl + R | GDBFrontend |
General: Nuevo ExpressionEvaluator en la ventana nativa | Ctrl + Mayús + R | GDBFrontend |
General: buscador de fuentes difusas | Ctrl + P | GDBFrontend |
Tiempo de ejecución: ejecutar | F5 | GDBFrontend |
Tiempo de ejecución: continuar | F6 | GDBFrontend |
Tiempo de ejecución: pausar/interrumpir | F7 | GDBFrontend |
Tiempo de ejecución: pasar por alto | F8 | GDBFrontend |
Tiempo de ejecución: Entra | F9 | GDBFrontend |
Tiempo de ejecución: instrucción de paso | F10 | GDBFrontend |
Tiempo de ejecución: detener | F11 | GDBFrontend |
Colaboración mejorada: alternar modo de dibujo | Ctrl + Mayús + X | GDBFrontend / Colaboración mejorada: habilitado |
Colaboración mejorada: borrar todos los dibujos | Ctrl + Mayús + C | GDBFrontend / Colaboración mejorada: habilitado |
GDBFrontend tiene temas integrados.
Para cambiar entre temas, utilice el comando gf-theme [THEME]
en el shell 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 predeterminado.
(gdb) gf-theme
También es posible que desee consultar el Tutorial de desarrollo de complementos.
Puede acceder a la API Python de GDBFrontend a través del módulo gdbfrontend
.
(gdb) python-interactive
> >> dir ( gdbfrontend )
Por ejemplo, puede obtener todos los sockets de clientes de esta manera:
> >> gdbfrontend . api . globalvars . httpServer . ws_clients
{ 1 : < server . GDBFrontendSocket object at 0 x ... > }
o puede obtener todos los complementos:
> >> gdbfrontend . plugin . getAll ()
[ 'hello' , 'theme_cyberpunk' , 'theme_dark' , 'theme_doki' , 'theme_green' , 'theme_light' , 'theme_red' , 'theme_sakura' , 'theme_sky' , 'theme_waifu' ]
Puede usar la opción --credentials=USER:PASS
para agregar autenticación HTTP a su sesión de depuración.
GDBFrontend se desarrolla principalmente con pruebas en navegadores basados en Chromium. Funcionará correctamente con otros navegadores, especialmente con Firefox, pero si tiene algunos problemas en otros navegadores, puede enviar un informe de error.
La mayoría de las funciones de GDBFrontend son seguras para subprocesos y funcionan en el subproceso principal de GDB. Entonces, si ejecuta algo que está bloqueando en el shell de GDB, las funciones de GDBFrontend tienen que esperar hasta que finalice.
Recibirá esta advertencia cuando una función GDBFrontend segura para subprocesos necesite funcionar y esté bloqueando el subproceso principal de GDB.
(gdb) shell
$ ...
Cuando salga del shell, el bloqueo de las funciones de GDBFrontend seguirá funcionando.
Nota: A veces puede recibir esta advertencia sin ejecutar nada en el shell de GDB, significa que algo (en el bucle de eventos de GDB) está tardando mucho tiempo; en este caso simplemente ignore esta advertencia.
GDBFrontend envía SIGTERM a sus subprocesos, a su aplicación y a sus subprocesos. Si su aplicación bifurca nuevos procesos y configura sus PGID, es posible que GDBFrontend no los cierre. En este caso deberías enviar SIGKILL a tus procesos.
pkill -f gdb
Si está utilizando ExpressionEvaluator con variables/miembros expandidos de profundidad muy larga, el rendimiento del movimiento de la ventana de desplazamiento y del evaluador puede verse afectado negativamente para la visualización del puntero. En esta situación, puede desactivar los señalamientos de señal y ranura para esa ventana del evaluador.
De hecho, gdb-frontend puede ejecutarse en Windows, pero existen algunos problemas graves en la versión de Windows de GDB que evitan usar gdb-frontend en Windows. Por supuesto, puedes usar gdb-frontend en WSL si estás usando Windows 10.
Puede utilizar gdb-frontend en WSL (Subsistema de Windows para Linux).
/proc/net/tcp
no funciona en WSL. (WSL 2 no tiene este problema). Desde la versión 0.2.0-beta, GDBFrontend cambió a una nueva estrategia de control de versiones.
En vX.YZ-STABILITY
:
X
son versiones principales , cambios a largo plazo con características y mejoras importantes.Y
se trata de versiones principales que incluyen nuevas funciones y mejoras.Z
son versiones de corrección de errores de las versiones principales.STABILITY
es el nivel de estabilidad del lanzamiento. ( alpha
, beta
, rcN
, stable
) La documentación está TODO todavía.
La documentación API está TODO todavía.
Puedes leer el Tutorial de desarrollo de complementos.
Los temas se desarrollan como complementos.
Únase a la comunidad Discord.
Puedes contribuir comprometiéndote con el proyecto o desarrollando un complemento. Todos los compromisos son bienvenidos.
Divisa | DIRECCIÓN |
---|---|
btc | bc1qhvlc762kwuzeawedl9a8z0duhs8449nwwc35e2 |
ETH/USDT/USDC | 0x1D99B2a2D85C34d478dD8519792e82B18f861974 |
XMR | 88qvS4sfUnLZ7nehFrz3PG1pWovvEgprcUhkmVLaiL8PVAFgfHjspjKPLhWLj3DUcm92rwNQENbJ1ZbvESdukWvh3epBUty |
Preferiblemente, se recomienda donar USDT o USDC, pero puede donar cualquiera de las monedas anteriores. ?
Copyright (C) 2019, Oğuzhan Eroğlu [email protected] (https://oguzhaneroglu.com/)
Licencia pública general GNU v3 (GPL-3)
Puede copiar, distribuir y modificar el software siempre que realice un seguimiento de los cambios/fechas en los archivos fuente. Cualquier modificación o software que incluya (a través del compilador) código con licencia GPL también debe estar disponible bajo la GPL junto con las instrucciones de compilación e instalación.