Chinaunix首页 | 论坛 | 博客
  • 博客访问: 11372
  • 博文数量: 6
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 82
  • 用 户 组: 普通用户
  • 注册时间: 2013-03-20 17:17
文章分类
文章存档

2013年(6)

我的朋友

分类: IT职场

2013-04-26 15:07:53


的技术调试(debugging)是指去掉程序中的错误(通常被称为bugs)的过程。一个错误可能非常简单,例如拼错一个单词或者漏掉一个分号;也可能比较复杂,例如使用一个指向并不存在的地址的指针。无论错误的复杂程度如何,掌握正确的调试方法都能使程序员受益匪浅。

   
    当你运行一个程序时会有多种原因使它挂起,这些原因可以分为以下4种基本类型:
    (1)程序中有死循环;
    (2)程序运行的时间比所期望的长;
    (3)程序在等待某些输入信息,并且直到输入正确后才会继续运行;
    (4)程序设计的目的就是为了延迟一段时间,或者暂停执行。
    在讨论了因未知原因而挂起的程序的调试技巧后,将逐个分析上述的每种情况。
    调试那些因未知原因而挂起的程序是非常困难的。你可能花费了很长的时间编写一个程序,并努力确保每条代码都准确无误,你也可能只是在一个原来运行良好的程序上作了一个很小的修改,然而,当你运行程序时屏幕上却什么也没有显示。如果你能得到一个错误的结果,或者部分结果,你也许知道应该作些什么修改,而一个空白的屏幕实在令人沮丧,你根本不知道错在哪里。
    在开始调试这样一个程序时,你应该先检查一下程序结构,然后再按执行顺序依次查看程序的各个部分,看看它们是否能正确运行。
    例如,如果主程序只包含3个函数调用——A()、B()和C(),那么在调试时,你可以先检查函数A()是否把控制权返回给了主程序。为此,你可以在调用函数A()的语句后面加上exit()命令,也可以用注释符把对函数B()和C()的调用括起来,然后重新编译并运行这个程序。

    注意:通过调试程序(debugger)也可以做到这一点,然而上述方法是一种很传统的调试方法。调试程序是一个程序,它的作用是让程序员能够观察程序的运行情况、程序的当前运行行号、变量的值,等等。

    此时你将看到函数A()是否将控制权返回给了主程序——如果该程序运行并退出,你可以判断是程序的其它部分使程序挂起。你可以用这种方法测试程序的每一部分,直到发现使程序挂起的那一部分,然后集中精力修改相应的函数。
    有时,情况会更复杂一些。例如,使程序挂起的函数本身是完全正常的,问题可能出在该函数从别的地方得到了一些错误的数据。这时,你就要检查该函数所接受的所有的值,并找出是哪些值导致了错误操作。


阅读(310) | 评论(0) | 转发(0) |
0

上一篇:平台编译预处理

下一篇:杏彩平台简介

给主人留下些什么吧!~~