第十章 调试
10.1 错误类型
有几种原因会造成程序的缺陷,针对每种原因,都有下面的一些建议的方法来查找和纠正
功能定义错误:如果程序的功能被错误地定义了,它就肯定不能够完成预定的工作.所以在开始程序设计之前,必须确认知道并理解这个程序究竟是用来干什么的.认真分析用户需求并加强和用户之间的沟通,有助于查找和纠正许多程序功能定义方面的错误.
设计规划错误:无论程序规模的大小,在创建它们之前都需要设计规划.对程序员来说,一定要多花点时间思考:如何构造程序,需要什么样的数据结构,它又应该如何在程序中使用.
代码编写错误:在程序遇到错误时,要重新阅读源代码或与其他人进行探讨.
10.2 常用调试技巧
目前有几种典型的调试和测试linux程序的方法.一般做法是先运行程序并观察其输出结果,如不能正常运行,就需要决定应该采取哪些措施.可以修改程序然后重新尝试(代码检查--试运行--出错法),也可以在程序中增加一些语句来获得更多关于程序内部运行情况的信息(取样法),还可以直接检查程序的执行情况(受控制法).程序调试可以分为如下5个阶段:
测试:找出程序中存在的缺陷或错误
固化:让程序的错误可重现
定位:确定相关的代码行
纠正:修改代码纠正错误
验证:确定修改解决了问题
10.1 错误类型
有几种原因会造成程序的缺陷,针对每种原因,都有下面的一些建议的方法来查找和纠正
功能定义错误:如果程序的功能被错误地定义了,它就肯定不能够完成预定的工作.所以在开始程序设计之前,必须确认知道并理解这个程序究竟是用来干什么的.认真分析用户需求并加强和用户之间的沟通,有助于查找和纠正许多程序功能定义方面的错误.
设计规划错误:无论程序规模的大小,在创建它们之前都需要设计规划.对程序员来说,一定要多花点时间思考:如何构造程序,需要什么样的数据结构,它又应该如何在程序中使用.
代码编写错误:在程序遇到错误时,要重新阅读源代码或与其他人进行探讨.
10.2 常用调试技巧
目前有几种典型的调试和测试linux程序的方法.一般做法是先运行程序并观察其输出结果,如不能正常运行,就需要决定应该采取哪些措施.可以修改程序然后重新尝试(代码检查--试运行--出错法),也可以在程序中增加一些语句来获得更多关于程序内部运行情况的信息(取样法),还可以直接检查程序的执行情况(受控制法).程序调试可以分为如下5个阶段:
测试:找出程序中存在的缺陷或错误
固化:让程序的错误可重现
定位:确定相关的代码行
纠正:修改代码纠正错误
验证:确定修改解决了问题