
☕ GDBFrontend est un débogueur graphique facile, flexible et extensible.

GDBFrontend est un débogueur graphique facile, flexible et extensible.

Vous pouvez installer GDBFrontend avec pip.
sudo python3 -m pip install gdbfrontend
s'il est déjà installé et que vous mettez à jour
sudo python3 -m pip install --upgrade gdbfrontend
ou si vous souhaitez installer un snapshot GIT spécifique :
sudo python3 setup.py install
et vous pouvez exécuter
gdbfrontend
Vous pouvez télécharger la dernière source et l'exécuter.
Vous pouvez exécuter gdb-frontend avec les commandes suivantes :
git clone https://github.com/rohanrhu/gdb-frontend.git gdb-frontend
cd gdb-frontend
./gdbfrontend
et vous pouvez l'ouvrir avec :
http://127.0.0.1:5550/
Vous pouvez ouvrir le shell GDB avec la commande :
tmux a -t gdb-frontend
Vous pouvez installer le paquet Arch Linux pour les distributions basées sur Arch. (Paquet AUR)
yay -S gdb-frontend-bin
et vous pouvez l'exécuter :
gdbfrontend
Le paquet Flatpak est à faire.
Suivez ce tutoriel pour apprendre comment déboguer des applications C/C++ dockérisées avec GDBFrontend.
Suivez ce tutoriel rapide pour déboguer des dispositifs embarqués avec GDBFrontend.
Suivez ce tutoriel rapide pour déboguer des extensions C Python natives avec GDBFrontend.
GDBFrontend dispose d'API puissantes et extensibles. Suivez ce tutoriel rapide pour apprendre à développer des plugins GDBFrontend.
Suivez ce tutoriel rapide pour des idées d'intégration pour des besoins de développement/débogage spéciaux.
Suivez ce tutoriel pour déboguer STM32 avec OpenOCD et GDBFrontend.
GDBFrontend dispose d'un évaluateur d'expression que vous pouvez utiliser plusieurs à la fois.



Faites un clic droit sur un point d'arrêt pour définir sa condition.


Les expressions de toutes les variables, membres et éléments sont connectées dans VariablesExplorer de GDBFrontend.

Vous pouvez surveiller, filtrer ou gérer les processus avec le Gestionnaire de processus.


GDBFrontend dispose d'un ensemble de fonctionnalités de collaboration appelé « Collaboration améliorée ».

Le dessin collaboratif est disponible lorsque vous activez la Collaboration améliorée. Cliquez sur Dessiner ou utilisez le raccourci Ctrl + Maj + X pour dessiner et Ctrl + Maj + C pour effacer tous les dessins.

Avec la Collaboration améliorée, tous les clients du débogueur sont synchronisés sur l'affichage source.

GDBFrontend est très extensible et dispose d'API puissantes. Quelques exemples de l'extensibilité 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, -hAffiche le texte d'aide.
--version, -vAffiche la version.
--gdb-args="ARGS", -G "ARGS"Spécifie les arguments de ligne de commande GDB. (Optionnel)
--gdb-executable=PATH, -g PATHVous pouvez spécifier le chemin de l'exécutable GDB comme gdbfrontend --gdb-executable=/chemin/vers/gdb. (Optionnel)
--tmux-executable=PATH, -tmux PATHVous pouvez spécifier le chemin de l'exécutable Tmux comme gdbfrontend --tmux-executable=/chemin/vers/tmux. (Optionnel)
--terminal-id=PATH, -t PATHVous pouvez spécifier l'identifiant du terminal Tmux comme gdbfrontend --terminal-id=nom-terminal. (Par défaut : gdb-frontend)
--credentials=USER:PASS, -c USER:PASSSpécifie le nom d'utilisateur et le mot de passe pour accéder au débogueur.
--host=IP, -H IPSpécifie l'adresse hôte actuelle à laquelle vous pouvez accéder pour les serveurs HTTP et WS.
--listen=IP, -l IPSpécifie l'adresse d'écoute pour les serveurs HTTP et WS.
--port=PORT, -p PORTSpécifie le port HTTP. (0 pour un port aléatoire.)
--url-base=PATH, -u PATHSpécifie le chemin de base de l'URL. (Par défaut : /)
--readonly, -rRend l'éditeur de code en lecture seule. (Remarque : Cette option n'est pas liée à la sécurité.)
--workdir, -wSpécifie le répertoire de travail.
--plugin-dir, -PSpécifie le répertoire des plugins.
--dontopenuionstartup, -DÉvite d'ouvrir l'interface juste après le démarrage.
--verbose, -VActive la sortie détaillée.
Les commandes GDB de GDBFrontend commencent par gf-.
gf-refreshRafraîchit tous les clients du navigateur.
gf-theme [theme-name]Passe au thème souhaité. Par exemple : gf-theme light, gf-theme red ou gf-theme default pour le thème par défaut.
gf-list-pluginsListe tous les plugins GDBFrontend dans le répertoire des plugins.
gf-load-plugin [plugin-name]Charge un plugin GDBFrontend.
gf-unload-plugin [plugin-name]Décharge un plugin GDBFrontend.
Les touches de raccourci actuelles sont listées ci-dessous.
GDBFrontend dispose de thèmes intégrés.
Pour basculer entre les thèmes, utilisez la commande gf-theme [THEME] dans le 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
Pour revenir au thème par défaut.
(gdb) gf-theme
Vous pouvez également consulter le Tutoriel de développement de plugins.
Vous pouvez accéder à l'API Python de GDBFrontend via le module gdbfrontend.
(gdb) python-interactive
>>> dir(gdbfrontend)
Par exemple, vous pouvez obtenir tous les sockets clients comme ceci :
>>> gdbfrontend.api.globalvars.httpServer.ws_clients
{1: <server.GDBFrontendSocket object at 0x...>}
ou vous pouvez obtenir tous les plugins :
>>> gdbfrontend.plugin.getAll()
['hello', 'theme_cyberpunk', 'theme_dark', 'theme_doki', 'theme_green', 'theme_light', 'theme_red', 'theme_sakura', 'theme_sky', 'theme_waifu']
Vous pouvez utiliser l'option --credentials=USER:PASS pour ajouter une authentification HTTP à votre session de débogage.
GDBFrontend est principalement développé et testé sur les navigateurs basés sur Chromium. Il fonctionnera correctement avec d'autres navigateurs, notamment Firefox, mais si vous rencontrez des problèmes sur d'autres navigateurs, vous pouvez envoyer un rapport de bogue.
La plupart des fonctions de GDBFrontend sont thread-safe et travaillent sur le thread principal de GDB. Donc, si vous exécutez quelque chose qui bloque sur le shell GDB, les fonctions de GDBFrontend doivent attendre qu'il se termine.
Vous obtiendrez cet avertissement lorsqu'une fonction thread-safe de GDBFrontend doit fonctionner et que vous bloquez le thread principal de GDB.
(gdb) shell
$ ...

