,使程序能正常运行.编译系统能检查程 序的语法错误.语法错误分为两类:一类是致命错误,以 error 表示,如果程序中有这类错 误,就通不过编译,无法形成目标程序,更谈不上运行了;另一类是轻微错误,以 warning 表示,这类错误不影响生成目标程序和程序的执行,但可能影响运行的结果,因此也应当改 正,使程序既无 error,也无 warning.
图 0-9 在图 0-9 下方的调试窗口中可以看到编译的信息,指出源程序有 1 个 error 和 0 个 warning.用鼠标移动调试窗口右侧的滚动条,可以看到程序出错的位置和性质.用鼠标双 击调试信息窗口的报错行, 则在程序窗口中出现一个粗箭头指向被报错的程序行, 提示出错 的位置.根据出错内容提示信息(
missing ';' before '}'),经检查程序,发现在程序第 4 行的 末端漏写了分号.注意,在分析编译系统错误信息
报告时,要检查出错点的上下行.当所有 出错点均改正后,再进行编译调试, 直至编译信息为:0 error(s),0 warning(s)表示编译成功. (1)程序执行到中途暂停以便观察阶段性结果 方法一:使程序执行到光标所在的那一行暂停. ① 在需暂停的行上单击鼠标,定位光标;
② 如图 0-10 所示,选择菜单"编译/开始调试/Run to Cursor",或按
,程 序将执行到光标所在行会暂停.如果把光标移动到后面的某个位置,再按,程序 将从当前的暂停点继续执行到新的光标位置,第二次暂停.
图 0-10 执行到光标所在行暂停
方法二:在需暂停的行上设置断点; ① 在需设置断点的行上单击鼠标,定位光标; ② 按
"编译微型条"中最右面的按钮 ,或按设置断点.被设置了断点的行前
面会有一个红色圆点标志. (2)设置需观察的结果变量 按照上面的操作,使程序执行到指定位置时暂停,目的是为了查看有关的中间结果.在 如图 0-11 中,左下角窗口中系统自动显示了有关变量的值,其中 a 和 b 的值分别是 5,6, 而变量 c,d 的值是不正确的,因为它们还未被赋值.图中左侧的箭头表示当前程序暂停的 位置.如果还想增加观察变量,可在图中右下角的"Name"框中填入相应变量名.
图 0-11 观察结果变量
(3)单步执行 当程序执行到某个位置时发现结果已经不正确了, 说明在此之前肯定有错误存在. 如果 能确定一小段程序可能有错, 先按上面步骤暂停在该小段程序的头一行, 再输入若干个查看 变量,然后单步执行,即一次执行一行语句,逐行检查下来,观察错误发生在哪一行. 当程序运行于 Debug 状态下时,程序会由于断点而停顿下来.原来的"编译"菜单也 变成了"Debug"菜单,如图 0-12 所示. 运行当前箭头指向的代码即单步执行按【 Step Over】按钮或;如果当前箭头所 Step Into】按钮或;
指的代码是一个函数的调用,想进入函数进行单步执行,可按【
如果当前箭头所指向的代码是在某一函数内, 想结束函数的单步执行, 使程序运行到函数返 回处, 可按 【 Step Out】 按钮或. 对不是函数调用的语句来说, 与
作用相同.但一般对系统函数不要使用.
图 0-12 "Debug"菜单
(4)断点的使用 使用断点可以使程序暂停.但一旦设置了断点,每次执行程序都会在断点上暂停.因此 调试结束后应取消所定义的断点. 方法是: 先把光标定位在断点所在行, 再按 "编译微型条" 中最右面的按钮 或,该操作是一个开关,按一次是设置,按二次是取消设置.如果
有多个断点想全部取消, 可执行 "编辑" 菜单中的 "断点" 菜单项, 屏幕上会显示 "Breakpoints" 窗口,如图 0-13 所示,窗口下方列出了所有断点,按"Remove All"按钮,将取消所有断 点. 断点通常用于调试较长的程序,可以避免使用"Run to Cursor"(运行程序到光标处暂 停)或功能时,经常要把光标定位到不同的地方.而对于长度为上百行的程序, 要寻找某位置并不太方便. 如果一个程序设置了多个断点,按一次执行键会暂停在第一个断点,再按一 次会继续执行到第二个断点暂停,依次执行下去.
图 0-13 取消所有断点
(5)停止调试 使用"De