AutoIt Debugger
AutoIt Debugger is a graphical debugger for AutoIt. The AutoIt forum page for the Debugger is located here and contains many screen shots and user comments.
Downloads:
| Download | Version | Date | Link |
|---|---|---|---|
| AutoIt Debugger Setup | v0.45.0 | - | N/A |
| AutoIt Debugger Source | v0.44.3 | - | N/A |
Features:
* Debug code added automatically to the script being debugged.
* Displays next line to be executed.
* Breakpoints (using the checkbox next to each line).
* Variable monitoring, including @error and @extended.
* Variable value modification at runtime.
* Single step, step over and run modes.
* Debugging of #include files.
* Supports the command line arguments.
* Some script editing functions.
* Portable version (still needs .Net 2.0 on machine running the debugger).
* Freeware. AutoIt Debugger is free.
Help:
Online help is available here.
Required:
* Microsoft .Net Framework v2.0.
Not supported (this may change in the future)/What it will not do:
* You cannot debug code that is using the OnAutoItExit function.
* Variable monitoring of HWnd, Object, BinaryString and keyword data types is not supported.
How to debug a script:
* Click 'AutoIt Debugger' from the 'Programs\AutoIt v3\AutoIt Dubugger' program group under the Start menu. An open file dialog will appear so that you can select your script. Once the dubug script has been created, you will be prompted to run the script. Running the script starts the debugger. You will be prompted to close the debugger once the script has finished.
* To run from the command line, or to debug a script that has command line arguments, run the 'AutoIt Debugger' file from the installation folder with the script name as the first argument. Any additional command line arguments will be passed to the debug script when it runs.
Operational notes:
* After first installing the program, first debug the 'Test Script.au3'. If the program does not work with this file, it definatley will not work with any other file. This is a quick and easy way to find out what the program can do.
* If you run the debugger with an old version of AutoIt, an error message about '$oDebugWrapper.ExitProgram' may appear. If this is the case, get the latest AutoIt beta, or make sure that you are running the program with the beta version, not the release version, if you have v3.1.1.100 or later. I have made this mistake many times before!
* To view this webpage from within the program (to get any latest instructional changes), click 'Show Web Help' from the Help menu.
* When debugging programs with GUIs, single stepping the program will take you round a never ending message loop. It is better to set breakpoints for the messages that you want to capture and run the code instead of single stepping.
* When modifying loops, the debugger will only stop at the start of the loop on the first pass. On later passes, the debugger jumps directly to the first line inside the loop. To modify the loop's variable, change the variable before the debugger jumps back to the start of the loop.
* Note that running with system #include files significantly reduces the speed at which the debug file is created. This is something that I need to look into.
How it works:
* Running the debug preparer adds a bunch of extra code into your script. The included script creates the code to interface with the debugger using Windows Messaging.
Screen shot:
Referring to the graphic:
* The user's script is displayed on the left hand side. There are seperate tabs for each #include file.
* The check boxes allow a breakpoint to be set or removed for each line. The line to be executed next is shown highlighted (in faint grey).
* The right hand side shows all the variables and values used so far in the script. Values that changed since the last step are in red. Double clicking on a variable allows you to change its value.
* There are buttons to run the script until a breakpoint is hit, single step through the script, or single step through the script jumping any calls to functions.
Change highlighting:

Other:
Comments, bugs and requests can be made in the Forum.
There is also a topic on the AutoIt script forum.