c语言中程序调试方法,C语言程序调试方法简介.doc

C语言程序调试方法简介

错误的类型

(1) 语法错误:拼写错,括号不匹配,漏写分号,…。对于查出的错误(Error)必须排除,否则程序无法运行;而警告(Warning)则应根据情况处理,否则可能产生运算误差等。

(2) 逻辑错误:编译无误,有时也有执行结果,但结果不符合题意。例如scanf的参数中漏写地址符,if语句、for语句花括号位置错误等,都会导致此类错误。

(3) 运行错误:运行结果错误也可能是由于输入数据错误、类型不匹配等造成的。例如用户没有按照scanf规定的格式输入数据就会造成此类错误。

查错的方法

(1)静态检查:人工检查,程序的结构、各函数间的调用关系,拼写检查。

(2)编译程序:由C编译系统对程序进行查错,根据错误提示找出错误的位置并改正。注意提示的出错行未必是真正出错的行,常需要向上面的行寻找;而且系统指出的错误类型也未必是真正的错误,需要分析,不能停留在字面上。代码中有一个错误时,可能产生一大批编译错误,应从上到下逐一改正,修改一两个后再次编译。

(3)排除语法错误后,运行程序,输入数据,得出结果,还应对结果进行分析,看是否符合要求。要准备一些测试数据,有意识地检查结果的正误。

(4)若运行结果错误,通常由于程序中存在逻辑错误,应对照流程图检查算法逻辑。

(5)对于怀疑出错的地方,添加一些printf函数输出某些变量的值,以找到出错的程序段,缩小查错范围。

程序的测试

通过输入预先准备的数据,找出程序不能正常运行的情况和原因。

例如解一元二次方程的程序,就应输入以下几组数据进行测试,并验算结果:

1,2,1 —— 两个相等的实数解

2,4,2 —— 与上面一组系数的解相同

4,2,1 —— 提示无实数解,或求出复数解

1.5,-6.83,2.12 —— 看程序对于实数系数能否正确地输入及运算

0,1,2 —— 一元一次方和,一个解

0,0,5 —— 无解

0,0,0 —— 任意实数解

VC++中常用的程序调试工具

VC++6.0提供单步运行、断点跟踪等工具,帮助程序员查错。

使用功能键或相应的菜单项进行操作:

F9:在当前光标所在行设置断点(Breakpoint,再次使用则取消当前行已有断点),见图1。

图1 断点

F5(Go):调试状态运行程序,程序执行到有断点的地方停下。见图2。

此时左下角的变量窗口(Variables)显示当前的变量值。

如果在右下角的察看窗口(Watch)输入变量名,则可监控该变量值的变化。

图2 运行到断点处,变量窗口,察看窗口

F10(Step Over)或F11(Step Into):单步执行程序。

F11和F10的区别:如果当前执行语句是函数调用,则F11会进入被调用函数里面。

CTRL+F10:运行到光标所在行。

SHIFT+F11跳出当前所在函数。

Shift + F5(Stop Debugging):停止调止状态。

在调试状态,系统会出现Debug(调试)工具箱。其中包括了上面提到的功能的工具按钮。

单步运行调试的基本步骤:

(1) 保存C或C++文件。

(2) 根据断点调试找到错误处。

(3) 采用F10或F11单步调试找到精确的错误处。可先用F10,确定函数输入输出是否与预想的一致;如不相符,则用F11进入函数体一步一步调试。

(4) 调试过程中,需要监视程序中变量值的变化。VC++6.0的Variables和Watch窗口,就用来设置监视变量。在调试过程中,鼠标轻轻放在变量上(不用单击)也会显示该变量的值。

展开阅读全文

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值