通常,程序中存在的错误和问题并不明显,不容易被确定,只能估计问题可能出在某个代码段中。这时,需要逐条执行指令,分步查看执行结果,这就是单步跟踪,也称单步执行。一次只执行一条语句,每执行完一条语句,可以通过立即窗口查看执行结果。下面用实例说明单步跟踪的用法。
【例2-2】输入三角形的3条边长,计算三角形周长。
设计好的界面如图2-10所示。编写的代码如下。
这里假设不考虑分支程序,默认为用户输入的3个边长能构成三角形。
代码中,变量a,b,c分别用来保存3个边长,变量d用来保存周长,用Label4标签控件显示结果。上述代码假设由于键盘输入错误,将输出语句中的变量d写成了dd,导致运行没有结果,如图2-11所示。
图2-10 计算周长
图2-11 没有运行结果界面
下面用单步跟踪方法查看错误出在哪里。
1)在设计模式下,按下<F8>键或执行菜单命令“调试”→“逐语句”(不要单击工具栏中的“启动”按钮),进入单步执行状态。当程序运行并显示操作界面后,与正常运行模式下的操作一样,输入数据,单击“计算”按钮。这时,系统会自动进入代码窗口,开始单步跟踪模式,如图2-12所示。代码窗口中突出显示的语句,并且其左侧有箭头指向,表示该语句为系统准备执行但未执行的语句。
2)按下并释放<F8>键一次,系统就会运行箭头所在行,而后箭头移向下一条该执行的语句。
不要按住<F8>键不放,否则,系统会一直向下运行直到运行完毕,这样就失去了跟踪的意义了。跟踪的目的就是要检查每条语句的执行情况,检查每条语句执行后每个变量值的变化是不是我们所预期的,检查程序是不是按着我们所设想逻辑顺序去执行。
在这里,按下并释放<F8>键一次,系统会跳过定义语句,定位到如图2-13所示位置,这时把鼠标指针放到变量a的上面,系统会显示变量a的值,这个值是该语句执行前的值。(www.xing528.com)
图2-12 单步跟踪1
图2-13 单步跟踪2
一般鼠标指针移到变量或对象属性名称上时都会显示该变量的值或该对象的属性值。
查看变量值:如果移动鼠标指针到Text1.Text上,系统会显示Text1文本框中的值3。
查看一个表达式的值:要查看表达式a+b+c,可以先选定该表达式,然后将鼠标指针放到该表达式上,系
统会显示该表达式的计算结果。
图2-14 立即窗口
这是一个非常有用的方法,可以在每条语句执行前后分别检查变量值的变化,帮助发现错误。
还有另外一个方法就是用立即窗口查看变量和表达式的值。在单步跟踪模式下,打开立即窗口,在窗口中输入?a,按下<Enter>键,则系统显示a变量的值。同样,要显示表达式的结果也一样,输入?a+b+c后按下<Enter>键,系统将显示a+b+c表达式的值,如图2-14所示。
3)用上述方法,多次按下并释放<F8>键,检查语句a=Text1.Text、b=Text2.Text、c=Text3.Text、d=a+b+c都没有错误,周长存放在变量d中。既然结果计算正确,可以断定是输出语句有问题,所以接下来检查语句“Label4.Caption="周长为:"&dd”。当运行到这条语句时,用鼠标指针指向该表达式中的变量dd,系统会提示“dd=空值”,这时就会发现原来是变量输入错误。
到此,错误找到了。当然,这里只是一个很简单的例子,在实际开发系统过程中,错误种类很多,但是基本跟踪方法是一样的。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。