Debugging-Clients
DBGp ist ein häufig verwendetes Debugger-Protokoll für Programmiersprachen und Debugger-UI-Kommunikation. Mit diesem Protokoll kann man auf erweiterte Features zur Fehleranalyse zugreifen. Weitere Informationen finden Sie unter Interaktives Debugging. Einige UIs oder "Clients", die bekanntermaßen mit AutoHotkey kompatibel sind, sind auf dieser Seite aufgeführt:
SciTE4AutoHotkey
SciTE4AutoHotkey ist ein kostenloser Texteditor für AutoHotkey-Skripte, der auf SciTE basiert. Dieser Texteditor unterstützt neben DBGp auch Syntaxhervorhebung, Calltips/Parameterinformation, Autovervollständigung und weitere nützliche Bearbeitungsfunktionen 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 in Verbindung mit Xdebug entwickelt. Allerdings finden Sie weiter unten eine abgeänderte Version, die kompatibel mit AutoHotkey ist.
Änderungen:
- Die Debugger-Engine kann neben "php" auch mit anderen Sprachen 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 hat, um binäre Inhalte anzuzeigen.
Download: Binärdateien; Quellcode (siehe auch SharpDevelop, Dockpanel Suite und Advanced TreeView)
Verwendung:
- Starten Sie XDebugClient.
- Starten Sie AutoHotkey /Debug. XDebugClient sollte die Skript-Datei 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 genutzt 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, Bis zum Textcursor ausführen, Stop.
- 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 der Inhalt von a
oder a
versucht abzurufen.
- Wenn Sie den Mauszeiger über einen Text bewegen, wird immer eine Variable versucht 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 kompilierte Skripts) untersuchen und ändern kann. Es zeigt auch, wie die dbgp.ahk-Bibliothek genutzt 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 noch viele andere DBGp-Clients, allerdings wurden sie noch nicht mit AutoHotkey getestet. Siehe Xdebug: Dokumentation.