调试程序一般应经过以下几个步骤:
1先进行人工检查,即静态检查。在写好一个程序以后,不要匆匆忙忙上机,而应对纸面上的程序进行人工检查。这一步是十分重要的,它能发现程序设计人员由于疏忽而造成的多数错误。而这一步骤往往容易被人忽视。有人总希望把一切推给计算机系统去做,但这样就会多占用机器时间,作为一个程序人员应当养成严谨的科学作风,每一步都要严格把关,不把问题留给后面的程序。
为了更有效地进行人工检查,所编的程序应注意力求做到以下几点:应当采用结构化程序方法编程,以增加可读性;2尽可能多加注释,以帮助理解每段程序的作用;3在编写复杂的程序时不要将全部语句都写在main函数中,而要多利用函数,用一个函数来实现一个单独的功能。这样既易于阅读也便于调试,各函数之间除用参数传递数据这一渠道以外,数据间尽量少出现耦合关系,便于分别检查和处理。
2在人工检查无误后,才可以上机调试。通过上机发现错误称动态检查。在编译时给出语法错误的信息,可以根据提示的信息具体找出程序中出错之处并改正之。应当注意的是有时提示的出错并不是真正出错的行,如果在提示出错的行上找不到错误的话应当到上一行再找。有时提示出错的类型并非绝对准确,由于出错的情况繁多各种错误互有关联,因止要善于分析,找出真正的错误,而不要只从字面意义上找出错信息,钻牛角尖。
如果系统提示的出错信息多,应当从上到下一一改正。有时显示出一大片出错信息往往使人感到问题严重,无从下手。其实可能只有一二个错误。例如,对使用的变量未定义,编译时就会对所有含该变量的语句发出出错信息;有的是少了“}”或多了“}”有的是书写语句时忘记写“;”或是全角的“;”了,只要加上一个变量定义,或填加“};”就所有错误都消除了。
3在改正语法错误后,程序经过连接就得到可执行的目标程序。运行程序,输入程序所需数据,就可得到运行结果。应当对运行结果作分析。看它是否符合要求。有的初学者看到运行结果就认为没问题了,不作认真分析,这是危险的。
有时,数据比较复杂,难以立即判断结果是否正确。可以事先考虑好一批“试验数据”,输入这些数据可以得出容易判断正确与否的结果。可以在计算的输出结果的程序地方加入一段输出到串口的程序,利用串口窗口可以方便看到结果的,比仿真的都好和直观。例如,if语句有两个分支,有可能在流程经过其中一个分支时结果正确,而经过其它一个分支时结果不对等。必须考虑周全。
事实上,当程序复杂时很难把所有的可能方案全部都试到,选择典型的情况作试验即可。
4 运行结果不对,大多属于逻辑错误。对这类错误往往需要仔细检查和分析才能发现。可以采用以下办法:
1 将程序与流程图仔细对照,如果流程图是正确的话,程序写错了,是很容易发现的。例如,复合语句忘记写花括弧,只要一对照流程图就能很快发现。
2 如果实在找不到错误,可以采用“分段检查”的方法。在程序不同的位置设几个printf函数语句,输出有关变量的值,往下检查。直到找到在哪一段中数据不对为止。这时就已经把错误局限在这一段中了。不断减小“查错区”,就可能发现错误所在。
3 也可以用“条件编译”命令进行程序调试(在程序调试阶段,若干printf函数语句就要进行编译并执行。当调试完毕,这些语句不要再编译了,也不再被执行了)。这种方法可以不必一一去printf函数语句,以提高效率。
4 如果在程序中没有发现问题,就要检查流程图有无错误,即算法有无问题,如有则改正之,接着修改程序。
5 有的系统还提供debug(调试)工具,跟踪流程并给出相应信息,使用更为方便,如KEILC51里的调试运行就很好用的,可以在命令的窗口输入程序中需要的数据和开关量、中断、I/O口的电平等来方便完成程序的运行,使用时要先打开Options for Target'Target1'(工程菜单里的目标‘TARGET1'属性)-点DEBUG-选中左边use Simulator\load Application at sta\Go till main;按确定后退出到编辑画面,要先对源程序进行编译后没有错误才可以按主菜单上的调试按钮,进行调试的,F10为子程序运行式的单步、F11为单步调试;具体使用可以看本站提供的51单片机应用系统开发实例一书中的Dscope foe Windows一节。可以下载本站上中文版的KIELC51就直观了。
总之,程序调试是一项细致深入的工作,需要下功夫,动脑子,善于累积经验。在程序调试过程中往往反映出一个人的水平,经验和科学态度。希望读者能给以足够的重视。上机调试程序的目的决不 是为了“验证程序的正确”,而是“掌握调试的方法和技术”,不要一直依赖仿真器来解决,要学会自己找问题,这样慢慢自己就会写出错误较少的实用的程序,站长就没有仿真器的哦,靠KEILC51里的软件仿真就解决了。
程序员是从事程序开发、程序维护的专业人员。
程序员一般需要会做:确认通过审查方案的目标,输入数据,分析师,监事,和客户的输出要求的项目要求。安排项目要求在编程序列分析要求;准备工作流程图和使用计算机知识的能力,题材,编程语言和逻辑图等。
通常情况下将程序员分为程序设计人员和程序编码人员,但两者的界限并不非常清楚,特别是在中国。
您想问的是使用单片机开发系统调试程序时需要做什么吗?将低级语言转换成高级语言。
使用单片机开发系统调试程序时,对源程序进行汇编的目的是,将目标程序转换成源程序将低级语言转换成高级语言连续执行。
程序调试是将编制的程序投入实际运行前,用手工或编译程序等方法进行测试,修正语法错误和逻辑错误的过程。这是保证计算机信息系统正确性的必不可少的步骤。编完计算机程序,必须送入计算机中测试。
1,debug:Debug通常称为调试版,通过一系列编译选项,编译结果通常包含调试信息,并且不做任何优化,以便为开发人员提供强大的应用程序调试功能。 Debug版本包含调试信息,因此它比Release版本大得多(可能是数百K到M)。
调试调试,可以通过软件,堆栈跟踪,调试等 *** 作来查找错误。至于是否需要DLL支持,主要取决于您使用的编译选项。如果它基于ATL,则Debug和Release版本对DLL有类似的要求。
2,发布:发布版本,如果程序在最终调试后没有明显的错误,可以使用此选项编译为可用软件与他人共享。发布通常称为发布版本,供用户使用。通常,不允许客户在发布版本上进行调试。
因此,不会保存调试信息,同时,它经常被优化以实现最小的代码和速度。方便用户使用。
3、性能分析。可以在执行软件期间分析CPU利用率和存储器占用率。它还可用于发现和分析异常和错误。
扩展资料:
调试程序发布版本的方法:
1如前所述,Debug和Release只是一组编译选项。实际上没有区分两者的定义。您可以修改Release版本的编译选项以缩小错误范围。如上所述,您可以逐个将Release的选项更改为相应的Debug选项,例如/ MD到/ MDd,/ O1到/ Od,或运行时优化到程序大小优化。
一次只更改一个选项,查看错误消失时更改了哪个选项,然后查找与该选项相关的错误。可以直接从ProjectSettings中的列表中选择这些选项,通常不会手动修改。由于上述分析相当全面,这种方法是最有效的。
2,在编程过程中,你应该时刻注意测试发布版本,以免最终代码过多,时间非常紧张。
3使用Debug版本中的/ W4警告级别从编译器获取最大错误信息。例如,如果(i = 0)将导致/ W4警告。不要忽略这些警告,通常这是由程序中的错误引起的。但有时/ W4会带来大量冗余信息,例如未使用的函数参数警告,并且许多消息处理程序会忽略某些参数。
参考资料:
参考资料:
参考资料:
参考资料:
以上就是关于调试c程序,需要几个步骤全部的内容,包括:调试c程序,需要几个步骤、程序员工作要做什么、使用单片机开发系统调试程序时等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)