程序调试
- 格式:doc
- 大小:194.01 KB
- 文档页数:16
程序调试和错误解决的方法与技巧程序调试是软件开发中不可或缺的一个环节,它可以帮助开发者发现和解决程序中的bug和错误,确保程序的质量和稳定性。
程序调试需要一定的方法和技巧,本文将就程序调试和错误解决的方法与技巧进行详细介绍。
一、程序调试的重要性程序调试是软件开发中的一个非常重要的环节,它决定了最终产品的质量和稳定性。
程序中的bug和错误可能会导致程序崩溃或者产生不正确的结果,从而影响用户体验和产品的形象。
因此,及时发现和解决bug和错误对于保证软件的质量至关重要。
二、程序调试的方法1.打印调试打印调试是最简单有效的调试方法之一。
开发者可以在程序中加入一些打印语句,输出程序的执行状态和关键变量的数值。
通过打印调试可以很快发现程序中的问题,具有较高的实时性。
但是打印调试可能会导致程序输出过多的信息,不便于分析和定位问题。
2.断点调试断点调试是一种比较直观的调试方法。
开发者可以在程序中设置断点,当程序执行到断点处时就会停下来,可以查看程序的当前状态和变量的数值。
通过断点调试可以更加清晰地观察程序的执行流程和变量的变化,有助于快速定位问题。
但是断点调试需要开发者花费较多的时间和精力来设置和管理断点,对程序的运行速度有一定的影响。
3.单步调试单步调试是一种逐行执行程序的调试方法。
开发者可以一步一步地执行程序,观察每一步的执行结果和变量的变化。
通过单步调试可以清晰地了解程序的执行流程,及时发现和解决问题。
但是单步调试需要开发者花费较多的时间和精力,不适用于大规模的代码调试。
4.异常捕获异常捕获是一种通过捕获程序抛出的异常来进行调试的方法。
开发者可以在程序中加入异常处理的代码,当程序出现异常时就可以捕获异常并进行相应的处理。
通过异常捕获可以很快地发现程序中的问题,有助于保证程序的稳定性。
但是异常捕获需要开发者对程序的执行流程有一定的了解,不适用于对程序整体的调试。
5.使用调试工具调试工具是一些专门用来辅助程序调试的软件,如IDE中的调试器、代码覆盖率工具、检查内存泄漏的工具等。
实验名称:程序调试实验实验日期:2023年3月15日实验地点:计算机实验室实验目的:1. 理解程序调试的基本概念和流程。
2. 掌握使用调试工具进行程序调试的方法。
3. 提高解决程序错误的能力。
实验环境:1. 操作系统:Windows 102. 编程语言:Python3.83. 调试工具:PyCharm实验内容:本次实验主要针对一个简单的Python程序进行调试,该程序实现了一个简单的计算器功能。
程序中存在一些错误,需要通过调试找出并修正。
一、实验步骤1. 编写程序首先,编写一个简单的Python程序,实现以下功能:- 输入两个整数- 计算并输出它们的和、差、积、商代码如下:```pythondef calculator():num1 = int(input("请输入第一个整数:"))num2 = int(input("请输入第二个整数:"))sum = num1 + num2difference = num1 - num2product = num1 num2quotient = num1 / num2print("和:", sum)print("差:", difference)print("积:", product)print("商:", quotient)calculator()```2. 运行程序运行程序,输入两个整数,观察输出结果。
3. 调试程序在运行程序的过程中,可能会发现以下错误:(1)输入非整数时,程序会报错。
(2)当第二个整数输入为0时,程序计算商会报错。
针对以上错误,进行如下调试:(1)使用try-except语句捕获输入错误,确保程序不会因为输入错误而崩溃。
修改后的代码如下:```pythondef calculator():try:num1 = int(input("请输入第一个整数:"))num2 = int(input("请输入第二个整数:"))sum = num1 + num2difference = num1 - num2product = num1 num2quotient = num1 / num2print("和:", sum)print("差:", difference)print("积:", product)print("商:", quotient)except ValueError:print("输入错误,请输入整数!")calculator()```(2)当第二个整数输入为0时,为了避免程序报错,可以添加一个判断条件,当第二个整数为0时,不进行除法运算。
程序调试及实验总结本文介绍了程序调试的基本方法及实验过程,包括断点调试、日志输出、调试工具的使用等,并对实验结果进行了总结和分析。
下面是本店铺为大家精心编写的4篇《程序调试及实验总结》,供大家借鉴与参考,希望对大家有所帮助。
《程序调试及实验总结》篇1引言程序调试是软件开发过程中必不可少的一环,目的是找出程序中存在的错误或问题,并加以修复,以确保程序的正确性和稳定性。
实验是程序调试的重要手段之一,通过实验可以验证程序的正确性,找出程序中存在的问题,进而进行调试和优化。
程序调试的基本方法断点调试是一种常见的程序调试方法,可以通过在代码中设置断点,使程序在执行到该位置时停止运行,以便观察程序执行过程中的变量值、内存信息等。
断点调试可以通过集成开发环境 (IDE) 或命令行调试器等方式实现。
日志输出是另一种常用的程序调试方法,通过将程序执行过程中的关键信息输出到日志文件或控制台,以便开发人员进行分析和调试。
日志输出可以通过打印语句、日志库等方式实现。
调试工具是程序调试的重要辅助工具,可以提供更加丰富的调试功能和工具。
例如,内存分析工具可以帮助开发人员查找内存泄漏问题,网络调试工具可以帮助开发人员调试网络程序等。
实验总结本次实验旨在通过编写程序并进行调试,掌握程序调试的基本方法和工具使用。
实验过程中,我们首先介绍了断点调试和日志输出的基本方法,并使用实际程序进行了演示。
然后,我们介绍了调试工具的使用,包括内存分析工具和网络调试工具等。
通过实验,我们发现程序调试是一个复杂而繁琐的过程,需要耐心和细心。
同时,我们也发现程序调试是一项重要的工作,可以有效提高程序的正确性和稳定性。
最后,我们总结出程序调试的基本原则,包括从小到大、从简单到复杂、从上到下等,这些原则可以帮助我们更加高效地进行程序调试。
总结本文介绍了程序调试的基本方法及实验过程,包括断点调试、日志输出、调试工具的使用等,并对实验结果进行了总结和分析。
计算机程序调试:常见的调试工具和技巧计算机程序调试是解决程序中的错误或问题的过程。
在软件开发的早期阶段,调试往往是程序员们面临的一项重要任务。
本文将介绍一些常见的调试工具和技巧,帮助读者更有效地调试程序。
一、调试工具1. 编译器自带调试器:大多数编程语言的主流编译器都提供了调试器,例如GDB、LLDB等。
这些调试器通常能够提供强大的功能,如断点设置、变量跟踪、单步执行等。
程序员可以通过调试器逐行查看代码执行过程,帮助发现潜在的错误。
2. 日志调试工具:日志是开发中常用的调试方式之一。
通过在代码中插入日志输出语句,在程序执行过程中记录各个关键节点的数据和状态,从而更好地理解程序的运行流程。
开发者可以使用Log4j、Logback等日志框架来进行日志的输出和管理。
3. 单元测试工具:单元测试是一种精确度很高的调试手段。
通过编写测试用例,测试特定模块或函数的输入输出,可以有效地验证程序的正确性。
JUnit是Java中常用的单元测试工具,而Python的unittest库也是一种常用的单元测试框架。
二、调试技巧1. 断点设置:在调试器中设置断点是调试的常用技巧之一。
通过在程序代码中设置断点,程序执行到断点处时会暂停,此时可以查看各个变量的值,并逐步调试代码。
在调试过程中,可以根据需要添加、删除或禁用不同的断点,以便更好地分析问题。
2. 单步执行:调试器通常支持单步执行功能,允许程序逐行执行。
通过单步执行,可以逐步调试代码,并观察每一行代码的执行情况,对于理解程序运行过程和查找错误非常有帮助。
3. 变量跟踪:在调试过程中,经常需要查看各个变量的值,以便分析问题。
调试器通常提供了变量查看的功能,可以在程序暂停的时候查看当前变量的值,或者设置断点后在断点处查看变量的值。
通过变量跟踪,可以更清晰地了解程序的状态。
4. 日志输出:在程序中适当插入日志输出语句,输出关键数据和状态,有助于程序调试。
在调试过程中,可以根据程序执行的路径和输出的日志,分析程序的运行流程,确定问题的所在。
程序调试的常用方法程序调试是软件开发中非常重要的一环,它可以帮助开发人员找出程序中的错误并进行修复,从而保证程序的正常运行。
在实际的开发过程中,程序调试的方法有很多种,下面将介绍一些常用的调试方法。
1. 打印调试信息打印调试信息是最常用的调试方法之一。
开发人员可以在程序中添加一些打印语句,输出程序中的变量值、函数调用信息等,以便于观察程序的执行过程。
在调试完成后,可以将这些打印语句删除或注释掉,以避免影响程序的性能。
2. 使用调试工具调试工具是一种专门用于调试程序的软件,它可以帮助开发人员快速定位程序中的错误。
常见的调试工具有Visual Studio、Eclipse、Xcode等。
这些工具可以提供调试器、断点调试、内存泄漏检测等功能,大大提高了调试效率。
3. 单元测试单元测试是一种测试方法,它可以对程序中的每个模块进行测试,以确保程序的每个部分都能正常运行。
在单元测试中,开发人员可以编写一些测试用例,对程序进行测试,并查找错误。
单元测试可以帮助开发人员快速定位错误,并提高程序的可靠性。
4. 代码审查代码审查是一种通过检查代码来发现错误的方法。
在代码审查中,开发人员可以通过查看代码、注释、变量名等来发现潜在的错误。
代码审查可以帮助开发人员发现一些常见的错误,如语法错误、逻辑错误等。
5. 日志记录日志记录是一种记录程序运行过程的方法。
在程序中添加日志记录语句,可以记录程序中的变量值、函数调用信息等,以便于观察程序的执行过程。
在调试完成后,可以将这些日志记录语句删除或注释掉,以避免影响程序的性能。
总之,程序调试是软件开发中非常重要的一环,它可以帮助开发人员找出程序中的错误并进行修复,从而保证程序的正常运行。
在实际的开发过程中,开发人员可以根据实际情况选择不同的调试方法,以提高调试效率。
实验报告程序调试进行实验时,程序调试是必不可少的一步。
下面我将详细讨论程序调试的重要性以及常见的调试技术。
首先,程序调试是确保程序能够正常运行的关键步骤。
在开发过程中,我们常常会遇到各种各样的错误,包括语法错误、逻辑错误和运行时错误。
通过调试,我们可以准确地找出错误所在,并对其进行修复。
只有通过调试,我们才能保证程序的功能的正确性和稳定性。
其次,程序调试可以提高开发效率。
如果我们没有进行调试,而是一味地猜测错误的原因和位置,那么我们可能会花费大量的时间才能找到问题的根源。
然而,通过调试工具,我们可以定位到具体的代码行,并查看变量的值,从而更加快速地找出错误。
调试可以帮助我们逐步地验证代码的正确性,这对于复杂的程序来说尤为重要。
在进行程序调试时,有几个常见的技术是非常有用的。
首先,我们可以使用断点来调试代码。
断点是指在代码中设定一个停止位置,程序在执行到该位置时会暂停,可以查看此时的变量状态和执行路径。
通过设置断点,我们可以逐步执行程序代码,观察变量的变化,从而找出问题的所在。
其次,利用日志输出是一种非常常见的调试技术。
我们可以在代码中插入一些输出语句,将程序运行时的一些关键信息打印出来,以便观察程序的执行过程和变量的值。
通过分析日志输出,我们可以更加准确地判断程序的执行情况,找到问题的所在。
另外,利用单元测试也是一种非常有效的调试技术。
单元测试是指针对程序的各个单元进行独立测试的方法,通过编写各种测试用例,用于检查程序的各个功能是否正常工作。
通过单元测试,我们可以快速地发现问题所在,并有针对性地进行修复。
此外,我们还可以使用调试器来进行程序调试。
调试器是一种专门用于调试程序的工具,可以让我们逐行执行程序代码,查看变量的值和执行路径。
通过调试器,我们可以更加直观地观察程序的执行情况,并且可以方便地进行变量查看和修改。
调试器通常提供了丰富的功能,如条件断点、变量监视和堆栈跟踪等,可以帮助我们更加高效地调试程序。
程序调试技巧和常见问题解决方法章节一:程序调试技巧在软件开发的过程中,程序调试是一项非常重要的任务。
通过调试可以快速发现和解决程序中的问题,提高软件的质量。
以下是一些常用的程序调试技巧:1.使用断点:在程序中设置断点,可以暂停程序的执行,观察程序的状态,定位问题所在。
通过逐步执行程序,可以逐行查看变量的值、函数的返回结果等信息,帮助我们找到问题所在。
2.输出调试信息:可以使用打印语句或者日志记录来输出调试信息。
在程序的关键位置打印变量的值、函数的执行情况等信息,可以帮助我们了解程序的执行过程,发现问题。
3.使用调试工具:现代的集成开发环境(IDE)通常提供了强大的调试工具,如断点调试、变量查看、堆栈跟踪等功能。
这些工具可以帮助我们更方便地进行程序调试,提高效率。
4.分析日志:当程序出现问题时,可以通过分析日志文件来找到问题所在。
在程序中添加日志记录,可以记录程序的执行情况和关键信息,有助于定位问题。
5.利用assert语句:在程序中添加assert语句,可以检查程序的正确性。
如果assert语句的条件不成立,程序会抛出异常,帮助我们快速定位错误。
6.使用调试工具包:一些编程语言提供了专门的调试工具包,如Python的pdb模块、Java的jdb工具等。
这些工具可以帮助我们在代码级别进行调试,查看变量的值、执行流程等信息。
章节二:常见问题解决方法在程序开发过程中,常常会遇到一些常见问题,以下是一些常见问题的解决方法:1.程序崩溃:程序崩溃可能是由于内存溢出、空指针引用等原因引起的。
可以通过调试工具查看程序崩溃时的堆栈信息,定位问题所在,并及时释放资源或修复代码。
2.性能问题:程序执行效率低下可能导致性能问题,如响应时间长、占用过多的系统资源等。
可以通过性能分析工具来查找程序中的性能瓶颈,然后优化相应的代码,提高程序的执行效率。
3.逻辑错误:程序中的逻辑错误可能导致程序输出结果不正确。
可以通过调试工具逐步执行程序,观察变量的值和函数的返回结果,找出逻辑错误的根源,然后进行修正。
常用程序调试技巧程序调试是开发过程中必不可少的一环,有时候可能会碰到一些难以找出错误的情况。
下面是一些常用的程序调试技巧,可以帮助开发人员更快地找到和修复问题。
1.使用调试器调试器是程序员最常用的调试工具之一、可以在开发环境中使用内置的调试器或者第三方工具,如GDB、Xcode、Visual Studio等。
调试器可以运行程序并逐行执行代码,同时提供一系列调试功能,如断点设置、变量监视、堆栈追踪等。
这些功能可以帮助开发人员逐步检查代码,找出错误发生的位置。
在使用调试器时,可以使用断点来暂停程序的执行,并查看代码和变量的状态。
可以逐行执行程序,并逐步检查每一步的结果。
也可以在出现错误后,检查程序的堆栈追踪来获得更多的调试信息。
2.日志输出日志输出是一种常用的调试技巧,可以将程序中的关键信息输出到日志文件中。
通过查看日志文件,可以了解程序执行的过程和结果,从而找出错误的原因。
在程序中使用日志输出时,需要选择适当的输出级别,以便在调试时能够看到足够的信息。
同时,还可以通过配置文件或命令行参数来控制日志的输出级别,以便在生产环境中更好地管理日志。
可以在程序中加入条件输出,只有在特定的情况下才输出日志。
这样可以减少不必要的输出,提高程序的执行效率。
3.单元测试单元测试是一种通过独立地测试每个代码单元来验证其正确性的方法。
可以编写测试用例来模拟各种输入,并检查代码的输出是否符合预期。
通过单元测试,可以快速定位出现问题的代码,并减少在程序其他部分的调试工作。
同时,单元测试也有助于提高代码的质量,防止引入新的错误。
可以使用各种单元测试框架来编写和运行测试用例,如JUnit、Pytest、Mocha等。
这些框架提供了丰富的断言和辅助方法,方便开发人员编写、运行和管理测试用例。
4.追踪错误信息在调试过程中,有时可能遇到一些难以重现的问题。
这时可以使用追踪错误信息的方法来帮助找出问题的原因。
追踪错误信息可以在程序的关键位置打印调用栈,以及相关的变量和状态信息。
程序调试的常用方法
程序调试是指在程序运行过程中,通过各种手段识别、定位、分析程序中的错误,以便及时解决问题的过程。
以下是程序调试常用的方法:
1. 打印输出:在程序中加入一些打印输出语句,输出一些变量的值或程序执行到哪一步,以便定位问题所在。
2. 调试器:使用调试器工具,可以在程序运行过程中逐行调试,观察变量的值,查看函数调用栈等。
3. 代码审查:通过对代码的阅读和审查,找出可能存在的问题和潜在的错误。
4. 单元测试:编写一些小的测试用例,对程序中某些关键函数进行测试,以便及早发现问题。
5. 日志记录:在程序中加入日志记录功能,记录程序运行过程中的关键信息,以便排查问题。
6. 静态分析工具:使用静态分析工具对代码进行分析,找出可能存在的潜在问题和漏洞。
7. 代码重构:对代码进行重构,优化代码结构和逻辑,以便减少出错的可能性。
总之,程序调试需要综合运用各种方法,不断排查和解决问题,以确保程序的正常运行。
- 1 -。
VC程序调试(本部分来自软件学院张锋老师实验教材) 在开发程序的过程中,经常需要查找程序中的错误,这就需要利用调试工具来帮助你进行程序的调试,当然目前有许多调试工具,而集成在VC 中的调试工具以其强大的功能,一定使你爱不释手。
下面我们先来介绍VC 中的调试工具的使用(以下内容均以VC 6.0为例)。
1 VC调试工具1.1 调试环境的建立在VC 中每当建立一个工程(Project)时,VC 都会自动建立两个版本:Release 版本,和Debug 版本,正如其字面意思所说的,Release 版本是当程序完成后,准备发行时用来编译的版本,而Debug 版本是用在开发过程中进行调试时所用的版本。
DEBUG 版本当中,包含着MICROSOFT 格式的调试信息,不进行任何代码优化,而在RELEASE 版本对可执行程序的二进制代码进行了优化,但是其中不包含任何的调试信息。
在新建立的工程中,你所看到是DEBUG 版本,若要选择RELEASE 版本,可以选择菜单PROJECT 中的SETTING 命令,这时屏幕上面弹出PROJECTSETTEING 对话框,在SETTING FOR 下拉列表中选择RELEASE,按OK 退出,如图4.1。
图4.1在调试程序的时候必须使用DEBUG 版本,我们可以在ProjectSetting 对话框的C/C++页中设置调试选项。
图4.2各个选项的含意如下:Program Database 表示产生一个存储程序信息的数据文件(.PDB), 它包含了类型信息和符号化的调试信息;Line Numbers Only 表示程序经过编译和链接产生的.OBJ 或.EXE文件仅仅包含全局和外部符号以及行号信息;C7 Compatible 表示产生一个.OBJ 或.EXE 文件行号信息以及符号化的调试信息;None 表示不产生任何调试信息。
1.2 调试的一般过程调试,说到底就是在程序的运行过程的某一阶段观测程序的状态,而在一般情况下程序是连续运行的,所以我们必须使程序在某一地点停下来。
所以我们所做的第一项工作就是设立断点。
其次,再运行程序,当程序在设立断点处停下来时,再利用各种工具观察程序的状态。
程序在断点停下来后,有时我们需要按我们的要求控制程序的运行,以进一步观测程序的流向,所以下面我们依次来介绍断点的设置,如何控制程序的运行以及各种观察工具的利用。
1.3 如何设置断点在VC 中,你可以设置多种类型的断点,我们可以根据断点起作用的方式把这些断点分为三类:1、与位置有关的断点;2、与逻辑条件有关的断点3、与WINDOWS 消息有关的断点下面我们分别介绍这三类断点。
首先我们介绍与位置有关的断点。
1、最简单的是设置一般位置断点,你只要把光标移到你要设断点的位置,当然这一行必须包含一条有效语句的;然后按工具条上的add/remove breakpoint 按钮或按快捷键F9;这时你将会在屏幕上看到在这一行的左边出现一个红色的圆点表示这儿设立了一个断点。
图4.32 、有的时候你可能并不需要程序每次运行到这儿都停下来,而是在满足一定条件的情况下才停下来,这时你就需要设置一种与位置有关的逻辑断点。
要设置这种断点我们只需要从EDIT 菜单中选中breakpoint 命令,这时Breakpoints 对话框将会出现在屏幕上。
选中Breakpoints 对话框中的Location标签,使Location页面弹出,如图4.4图4.4单击Condition…按钮,弹出Breakpoint Condition对话框,在Expression 编辑框中写出你的逻辑表达式,如X>=3 或a+b>25,最后按OK 返回。
图4.5这种断点主要是由其位置发生作用的,但也结合了逻辑条件,使之更灵活。
3、有时我们需要更深入地调试程序,我们需要进入程序的汇编代码,因此我们需要在在汇编代码上设立断点:要设立这种断点我们只需从View 菜单中选Debug window 命令,图4.6再选Disassembly 子命令,这时汇编窗口将会出现在屏幕上。
图4.7在图4.7 中的汇编窗口中你将看到对应于源程序的汇编代码,其中源程序是用黑体字显示,下面是且对应的汇编代码。
要设立断点,我们只需将光标移到你想设断点处然后点击工具条上的Insert/RemoveBreakpoints 按钮,此后你将会看到一个红圆点出现在该汇编代码的右边。
图4.8上面所讲的断点主要是由于其位置发挥作用的,即当程序运行到设立断点的地方时程序将会停下来。
但有时我们设立只与逻辑条件有关的断点,而与位置无关。
所以下面介绍一下与逻辑条件有关的断点。
(1)逻辑条件触发断点的设置:从EDIT 菜单中选中breakpoint 命令,这时屏幕上将会出现Breakpoint 对话框。
图4.9图4.10在图4.10 的DATA 页面中的Expression 编辑框中写出你的逻辑表达式,如(X==3);图4.11✓最后按OK 返回。
其他几种断点的设置的方法都与之类似。
我们一一加以说明。
(2)监视表达式发生变化断点:✓从EDIT 菜单中选中breakpoint 命令,这时屏幕上将会出现Breakpoint 对话框。
✓在Expression 编辑框中写出你需要监视的表达式✓最后按OK 键返回。
(3)监视数组发生变化的断点:✓从EDIT 菜单中选中breakpoint 命令,这时屏幕上将会出现Breakpoint 对话框。
✓选中Breakpoint 对话框中的DATA 标签,对应的页面将会弹出✓在Expression 编辑框中写出你需要监视数组名;✓在Number of Elements 编辑框输入你需要监视数组元素的个数;✓按OK 键返回。
(4)监视由指针指向的数组发生变化的断点:✓从EDIT 菜单中选中breakpoint 命令,这时在屏幕上将会出现Breakpoint 对话框。
✓选中Breakpoint 对话框中的DATA 标签;✓在Expression 编辑框中输入形如*pointname,其中*pointname 为指针变量名;✓在Number of Elements 编辑框输入你需要监视数组元素的个数;✓按OK 键返回。
(5)监视外部变量发生变化的断点:✓从EDIT 菜单中选中breakpoint 命令这时屏幕上将会出现Breakpoint 对话框;✓选中Breakpoint 对话框中的DATA 标签;✓在Expression 编辑框中输入变量名;✓点击在Expression 编辑框的右边的下拉键头;✓选取Advanced 选项,这时Advanced Breakpoint 对话框出现;✓在context 框中输入对应的函数名和(如果需要的话)文件名;✓按OK 键关闭Advanced Breakpoint 对话框。
✓按OK 键关闭Breakpoints 对话框。
(6)在讲了位置断点和逻辑断点之后我们再讲一下与WINDOWS 消息有关的断点。
注意:此类断点只能工作在x86 或Pentium 系统上。
✓从EDIT 菜单中选中breakpoint 命令,这时屏幕上将会出现Breakpoint 对话框;✓选中Breakpoint 对话框中的MESSAGE 标签,对应的页面将会弹出;✓在Break At WndProc 编辑框中输入Windows 函数的名称;✓在Set One Breakpoint From Each Message To Watch 下拉列表框中选择对应的消息;✓按OK 返回。
1.4 控制程序的运行上面我们讲了如何设置各类断点,下面我们来介绍如何控制程序的运行。
当我们从菜单Build 到子菜单Start Debuging 选择Go 程序开始运行在Debug 状态下,程序会由于断点而停顿下来后,可以看到有一个小箭头,它指向即将执行的代码。
图4.12随后,我们就可以按要求来控制程序的运行:其中有四条命令:Step over, step Into , Step Out ,Run to Cursor。
图4.13在图4.13 中:✓Step over 的功能是运行当前箭头指向的代码(只运行一条代码)。
✓Step Into 的功能是如果当前箭头所指的代码是一个函数的调用,则用Step Into 进入该函数进行单步执行。
✓Step Out 的功能是如当前箭头所指向的代码是在某一函数内,用它使程序运行至函数返回处。
✓Run to Cursor 的功能是使程序运行至光标所指的代码处。
1.5 查看工具的使用调试过程中最重要的是要观察程序在运行过程中的状态,这样我们才能找出程序的错误之处。
这里所说的状态包括各变量的值,寄存中的值,内存中的值,堆栈中的值,为此我们需要利用各种工具来帮助我们察看程序的状态。
弹出式调试信息泡泡(Data Tips Pop_up Information)。
当程序在断点停下来后,要观察一个变量或表达式的值的最容易的方法是利用调试信息泡泡。
要看一个变量的值,只需在源程序窗口中,将鼠标放到该变量上,你将会看到一个信息泡泡弹出,其中显示出该变量的值。
图4.14要查看一个表达式的值,先选中该表达式,仍后将鼠标放到选中的表达式上,同样会看到一个信息泡泡弹出以显示该表达式的值如图4.15 所示。
图4.15变量窗口(VARIABLE WINDOW)。
在VIEW 菜单,Debug window 选Variables window; 变量窗口将出现在屏幕上。
其中显示着变量名及其对应的值。
你将会看到在变量观察窗口的下部有三个标签:AUTO ,LOCAL,THIS 选中不同的标签,不同类型的变量将会显示在该窗口中。
图4.16观察窗口(WATCH WINDOW):在VIEW 菜单,选择Debug window 命令,Watch window 子命令。
这时变量窗口将出现在屏幕上。
图4.17在图4.17 的观察窗口中双击Name 栏的某一空行,输入你要查看的变量名或表达式。
图4.18回车后你将会看到对应的值。
观察窗口可有多页,分别对应于标签Watch1,Watch2,Watch3 等等。
假如你输入的表达式是一个结构或是一个对象,你可以用鼠标点取表达式右边的形如+ ,以进一步观察其中的成员变量的值如图4.19。
图4.19快速查看变量对话框(quick watch);在快速查看变量对话框中你可以象利用观察窗口一样来查看变量或表达式的值。
但我们还可以利用它来改变运行过程中的变量,具体操作如下:(1) 在Debug 菜单,选择Quick Watch 命令,这时屏幕上将会出现Quick Watch 对话框;图4.20(2)在Expression 编辑框中输入变量名,按回车;图4.21(3)在Current Value 格子中将出现变量名及其当前对应的值如图4.22:图4.22(4)如要改变该变量的值只需双击该变量对应的Name 栏,输入你要改变的值;(5)如要把该变量加入到观察窗口中,点击Add watch 按钮;(6)点击Close 按钮返回;✓我们还可以直接查看内存中的值(1)从View 菜单中选取Debug windows 及Memory 子命令。