Debugging-Clients
DBGp ist ein häufig verwendetes Debugger-Protokoll für Programmiersprachen und Debugger-UI-Kommunikation. Dieses Protokoll ermöglicht den Zugriff auf erweiterte Features zur Fehleranalyse. Weitere Informationen finden Sie unter Interaktives Debugging. Auf dieser Seite sind einige UIs oder "Clients" aufgelistet, von denen bekannt ist, dass sie mit AutoHotkey kompatibel sind:
SciTE4AutoHotkey
SciTE4AutoHotkey ist ein kostenloser Texteditor für AutoHotkey-Skripte auf Basis von SciTE. Dieser Texteditor unterstützt neben DBGp auch Syntaxhervorhebung, Calltips/Parameterinformation, Autovervollständigung und weitere nützliche Editierfunktionen und Scripting-Tools.
Folgende Debugging-Features sind enthalten:
- Haltepunkte.
- Ausführen, Betreten, Überspringen, Verlassen.
- Aufrufliste anzeigen.
- Namen und Inhalte von lokalen/globalen Variablen auflisten.
- Mauszeiger über die Variable bewegen, um den Inhalt anzuzeigen.
- Variableninhalte prüfen und bearbeiten.
- Struktur von Objekten anzeigen.
https://www.autohotkey.com/scite4ahk/
Visual Studio Code
Mit der vscode-autohotkey-debug-Erweiterung kann Visual Studio Code als Debugger-Client für AutoHotkey fungieren. Die Erweiterung unterstützt alle grundlegenden Debugging-Funktionen sowie einige erweiterte Funktionen wie Haltepunktdirektiven (als Kommentare) und bedingte Haltepunkte.
XDebugClient
XDebugClient ist ein einfacher Open-Source-Frontend-DBGp-Client auf Basis von .NET Framework 2.0. XDebugClient wurde ursprünglich für PHP mit Xdebug entwickelt. Allerdings finden Sie weiter unten einen benutzerdefinierten Build, der mit AutoHotkey kompatibel ist.
Änderungen:
- Die Debugger-Engine kann auch mit anderen Sprachen als "php" interagieren.
- Syntaxhervorhebung für AutoHotkey hinzugefügt.
- Stellt sofort eine Verbindung her, wenn die Debugger-Engine eine Anfrage sendet, und nicht erst, wenn der Benutzer auf Start Listening klickt.
- Eigenschaftswerte werden beim ersten Null-Zeichen gekürzt, da AutoHotkey derzeit den gesamten Variableninhalt zurückgibt und XDebugClient keine geeignete Oberfläche zur Darstellung binärer Inhalte hat.
Download: Binärdateien; Quellcode (siehe auch SharpDevelop, Dockpanel Suite und Advanced TreeView)
Verwendung:
- Starten Sie XDebugClient.
- Starten Sie AutoHotkey /Debug. XDebugClient sollte die Skriptdatei automatisch öffnen.
- Klicken Sie auf den linken Rand, um zumindest einen Haltepunkt zu setzen.
- Wählen Sie Run im Debug-Menü aus oder drücken Sie F5.
- Wenn die Ausführung einen Haltepunkt erreicht hat, können Sie das Debug-Menü oder die entsprechenden Tastaturkurzbefehle verwenden, um das Skript schrittweise durchzugehen oder fortzusetzen.
Features:
- Schreibgeschützte Ansicht des Quellcodes mit Syntaxhervorhebung.
- Haltepunkte.
- Ausführen, Betreten, Überspringen, Verlassen.
- Aufrufliste anzeigen.
- Variablen prüfen - markieren Sie dazu den Namen einer Variable, rechtsklicken Sie darauf und wählen Sie Inspect aus.
Probleme:
- Die Benutzeroberfläche reagiert nicht auf Benutzereingaben, während das Skript läuft.
- Es gibt keine Mechanismen, um Variablen aufzulisten oder ihre Werte zu setzen.
DBGp-Plugin für Notepad++
Notepad++ 32-Bit kann via Plugin als DBGp-Client verwendet werden. Es ist für PHP konzipiert, funktioniert aber auch mit AutoHotkey. Das Plugin wurde seit 2012 nicht mehr aktualisiert und ist nicht für Notepad++ 64-Bit verfügbar.
Download: Siehe DBGp-Plugin für Notepad++.
Verwendung:
Features:
- Syntaxhervorhebung, wenn vom Benutzer konfiguriert.
- Haltepunkte.
- Ausführen, Betreten, Überspringen, Verlassen, Ausführen bis zum Textcursor, Stopp.
- Lokale/globale Variablen anschauen.
- Benutzerdefinierte Variablen überwachen.
- Aufrufliste anzeigen.
- Mauszeiger über die Variable bewegen, um den Inhalt anzuzeigen.
- Frei konfigurierbare Tastaturkurzbefehle - Einstellungen, Tastatur ..., Plugin commands.
Probleme:
- Wenn Sie den Mauszeiger über den Namen einer Variable bewegen, der nur aus einem Buchstaben besteht, wird der Inhalt dieser Variable nicht angezeigt - wenn Sie zum Beispiel den Mauszeiger über
a
bewegen, wird versucht, den Inhalt von a
oder a
abzurufen.
- Wenn Sie den Mauszeiger über einen Text bewegen, wird immer versucht, eine Variable abzurufen, egal ob der Text ungültige Zeichen enthält oder nicht.
- Notepad++ wird instabil, wenn property_get fehlschlägt, was in Anbetracht zu oben zu Problemen führen kann. Um das zu umgehen, sendet AutoHotkey eine leere Eigenschaft anstelle eines Fehlercodes, wenn eine nicht existierende oder ungültige Variable angefordert wird.
Skriptbasierte Clients
Eine skriptbasierte DBGp-Bibliothek und Beispiel-Clients sind auf GitHub erhältlich.
- dbgp_console.ahk: Einfacher Befehlszeilen-Client.
- dbgp_test.ahk: Zeigt asynchrones Debugging.
- dbgp_listvars.ahk: Ein Beispiel-Client, der nur die Variablen aller laufenden Skripte auflistet.
GitHub: Lexikos / dbgp
Das DebugVars-Skript bietet eine grafische Benutzeroberfläche, mit der man Inhalte von Variablen und Objekten in jedem laufenden Skript (außer kompilierten Skripten) untersuchen und ändern kann. Es zeigt auch, wie die dbgp.ahk-Bibliothek verwendet werden kann.
GitHub: Lexikos / DebugVars
Befehlszeilen-Client
Ein Befehlszeilen-Client ist auf xdebug.org erhältlich, aber beachten Sie, dass dieser Client solide Kenntnisse über DBGp (das Protokoll) voraussetzt.
Sonstige
Es gibt viele andere DBGp-Clients, die aber noch nicht mit AutoHotkey getestet wurden. Siehe Xdebug: Dokumentation.