程序调试.doc.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
程序调试.doc

调试程序 1 调试程序的基本知识 程序编译正确后,能够执行,但不能保证执行的结果正确,这一般是由于程序运行时的逻辑错误导致的。为了能解决编程上的逻辑错误,需要掌握一定的技巧,训练一些基本能力。本文介绍的单步跟踪程序,是同学们必须掌握的最基本的能力。以后大家学习别的编程语言,这个能力的要求是不变的,因此希望同学们能跟着本实验指导书,训练好这个能力。 要单步跟踪程序的执行流程,首先要了解以下知识。 1) 工具栏上的“编译微型条”。位置见图1的箭头所指的方框,将方框中的按钮单独列出,见图2。 图1 工具栏上的编译微型条 图2 编译微型条 工具栏上的“编译微型条”共包含六个按钮,各按钮(从左至右)的功能为: :编译。对应菜单“组建”-“编译”命令,快捷键为“Ctrl+F7”。 :组建。对应菜单“组建”-“组建”命令,快捷键为“F7”。 :停止组建。快捷键为“Ctrl+Break”。这个按钮通常为灰色(即不可用),只有在组建的过程中才可用。而通常我们不需要人工停止组建,所以这个按钮我们通常不使用。 :执行。对应菜单“组建”-“执行”命令,快捷键为“Ctrl+F5”。 以上的四个功能我们主要使用编译、组建、执行,这三个功能我们在前面已经接触到。本节主要介绍另外两个功能: :去。对应菜单“组建”-“开始调试”-“去(Go)”命令,快捷键为“F5”。 :插入/移除断点。快捷键为“F9”。 如果在工具栏上找不到“编译微型条”,可在工具栏上点右键,将弹出菜单,如图3所示。在菜单中,将“编译微型条”前的勾勾上即可。 图3 自定义工具栏 2) 概念:断点(breakpoint)。如果程序运行出错,为了查找错误,通常的做法是在程序的某一行或某几行设置断点,当使用调试方式执行程序(即点)时,程序执行将在断点处停下来,此时程序员可以单步执行程序(即一行一行执行),也可查看变量的值。要在某行程序设置断点,可将光标先移到该行,然后点即可。如果需要移除某断点,同样将光标先移到该行,然后点。 3) 单步跟踪程序执行流程的基本操作。 为了能单步执行程序,即调试程序,需要做以下操作: 设置断点。在需要让程序停下来的位置,使用设置断点。 以调试的方式执行程序。为了让程序能在断点处停下来,执行程序不能点,而需要用。 程序在断点处停下来后,可以做的操作有: 查看变量的值。为了能够了解一个程序执行到某个位置时变量的值,我们可以使用printf语句打印该值,但要在程序的各个地方添加printf语句,不是很方便,最好的办法是让程序停在该位置,然后使用VC的“Watch”功能查看变量的值。 单步执行程序。这样可跟踪程序执行流程,使得程序执行的当前位置往后走,一行一行执行程序。这样,可以检查程序执行的流程是否正确(比如一个if语句,程序员认为程序应该执行else后面的程序,但程序实际流程并非如此),也可以到下一个位置检查变量的值是否正确。 单步执行程序时,我们一般需要用到“调试”工具条,该工具条包含的按钮如图4。 图4 “调试”工具条 这个工具条上我们常用的按钮有以下五个: :跟踪进入。快捷键为“F11”。点这个按钮可单步执行程序。 :跳过。快捷键为“F10”。点这个按钮也可单步执行程序,这个按钮和上一个按钮的区别待学习“函数”那章时再详细说明,现在同学们可认为这两个按钮没区别。 :跳出。快捷键为“Shift+F11”。点这个按钮可将一个函数剩余的语句一次执行完(前提是该函数后面的语句无断点)。要具体了解这个按钮的作用,也需要学习“函数”那章后才能明白。 :运行到光标。快捷键为“Ctrl+F10”。如果一次想执行多行语句,可在后面的某个位置先设置断点,让程序执行到下一个断点。也可将光标先移到那个位置(不设置断点),点即可让程序执行到光标所在的程序行。 :停止调试。快捷键为“Shift+F5”。点这个按钮可结束程序执行。 具体的操作见以下的几个例子。注意,以下的例子,对于某些同学们可能很容易看出程序的错误所在,不需要调试就能解决错误。这里需要强调的是,这几个例子是教会一种方法,将来遇到复杂的程序也可以使用这种方法解决,因此,同学们一定要从学习方面的角度去学习这几个例子。 此外,强调一点:调试程序是任何一个程序员都需具备的能力,如果不具备这个能力,使用任何语言都不可能编出一个正确的程序。而不同的开发环境(工具),虽然调试时的具体操作细节有所不同,但思想完全一致,所以同学们可以通过VC学习调试的方法和技巧。 2 switch中的break 阅读以下程序,请给出程序的运行结果。程序如下: 源程序: 1: #include stdio.h 2: void main() 3: { 4: int x=1,y=0,a=0,b=0; 5: switch(x) 6: { 7:

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档