Lorsque vous quittez le shell, les fonctions bloquantes de GDBFrontend continueront de fonctionner.
Remarque : Parfois, vous pouvez recevoir cet avertissement sans rien exécuter dans le shell GDB, cela signifie que quelque chose (dans la boucle d'événements de GDB) prend beaucoup de temps ; dans ce cas, ignorez simplement cet avertissement.
GDBFrontend envoie SIGTERM à ses sous-processus, à votre application et à ses sous-processus. Si votre application crée de nouveaux processus et définit leurs PGID, GDBFrontend peut ne pas les fermer. Dans ce cas, vous devez envoyer SIGKILL à vos processus.
pkill -f gdb
Si vous utilisez ExpressionEvaluator avec des variables/membres développés à une très grande profondeur, les performances de défilement et de déplacement de la fenêtre de l'évaluateur peuvent être affectées négativement pour la visualisation des pointeurs. Dans cette situation, vous pouvez désactiver les pointages signal et slot pour cette fenêtre d'évaluation.

En fait, gdb-frontend peut fonctionner sous Windows mais il y a quelques problèmes sérieux dans la version Windows de GDB qui empêchent d'utiliser gdb-frontend sous Windows. Bien sûr, vous pouvez utiliser gdb-frontend sur WSL si vous utilisez Windows 10.
Vous pouvez utiliser gdb-frontend sur WSL (Windows Subsystem for Linux).
/proc/net/tcp ne fonctionne pas sur WSL. (WSL 2 n'a pas ce problème.)Depuis v0.2.0-beta, GDBFrontend a adopté une nouvelle stratégie de gestion des versions.
Dans vX.Y.Z-STABILITÉ :
X est la version majeure, change à long terme avec des fonctionnalités et améliorations majeures.Y est la version principale qui inclut de nouvelles fonctionnalités et améliorations.Z est une version corrective des versions principales.STABILITÉ est le niveau de stabilité de la version. (alpha, beta, rcN, stable)La documentation est encore à faire.
La documentation de l'API est encore à faire.
Vous pouvez lire le Tutoriel de développement de plugins.
Les thèmes sont développés comme des plugins.
Rejoignez la communauté Discord.
Vous pouvez contribuer en faisant des commits sur le projet ou en développant un plugin. Tous les commits sont les bienvenus.
| Currency | Address |
|---|---|
| BTC | bc1qhvlc762kwuzeawedl9a8z0duhs8449nwwc35e2 |
| ETH / USDT / USDC | 0x1D99B2a2D85C34d478dD8519792e82B18f861974 |
| XMR | 88qvS4sfUnLZ7nehFrz3PG1pWovvEgprcUhkmVLaiL8PVAFgfHjspjKPLhWLj3DUcm92rwNQENbJ1ZbvESdukWvh3epBUty |
De préférence, il est recommandé de faire un don en USDT ou USDC, mais vous pouvez faire un don dans n'importe quelle devise ci-dessus. 🥳
Copyright (C) 2019, Oğuzhan Eroğlu [email protected] (https://oguzhaneroglu.com/)
GNU General Public License v3 (GPL-3)
Vous pouvez copier, distribuer et modifier le logiciel tant que vous suivez les modifications/dates dans les fichiers sources. Toute modification ou logiciel incluant (via un compilateur) du code sous licence GPL doit également être mis à disposition sous la GPL avec les instructions de construction et d'installation.
| Action | Touche de raccourci | Contexte |
|---|
| Général : Ouvrir un fichier source | Ctrl + O | GDBFrontend |
| Général : Nouvel évaluateur d'expression | Ctrl + R | GDBFrontend |
| Général : Nouvel évaluateur d'expression dans une fenêtre native | Ctrl + Maj + R | GDBFrontend |
| Général : Recherche floue de source | Ctrl + P | GDBFrontend |
| Exécution : Lancer | F5 | GDBFrontend |
| Exécution : Continuer | F6 | GDBFrontend |
| Exécution : Pause/Interruption | F7 | GDBFrontend |
| Exécution : Pas à pas principal | F8 | GDBFrontend |
| Exécution : Pas à pas détaillé | F9 | GDBFrontend |
| Exécution : Instruction pas à pas | F10 | GDBFrontend |
| Exécution : Arrêter | F11 | GDBFrontend |
| Collaboration améliorée : Activer/désactiver le mode dessin | Ctrl + Maj + X | GDBFrontend / Collaboration améliorée : Activée |
| Collaboration améliorée : Effacer tous les dessins | Ctrl + Maj + C | GDBFrontend / Collaboration améliorée : Activée |