购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.1
程序调试方法

集成开发环境(Integrated Development Environment,IDE)是用于提供程序开发环境的应用程序,是一个集成了代码编写功能、分析功能、编译功能、测试功能、调试功能的软件开发工具集,一般包括代码编辑器、编译器、调试器和图形用户界面等工具。“工欲善其事,必先利其器”。显然,高效便捷、得心应手的集成开发环境将有助于提高编码和调试的效率,改善编程体验。通常,安装集成开发环境时,除了安装编译器外,还要安装调试器,以支持程序的调试。常用的调试方法包括设置断点(Breakpoint)、单步跟踪、监视窗。

设置断点,是指设置程序运行时希望暂停的代码行。断点所在行的代码是指下一行将要被执行的代码,称为当前代码行。可以在一个程序中设置多个断点,每次运行到断点所在的代码行时,程序就会暂停执行。例如,将某一行代码设置为断点后,则程序运行到这一行代码时将暂停运行,断点所指向的语句行不会被执行,而是下一步待执行的语句行。设置断点的目的是为了方便我们观察程序在执行完该断点前的所有语句后的变量和参数值的变化情况,以便查找或排除程序出现异常的原因。

通常将设置断点与单步跟踪配合使用。例如,当程序暂停到断点处以后,如果希望断点后面的代码逐条语句或逐个函数地执行,即每执行完一条语句或一个函数,程序就暂停执行,以便逐条语句或逐个函数检查程序的执行结果,那么就需要对程序进行单步跟踪。对程序进行单步跟踪执行有如下6种选择。

(1)单步执行(Step over):执行一行代码,然后暂停。当存在函数调用语句时,使用单步执行会把整个函数视为一次执行(即不会进入该函数中去执行函数内部的语句),直接得到函数调用结果。该方式常用在多模块调试时期,可以直接跳过已测试完毕的模块,或者直接通过函数执行后的值来确定该测试模块中是否存在错误。

(2)单步进入(Step into):如果此行中有函数调用语句,则进入当前所调用的函数内部执行,并在该函数的第一行代码处暂停;如果此行中没有函数调用,其作用等价于单步执行。该方式可以跟踪程序的每步执行过程,优点是容易直接定位错误,缺点是调试速度较慢。所以通常先进行单步执行来快速跳过没有出现错误的部分,在锁定发生错误的模块后再使用单步进入来跟踪进入函数内部找出错误所在的行。单步进入一般只能进入用户自己编写的函数。如果编译器提供了库函数的代码,也可以跟踪到库函数里执行。

(3)运行出函数(Step out):如果只想调试函数中的部分代码,调试完后就跳出该函数,则可以使用该方法。

(4)运行到光标所在行(Run to cursor):将光标定位在某行代码上并调用该命令,程序会执行直到抵达断点或光标定位的那行代码时暂停。如果我们想重点观察某一行(或多行)代码,但不想从第一行启动,也不想设置断点时,则可以采用这种方式。这种方式比较灵活,可以一次执行一行,也可以一次执行多行;可以直接跳过函数,也可以进入函数内部。

(5)继续运行(Continue):继续运行程序,当遇到下一个断点时暂停。

(6)停止调试(Stop):程序运行终止,停止调试,回到编辑状态。

当程序暂停时,如何观察变量的值呢?监视窗往往用来和前两种调试方法配合使用,每运行到需要观察的语句行时,就可以用监视窗来查看某个变量的当前值,以观察程序执行了哪些操作,以及执行这些操作后产生了哪些结果。因此,通过观察变量的值的变化可以方便地找出程序中的错误。 otN6j1YRFtDnh+GoIZw4jgh1AHvKQyHfjo2h/LWrGIPEW1rQbQqXLB+24JNRfS3E

点击中间区域
呼出菜单
上一章
目录
下一章
×

打开