AutoHotkey Webinar: 17/01/2017: Troubleshooting and Debugging

AutoHotkey Webinar Videos and Links

  • Here is a link to video of the First hour
  • Video of Second hour where we chit-chat about troubleshooting and other items.

Link to AutoHotkey Webinar resources:

Resources covered during AutoHotkey webinar

Script highlight Lintalist – Searchable interactive lists to copy & paste text with plugins.  GitHub

General Advice

1.Annotate -Document / Add Comments for later review (Very helpful in long-run)

2.Modularization – Compartmentalize – Design code smartly so each “section” does one thing

3.Test Frequently

  • Depending on your skill level, don’t make too many changes before re-running your script (the more experienced you are, the more changes you can make)
  • ; Comment out old lines so you have backups of what was close

4.Take a break – Similar to proof-reading, taking a break can help you spot your own errors

5.Bobble-Head doll / Teddy Bear / Rubber Duck

  • Clearly Explain the issue out loud to inanimate object
  • Ask friend for help (preferably some programming experience but not necessary)

6.Search the AHK forum & StackOverflow

7.Post question to forum:

  • Isolate issue & give example code / data / needed functions
  • Explain circumstances in graphic detail causes of issue & what you experience
  • Include Screenshots / Animated gif / Video if possible (this can help a lot)

Provide as much relevant data as possible (ver & bitness of AHK, Windows, other software, Hardware, etc.)

Troubleshooting Tools

Built-in Commands

  1. Message box / TooltipsDisplay values / pause script
  2. Error LevelSuccess / failure of a command
  3. Try / Catch / Throw
  4. ListVarsDisplays the script’s variables: their names and current contents.
  5. ListLinesView Lines most recently executed
  6. ListHotKeysDisplays the hotkeys in use by the current script
  7. KeyHistoryThis shows history of most recent keystrokes & mouse clicks
  8. IsObject()This function returns 1 if Object Value is an object; otherwise 0.
  9. OutPutDebugFor use in debugging- sends strings to display

Additional Tools

  1. dmp, DispFunctions for peaking inside objects
  2. Debug Clientstools you can tie to AHK & debugging
  3. AHK StudioBuilt-in debugging
  4. SciTE4AutoHotkey Videos & scripts demonstrating debugging with SciTE

Tips on General Approach

  1. Restart script & Computer (come on its windows…)
  2. Isolate the issue
    1. look immediately before and after where the issue is
      1. Use Message Box, ListVars, etc.
      2. Double-click icon & access ListVars, Key History, etc.
  3. Are you sure the error is where you think it is?
  4. Are you sure the variable is unique?
  5. Check scope issues (global vs. local)
  6. Data type / structure (String vs. Integer, Object, etc.)

Leave a Reply