3.6 程序调试的进一步说明
在含有选择结构和循环结构的程序出错的概率要比只含简单的顺序结构的程序出错的概率大得多。在完成了程序设计的步骤之后,无论多大的一个程序,在第一次运行时都很难通过。假如我们创建了一个程序并调试它,只发现这个程序的输出是错误的。我们怎样找到这些错误并修改它呢?
一旦程序包含了循环和选择结构,找到错语的最好的方法是应用matlab支持的符号调试器(symbolic debugger)。这个调试器将会整合到matlab编辑器中。
图3.13 matlab的编辑/调试窗口
应用这个调试器,首先应该选择“file/open”打开你在MATLAB命令窗口中要调试的程序。当一个文件被打开,编辑器就加载了这个文件,代码根据语法的不同出现不同的颜色。在这个文件中评论显示为绿色,变量和数字显示为黑色,字符串显示为红色,语言的关键字显示为蓝色。图3.13向大家展示的是含有文件calc_roots.m的编辑/调试窗口。
当一个程序执行时,我们想知道什么事情发生了。为了达到此目的,我们可以用鼠标右击你所关心的行并选择”set/clear breakpoint”选项。当一个断点被设置后,一个红色的点将会出现在行的左边,如图3.14所示。
图3.14 这个窗口断点已设置
一旦这些断点被设置,在命令窗口键入calc_roots将会像往常一样执行这个程序。这个程序将会运行到第一个断点并在那里停止。在调试的过程中将会有一个绿色的箭头将会出现在当前行。如图3.15所示。
一旦到达某个断点程序员可以通过在命令窗口中键入变量名的方法检查或修改在工作区内的任一变量。当程序员对程序的这一点感到满意时,可以通过重复按F10一行一行调试,也可以按F5运行到下一个断点。它总是能检测程序中的每一个断点中的任何一个变量的值。 调试器的另处一个重要特性是可在Breakpoints菜单中找到。这个菜单包括两个项目:“stop if Error”和“stop if warning”。如果程序中发生了一个错误,这个错误导致了电脑死机或产生了错误信息,程序员可以打开这些选项,并执行这个程序。这个程序将会运行到错误或警告的断点并停在那儿,它允许程序员检查变量的每一个值,并帮助找出出错的原因。当一个错误被发现,程序员能用编辑器来更正这个MALTAB程序,并把更新的版本存到磁盘上,在调试没结束之前,它必须重复以上的动作。这个步骤将会重复下去直到这个程序没有错误出错。
现在花一定的时间来熟悉这个调试器——这是值得的。
图3.15 在调试的过程中一个绿色的小箭头将会出现在当前行的左侧
|