可以采用如下两种方法:
(1)输出寄存器的内容。在测试中出现问题,设法保留现场信息。把所有寄存器和主存中有关部分的内容打印出来(通常以八进制或十六进制的形式打印),进行分析研究。用这种方法调试,输出的是程序的静止状态(程序在某一时刻的状态),效率非常低,不得已时才采用。
(2)为取得关键变量的动态值,在程序中插入打印语句。这是取得动态信息的简单方法,并可检验在某时间后某个变量是否按预期要求发生了变化。此方法的缺点是可能输出大量需要分析的信息,必须修改源程序才能插入打印语句,这可能改变关键的时序关系,引入新的错误。 通常利用程序语言提供的调试功能或专门的调试工具来分析程序的动态行为。一般程序语言和工具提供的调试功能有检查主存和寄存器;设置断点,即当执行到特定语句或改变特定变量的值时,程序停止执行,以便分析程序此时的状态。
简而言之,测试的主要工作是找缺陷,而调试的目的是为了解决缺陷。
具体而言,软件调试是在进行了成功的软件测试后才开始的工作。软件调试与软件测试不同,软件测试的目标是尽可能多的发现软件中的错误,而进一步诊断和改正程序中潜在的错误才是调试的任务。通常,调试工作是一个具有很强技巧性的工作。一个软件开发人员在分析测试结果的时候会发现,软件运行失效或出现问题,往往只是潜在错误的外部表现,而外部表现与内在原因之间常常没有明显的的联系。如果要找出真正的原因,排除潜在的错误,不是一件易事。因此,调试是通过现象,找出原因的一个思维分析的过程。
C语言中编译 生成 调试 测试 运行的区别如下:
区别一:
从编译方面来看:
编译依赖于编译器,英文是compile, vc中这一过程是将源代码转换成目标文件,如:obj文件,rc文件等。
区别二:
从生成方面来看:
生成指的是连接的过程,英文是build,依赖于链接器。vc中在这一阶段将所有的目标文件和所有需要用到的组件组合成一个整体,例如需要生成的是windows系统下的PE可执行文件,链接器会依照特定格式将目标文件组合,最后生成PE格式的,exe或dll文件。
区别三:
从调试方面来看:
调试是所有或部分代码编写完成后,让程序在调试器中运行,用这种手段对程序进行分析,找出并修正潜在问题。
区别四:
从运行方面来看:
运行就是让程序在系统中运行。
扩展资料:
C语言的介绍:
C语言是目前流行的通用程序设计语言,是计算机专业人员和计算机爱好者开发软件的首选开发工具。C语言源程序必须经过某种编译工具翻译成为目标机器语言程序才能够在计算机上执行。
然而随着程序编写规模的扩大,顺利编写出正确的程序绝非一件容易的事情,早期的许多编译工具仅仅提供翻译功能,已满足不了应用的要求,编程人员需要-种功能全面并高度集成的编译环境。
程序是一段具有一定功能的代码,编写程序的目的是解决问题。当程序人员写完程序后,其实并不起作用,只有当编写的程序经过一系列的处理后,能够解决问题时。
序才成为真正的程序,这一系列的处理过程,-般就是编辑、编译、连接、调试与运行等。目前最成熟的C语言集成环境主要有Turbo C20和Turbo C 30( 简称TC30)或Borland C++31( 简称BC31)以及Visual C++ 60。
诊断和改正程序中的错误。程序调试是根据错误的迹象确定程序中的错误的确切性质、原因和位置,主要任务是诊断和改正程序中的错误,程序调试是将编制的程序投入实际运行前,用手工或编译程序等方法进行测试,修正语法错误和逻辑错误的过程。
以上就是关于程序调试的分类全部的内容,包括:程序调试的分类、软件测试与调试有什么区别、C语言中编译 生成 调试 测试 运行各是什么意思有什么区别等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)