fdxok 发表于 2012-7-11 10:32:16

请教au3调试问题

是用scite编写au3代码时,没有找到单步调试。只能打印msgbox很不方便,请教有没有好的办法进行单步调试。谢谢

shqf 发表于 2012-7-11 13:15:09

本帖最后由 shqf 于 2012-7-11 13:16 编辑

我的方法是先把光标移到想要查看的变量前,再根据变量类型在 “工具”菜单下点击“添加调试数组信息”、“添加调试对话框信息”或“添加控制台调试信息”,Scite会自动输入相应语句。之后点击“移除调试信息”可移除全部的调试信息。

xiehuahere 发表于 2012-7-12 12:37:51

本帖最后由 xiehuahere 于 2012-7-12 12:42 编辑

回复 1# fdxok


不能设置断点的确不方便,毕竟现在连VBS都可以设置断点调试了(当然,需要Windows Script Debugger的支持)。

我总结的几种au3调试方法:
1. MsgBox 函数给出弹窗。
2. ConsoleWrite 函数打印到控制台。调试信息中可酌情加上行号打印@ScriptLineNumber以及时间戳信息等等。
3. 用_FileWriteLog函数写log文件。
4. 脚本开头添加 Opt("TrayIconDebug", 1),即设置鼠标指向au3托盘图标时通过traytip方式显示当前正在执行的代码行。前提是没有使用 #NoTrayIcon。
5. 脚本开头添加 #AutoIt3Wrapper_Run_Debug_Mode=Y,会在执行时打印所有代码执行信息到控制台(注意:如果有长时间的循环,信息会很多)。
6. 使用自定义的debug函数,在运行时通过DebugView工具查看调试信息(见如下示例),DebugView工具会自己打印时间戳。$var = 11
dbg("The value of the variable at this time is " & $var)
Sleep(3000)
$var = 22
dbg("The value of the variable at this time is " & $var)
Func dbg($msg)
        dllCall("kernel32.dll", "none", "OutputDebugString", "str", $msg)
EndFunc
页: [1]
查看完整版本: 请教au3调试问题