按键精灵吧 关注:500,115贴子:1,025,117
  • 5回复贴,共1

分享一些常用的调试技巧

只看楼主收藏回复

不管是自己写代码还是学习他人代码总有用到调试功能的时候,如果此时知道一些代码调试上的技巧那么将节省很多时间~下边介绍两种常用的调试方法,希望对新手有帮助,我也是新手,一起进步!


IP属地:广东1楼2022-04-02 10:58回复
    一、加入输出语句
    比如下方的代码,思路是不断重复执行找色命令A在目标范围内找色,找到后责继续执行找色命令B,命令B找到颜色之后修改canshu1变量为0,使循环条件不成立。
    如果在调试此代码的时候发现循环一直在进行,如何判断是哪个命令出了问题导致无法退出循环呢?
    Dim canshu1
    canshu1 = 1
    Do
    //找色命令A
    FindColorEx 0,0,1024,768,"3AF7B9",0,0.9,intX,intY
    If intX > 0 And intY > 0 Then
    Delay 100
    //找色命令B
    FindColorEx 0,0,1024,768,"000DBA",0,0.9,intX,intY
    If intX2 > 0 And intY2 > 0 Then
    canshu1 = 0
    End If
    End If
    Delay 200
    Loop While canshu1 = 1


    IP属地:广东2楼2022-04-02 11:00
    回复
      2025-06-05 18:35:30
      广告
      此时可以在相关判断语句中使用TracePrint 调试输出语句来提示语句运行结果:
      Dim canshu1
      canshu1 = 1
      Do
      //找色命令A
      FindColorEx 0,0,1024,768,"3AF7B9",0,0.9,intX,intY
      If intX > 0 And intY > 0 Then
      TracePrint "命令A找到颜色"
      Delay 100
      //找色命令B
      FindColorEx 0,0,1024,768,"000DBA",0,0.9,intX2,intY2
      If intX2 > 0 And intY2 > 0 Then
      TracePrint "命令B找到颜色"
      canshu1 = 0
      Else
      TracePrint "命令B找色失败"
      End If
      Else
      TracePrint "命令A找色失败"
      End If
      Delay 200
      Loop While canshu1 = 1


      IP属地:广东3楼2022-04-02 11:01
      回复
        运行上面代码之后我们可以从调试信息中了解到找图命令A找到颜色,而找图命令B找色失败了,知道了这个就可以修改命令B内的参数,从而解决命令B找不到颜色的问题。


        IP属地:广东4楼2022-04-02 11:02
        回复
          二、使用“变量查看”功能配合单步调试功能
          1、同样是刚才的代码,在进入调试状态后,我们在变量查看窗口中从上到下依次设置两个找色命令的输出值:intX、intY、intX2、intY2。
          2、点击单步或者步过按钮,多点几下会发现一个深色色块背景在编辑框内移动,没错,此色块就是指示代码运行到此处了。
          3、当运行过命令A之后能看到intX跟intY的值变了。从变量值来看可以得知命令A找色成功并且成功得到坐标254,14
          4、继续点击单步或步过按钮,当运行过命令B之后发现intX2跟intY2的值也变了。
          intX2跟intY2的值都为-1,说明命令B找色失败,从而可以对症下药,修改命令B内的找色范围、颜色值或者相似度来解决找不到颜色的问题。
          如果大家有什么特别好的调试技巧欢迎跟帖分享!!


          IP属地:广东5楼2022-04-02 11:07
          回复
            本来还有配一些图的,但不知道为啥图片上传不了


            IP属地:广东6楼2022-04-02 11:19
            回复