Tutorial: Wie man Script-Fehler erfolgreich sucht/findet bzw. richtig debuggt

  • Hallo,

    vielen Dank erstmal für die Antworten.


    Was erwartest du? ...
    Debuggen/Fehler suchen läuft darauf hinaus den Fehler zu analysieren, ...
    Dazu muss man sich intensiv mit dem Code auseinandersetzen...


    Was "debuggen" heißt, wissen wir wahrscheinlich beide ;) . Es ging mir nur um die Verfügbarkeit und Verwendbarkeit eines passenden Werkzeugs, das einem die Arbeit erleichtern könnte. Händisch zusätzlichen Code zur Ausgabe von Statuswerten oder Zwischenergebnissen in den zu debuggenden Code einzufügen, halte ich einfach für aufwändiger als das Arbeiten mit einem ECHTEN Werkzeug, wie es der "Autoit Debugger" versucht zu sein. Vorteile wären (Du fragtest, was ich erwarte):

    - keine Notwendigkeit zur Eingabe von zusätzlichem Code um das Debugging durchzuführen
    - dynamische Unterbrechbarkeit des Programmdurchlaufs an beliebiger Stelle
    - Einzelschritt-Modus der Programmabarbeitung sowie Breakpoints und Trigger
    - dynamische Konfigurierbarkeit der Ausgabe beliebiger Variablen und Speicherauszüge
    - ...

    Einfach so, wie es das für andere Programmiersprachen i.d.R. auch gibt (egal, ob kommandozeilenbasiert wie z.B. PDB für Python oder grafisch wie per Eclipse). Die Verwendung eines solchen Debuggers bewahrt mich davor, mein AutoIt-Skript immer und immer wieder von vorn ablaufen lassen zu müssen, mich dann durchzuklicken, bis ich an die fragliche Stelle komme,... dann zu merken, dass ich die Ursache für das merkwürdige Programmverhalten dort nicht in der erwarteten Weise (mit den codierten Print-Ausgaben) finden kann,... dann das ganze nochmal von vorn...

    Ich nehme also mit, dass es für AutoIt kein nutzbares, echtes Debugging-Werkzeug der in diesem Beitrag beschriebenen Art gibt.


    Da kann ich in AutoIt auch DebugMsgboxen oder Consolenausgaben per Tastaturshortcut in den Code eingeben, den Fehler finden und per Shortcut alle wieder loswerden!

    Gibt es zur Einrichtung solcher Tasten-Shortcuts und der entsprechenden Code-Teile bereits nutzbare Anleitungen hier im Forum?

    Danke.
    nnako

  • - keine Notwendigkeit zur Eingabe von zusätzlichem Code um das Debugging durchzuführen

    "nativ" nicht möglich

    - dynamische Unterbrechbarkeit des Programmdurchlaufs an beliebiger Stelle

    überflüssig, da "beliebige" Stellen beim Debugging irrelevant sind.
    Wenn du nicht weißt, nach was und wie du suchen sollst, ist "irgendwo nachschauen ob sich etwas getan hat" unsystematisches rumgestochere.

    - Einzelschritt-Modus der Programmabarbeitung sowie Breakpoints und Trigger

    Funktioniert einwandfrei per Trace. Breakpoints musst du auch in einem "richtigen" Debugger setzen, und ob du jetzt dort per Tastenkombi einen Breakpoint im Code setzt, oder in Scite per Tastenkombination eine Msgbox/Consolenausgabe bleibt der gleiche Aufwand.

    - dynamische Konfigurierbarkeit der Ausgabe beliebiger Variablen und Speicherauszüge

    Variablen und Arrays geht noch, aber bei Listen/Dictionarys, da werden auch "gestandene" Debugger schwach.
    Speicherauszüge nützen auch nur dann, wenn man weiß, wonach man suchen muss!
    Die Anzahl der Anwender eines Debuggers, welche auch noch Speicherinhalte auslesen "müssen", beziffere ich in AutoIt unter 1% !
    Mit Hinblick auf die Zielrichtung von AutoIt, andere Programme "fernzusteuern", (ich gehe davon aus, dass das die Hauptanwendung von AutoIt ausmacht) sind "professionelle" Debugger schlichtweg überflüssig.


    Nicht dass ich hier falsch verstanden werde:
    Ein von den Entwicklern bereitgestellter Debugger ist lange fällig. Allerdings ist es auch fraglich, ob dieser überhaupt benutzt würde! Und das meine ich jetzt mit Hinblick auf die Frage

    Gibt es zur Einrichtung solcher Tasten-Shortcuts und der entsprechenden Code-Teile bereits nutzbare Anleitungen hier im Forum?

    Diese "Shortcuts" sind bereits in Scite enthalten, im Reiter "Extras", wie übrigens im Startpost beschrieben. Über LUA-Scripte ist die Anpassung meist nur Fleißarbeit.
    Ich lehne mich mit Sicherheit nicht weit aus dem Fenster wenn ich behaupte, dass 90% der AutoIt-Anwender nicht mal wissen, welche Befehle dort hinterlegt sind und was diese bewirken. Das sieht man anhand der Fragestellung in sämtlichen Foren, unformatierten Code zu posten, obwohl Tidy nur einen Tastenschlag entfernt ist...

    @nnako, schau dir doch die AutoIt-Debugger an, ggf. sind diese für dein Vorhaben schon ausreichend!
    Im "blauen" Forum wirst du fündig. Ggf. hast du selbst Intentionen an solch einem Projekt mitzumachen oder auch nur "kleine" Verbesserungen/Scripte zur Hilfe fürs Debugging zu schreiben :thumbup:

  • Haha, dein Beitrag ist zwar schon älter, aber finde die Möglichkeiten klasse. :D
    Ich habe selbst bisher meine Variablen immer über eine einfache MsgBox ausgeben lassen wenn ich mal nicht weiter wusste, oder wissen wollte welchen Wert ich gerade in meiner "$xy" habe.
    Habe hier noch einiges dazu gelernt, Danke. :thumbup: