GDBFrontend ist ein einfacher, flexibler und erweiterbarer GUI-Debugger. Probieren Sie es online aus!
Sie können GDBFrontend mit pip
installieren.
sudo python3 -m pip install gdbfrontend
wenn es bereits installiert ist und Sie ein Upgrade durchführen
sudo python3 -m pip install --upgrade gdbfrontend
oder wenn Sie einen bestimmten GIT-Snapshot installieren möchten:
sudo python3 setup.py install
und du kannst rennen
gdbfrontend
Sie können die neueste Quelle herunterladen und ausführen.
Sie können gdb-frontend mit den folgenden Befehlen ausführen:
git clone https://github.com/rohanrhu/gdb-frontend.git gdb-frontend
cd gdb-frontend
./gdbfrontend
und Sie können es öffnen mit:
http://127.0.0.1:5550/
Sie können die GDB-Shell mit dem folgenden Befehl öffnen:
tmux a -t gdb-frontend
Sie können das Arch Linux-Paket für Arch-basierte Distributionen installieren. (AUR-Paket)
yay -S gdb-frontend-bin
und Sie können es ausführen:
gdbfrontend
Das Flatpak-Paket ist ein TODO.
Folgen Sie diesem Tutorial, um zu erfahren, wie Sie Docker-C/C++-Apps mit GDBFrontend debuggen.
Befolgen Sie dieses kurze Tutorial zum Debuggen eingebetteter Geräte mit GDBFrontend.
Befolgen Sie dieses kurze Tutorial zum Debuggen nativer C-Python-Erweiterungen mit GDBFrontend.
GDBFrontend verfügt über leistungsstarke und erweiterbare APIs. Befolgen Sie dieses kurze Tutorial, um die Entwicklung von GDBFrontend-Plugins zu erlernen.
Folgen Sie diesem kurzen Tutorial für Integrationsideen für spezielle Entwicklungs-/Debugging-Anforderungen.
Befolgen Sie dieses Tutorial zum Debuggen von STM32 mit OpenOCD und GDBFrontend.
GDBFrontend verfügt über einen Ausdrucksauswerter, den Sie gleichzeitig mehrfach verwenden können.
Klicken Sie mit der rechten Maustaste auf einen Haltepunkt, um dessen Bedingung festzulegen.
Ausdrücke aller Variablen, Mitglieder und Elemente werden im VariablesExplorer von GDBFrontend verbunden.
Mit Process Manager können Sie Prozesse beobachten, filtern oder verwalten.
GDBFrontend verfügt über eine Reihe einiger Funktionen für die Zusammenarbeit, die als „Erweiterte Zusammenarbeit“ bezeichnet werden.
Die Zusammenarbeitsziehung ist verfügbar, wenn Sie die erweiterte Zusammenarbeit aktivieren. Klicken Sie zum Zeichnen oder verwenden Sie die Tastenkombination Strg + Umschalt + X zum Zeichnen und Strg + Umschalt + C zum Löschen aller Zeichnungen.
Mit Enhanced Collabration werden alle Debugger-Clients bei der Quellanzeige synchronisiert.
GDBFrontend ist sehr erweiterbar und verfügt über leistungsstarke APIs. Einige Beispiele für die Erweiterbarkeit von 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
Zeigt Hilfetext an.
--version
, -v
Zeigt die Version an.
--gdb-args="ARGS", -G "ARGS"
Gibt GDB-Befehlszeilenargumente an. (Optional)
--gdb-executable=PATH
, -g PATH
Sie können den ausführbaren GDB-Pfad wie gdbfrontend --gdb-executable=/path/to/gdb
angeben. (Optional)
--tmux-executable=PATH
, -tmux PATH
Sie können den ausführbaren Tmux-Pfad wie gdbfrontend --tmux-executable=/path/to/tmux
angeben. (Optional)
--terminal-id=PATH
, -t PATH
Sie können die Tmux-Terminal-ID wie gdbfrontend --terminal-id=terminal-name
angeben. (Standard: gdb-frontend
)
--credentials=USER:PASS
, -c USER:PASS
Gibt Benutzernamen und Passwort für den Zugriff auf den Debugger an.
--host=IP
, -H IP
Gibt die aktuelle Hostadresse an, über die Sie für HTTP- und WS-Server zugreifen können.
--listen=IP
, -l IP
Gibt die Abhöradresse für HTTP- und WS-Server an.
--port=PORT
, -p PORT
Gibt den HTTP-Port an. (0 für zufälligen Port.)
--url-base=PATH
, -u PATH
Gibt den URL-Basispfad an. (Standard: /)
--readonly, -r
Macht den Code-Editor schreibgeschützt. (Hinweis: Diese Option hat nichts mit der Sicherheit zu tun.)
--workdir, -w
Gibt das Arbeitsverzeichnis an.
--plugin-dir, -P
Gibt das Plugin-Verzeichnis an.
--dontopenuionstartup
, -D
Vermeidet das Öffnen der Benutzeroberfläche direkt nach dem Start.
--verbose
, -V
Aktiviert eine ausführliche Ausgabe.
Die GDB-Befehle von GDBFrontend beginnen mit gf-
.
gf-refresh
Aktualisiert alle Browser-Clients.
gf-theme [theme-name]
Wechseln Sie zum gewünschten Thema. Zum Beispiel: gf-theme light
, gf-theme red
oder gf-theme default
für Standardthema.
gf-list-plugins
Listet alle GDBFrontend-Plugins im Plugin-Verzeichnis auf.
gf-load-plugin [plugin-name]
Lädt das GDBFrontend-Plugin.
gf-unload-plugin [plugin-name]
Entlädt das GDBFrontend-Plugin.
Aktuelle Hotkeys sind unten aufgeführt.
Aktion | Hotkey | Kontext |
---|---|---|
Allgemein: Öffnen Sie eine Quelldatei | Strg + O | GDBFrontend |
Allgemein: Neuer ExpressionEvaluator | Strg + R | GDBFrontend |
Allgemein: Neuer ExpressionEvaluator im nativen Fenster | Strg + Umschalt + R | GDBFrontend |
Allgemein: Fuzzy-Source-Finder | Strg + P | GDBFrontend |
Laufzeit: Ausführen | F5 | GDBFrontend |
Laufzeit: Weiter | F6 | GDBFrontend |
Laufzeit: Pause/Unterbrechung | F7 | GDBFrontend |
Laufzeit: Übersteigen | F8 | GDBFrontend |
Laufzeit: Treten Sie ein | F9 | GDBFrontend |
Laufzeit: Schrittanweisung | F10 | GDBFrontend |
Laufzeit: Stopp | F11 | GDBFrontend |
Verbesserte Zusammenarbeit: Zeichenmodus umschalten | Strg + Umschalt + X | GDBFrontend / Erweiterte Zusammenarbeit: Aktiviert |
Verbesserte Zusammenarbeit: Alle Zeichnungen löschen | Strg + Umschalt + C | GDBFrontend / Erweiterte Zusammenarbeit: Aktiviert |
GDBFrontend verfügt über integrierte Themes.
Zum Wechseln zwischen Themes verwenden Sie den Befehl gf-theme [THEME]
in der GDB-Shell.
(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
Zum Zurückschalten zum Standardthema.
(gdb) gf-theme
Vielleicht möchten Sie sich auch das Plugin-Entwicklungs-Tutorial ansehen.
Sie können über das gdbfrontend
-Modul auf die Python-API von GDBFrontend zugreifen.
(gdb) python-interactive
> >> dir ( gdbfrontend )
Sie können beispielsweise alle Client-Sockets wie folgt abrufen:
> >> gdbfrontend . api . globalvars . httpServer . ws_clients
{ 1 : < server . GDBFrontendSocket object at 0 x ... > }
oder Sie können alle Plugins erhalten:
> >> gdbfrontend . plugin . getAll ()
[ 'hello' , 'theme_cyberpunk' , 'theme_dark' , 'theme_doki' , 'theme_green' , 'theme_light' , 'theme_red' , 'theme_sakura' , 'theme_sky' , 'theme_waifu' ]
Sie können die Option --credentials=USER:PASS
verwenden, um Ihrer Debugger-Sitzung eine HTTP-Authentifizierung hinzuzufügen.
GDBFrontend entwickelt hauptsächlich mit Tests auf Chromium-basierten Browsern. Es funktioniert einwandfrei mit anderen Browsern, insbesondere mit Firefox. Wenn Sie jedoch Probleme mit anderen Browsern haben, können Sie einen Fehlerbericht senden.
Die meisten GDBFrontend-Funktionen sind Thread-sicher und funktionieren im Haupt-Thread von GDB. Wenn Sie also etwas ausführen, das die GDB-Shell blockiert, müssen die GDBFrontend-Funktionen warten, bis es fertig ist.
Sie erhalten diese Warnung, wenn eine Thread-sichere GDBFrontend-Funktion funktionieren muss und Sie den Hauptthread von GDB blockieren.
(gdb) shell
$ ...
Wenn Sie die Shell verlassen, funktionieren die blockierenden GDBFrontend-Funktionen weiterhin.
Hinweis: Manchmal erhalten Sie möglicherweise diese Warnung, ohne etwas in der GDB-Shell auszuführen. Dies bedeutet, dass etwas (in der Ereignisschleife von GDB) lange dauert. Ignorieren Sie in diesem Fall einfach diese Warnung.
GDBFrontend sendet SIGTERM an seine Unterprozesse, Ihre Anwendung und ihre Unterprozesse. Wenn Ihre Anwendung neue Prozesse forkt und deren PGIDs festlegt, schließt GDBFrontend diese möglicherweise nicht. In diesem Fall sollten Sie SIGKILL an Ihre Prozesse senden.
pkill -f gdb
Wenn Sie ExpressionEvaluator mit erweiterten Variablen/Mitgliedern mit sehr großer Tiefe verwenden, kann die Leistung beim Scrollen und Verschieben des Evaluatorfensters negativ auf die Zeigervisualisierung beeinträchtigt werden. In dieser Situation können Sie die Signal- und Slot -Zeigerung für dieses Evaluatorfenster deaktivieren.
Tatsächlich kann gdb-frontend unter Windows ausgeführt werden, es gibt jedoch einige schwerwiegende Probleme in der Windows-Version von GDB, die die Verwendung von gdb-frontend unter Windows verhindern. Natürlich können Sie gdb-frontend auf WSL verwenden, wenn Sie Windows 10 verwenden.
Sie können gdb-frontend auf WSL (Windows-Subsystem für Linux) verwenden.
/proc/net/tcp
auf WSL nicht funktioniert. (WSL 2 hat dieses Problem nicht.) Seit v0.2.0-beta hat GDBFrontend auf eine neue Versionierungsstrategie umgestellt.
In vX.YZ-STABILITY
:
X
ist eine Hauptversion , die sich langfristig mit wichtigen Funktionen und Verbesserungen ändert.Y
sind Hauptversionen , die neue Funktionen und Verbesserungen enthalten.Z
sind Bugfix- Releases der Hauptversionen.STABILITY
ist die Stabilitätsstufe der Version. ( alpha
, beta
, rcN
, stable
) Die Dokumentation ist noch TODO.
Die API-Dokumentation ist noch TODO.
Sie können das Plugin-Entwicklungs-Tutorial lesen.
Themes werden als Plugins entwickelt.
Treten Sie der Discord-Community bei.
Sie können einen Beitrag leisten, indem Sie sich für ein Projekt engagieren oder ein Plugin entwickeln. Alle Zusagen sind willkommen.
Währung | Adresse |
---|---|
BTC | bc1qhvlc762kwuzeawedl9a8z0duhs8449nwwc35e2 |
ETH / USDT / USDC | 0x1D99B2a2D85C34d478dD8519792e82B18f861974 |
XMR | 88qvS4sfUnLZ7nehFrz3PG1pWovvEgprcUhkmVLaiL8PVAFgfHjspjKPLhWLj3DUcm92rwNQENbJ1ZbvESdukWvh3epBUty |
Vorzugsweise wird die Spende von USDT oder USDC empfohlen, Sie können jedoch jede der oben genannten Währungen spenden. ?
Copyright (C) 2019, Oğuzhan Eroğlu [email protected] (https://oguzhaneroglu.com/)
GNU General Public License v3 (GPL-3)
Sie dürfen die Software kopieren, verteilen und ändern, solange Sie Änderungen/Daten in den Quelldateien nachverfolgen. Alle Änderungen an der Software, einschließlich (über den Compiler) GPL-lizenziertem Code, müssen zusammen mit den Build- und Installationsanweisungen ebenfalls unter der GPL verfügbar gemacht werden.