对代码覆盖使用硬件辅助的自主测试用例反馈的方法和设备技术

技术编号:2859235 阅读:181 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及对代码覆盖使用硬件辅助的自主测试条件反馈方法和设备。具体地,本发明专利技术提供了一种用于提供代码的覆盖数据的方法、设备和计算机指令。获得包含与代码相关的指令访问指示符的覆盖数据。识别由数据处理系统中的处理器响应处理器对代码的执行而设置的特定指令访问指示符,以形成设定指令访问指示符。将每一个设定指令访问指示符与所述代码的一部分相关联。产生该覆盖数据的一个表达。在该表达中标识所述设定指令访问指示符。该表达例如可以是图形表达。

【技术实现步骤摘要】

本专利技术总体上涉及改进的数据处理系统。具体地,本专利技术提供了一种用于获取数据处理系统中的性能数据的方法和设备。更具体地,本专利技术提供了一种在获得数据处理系统中的代码覆盖数据时,对软件工具提供硬件辅助的方法和设备。
技术介绍
在分析和增强数据处理系统以及在数据处理系统内执行的应用程序的性能时,如果知道数据处理系统内的哪些软件模块正在使用系统资源,是很有帮助的。对数据处理系统的有效管理和增强要求知道各种系统资源在何时和如何被使用。用性能工具来监视和检查数据处理系统,以确定当各种软件应用在数据处理系统中执行时的资源消耗。例如,性能工具可以识别数据处理系统中最常执行的模块和指令,或者可以识别那些分配最大量内存或者执行I/O请求最多的模块。硬件性能工具可以被内置在系统中,或者在以后添加。一种已知的软件性能工具是跟踪工具。跟踪工具可以使用多种技术来提供跟踪信息,来指示执行程序的执行流。一种技术是通过在特定事件发生时记录这些事件,来跟踪特定的指令序列。这种技术称为基于事件的特征描绘(profiling)技术。例如,跟踪工具可以记录每一次进入和每一离开某个模块、子例程、方法、函数或者系统部件。或者,跟踪工具可以记录内存请求者以及分配给每一个内存分配请求的内存量。一般,对每一个这样的事件产生一个带有时间戳记的记录。使用类似于进入-退出记录的对应记录对来跟踪任意代码段的执行、I/O或数据传输的开始和结束,以及其它许多感兴趣的事件。为了改进各种计算机系列所产生的代码的性能,常常需要判断在执行代码时,处理器将时间花在了什么地方。在计算机处理领域,这种做法就是通常所说的“热点”定位。理想情况下,希望在代码级的指令和/或源行分离出这样的热点,以将注意力集中于可能从对代码的改进获益最多的区域。另一种跟踪技术涉及对程序的执行流定期采样,以识别程序中看来花费了大量时间的特定位置。这种技术系基于这样的思想按照规则的间隔,定期中断应用程序或者数据处理系统的执行。这种技术被称为基于采样的特征描绘技术。在每一次中断时,记录预定长度时间的信息,或者记录感兴趣的预定个数的事件的信息。例如,可以在每一个间隔记录当前执行线程(executing thread)的程序计数器,当前执行线程是被进行特征描绘的较大程序的一个可执行的部分。可以在后处理时对照数据处理系统的装入映像图(load map)以及符号表信息求解这些值,从而可以从该分析得到关于时间花费在什么地方的概要描述。使用当前可用的软件工具确定测试覆盖范围是一个困难的问题。当测试程序代码时,尚不存在一种容易的机制来确定执行什么代码,不执行什么代码。这种标识也称为代码覆盖(code coverage)。存在标识代码覆盖的软件技术和工具。但是,这些技术和工具通常要改变被测试的代码。但是并不希望不得不改变或者改编代码,因为这样的过程可能冗长而耗费时间。其它类型的技术和工具基于根据程序的静态分析生成测试用例。这种方法不能保证测试的完全覆盖。建立诸如上述这些工具以寻找与特定条件或者问题相关的答案会花费很多精力,并且可能非常难以校准,因为软件工具本身会影响被测试的系统。本专利技术认识到,对工具开发和问题分析提供硬件辅助能够大大减轻开发软件性能工具所需的工作量。另外,随着处理器密度(densitiy of processors)的不断增大,可以将硬件辅助包括进来,以提供另外的调试和分析功能。因此,希望能够提供一种改进的方法、设备和计算机指令,用于为分析在数据处理系统中执行的代码的代码覆盖的性能工具提供硬件辅助。
技术实现思路
本专利技术提供了一种用于提供代码的覆盖数据的方法、设备和计算机指令。获得包含与代码相关的指令访问指示符的覆盖数据。识别由数据处理系统中的处理器响应处理器对代码的执行而设置的特定指令访问指示符,以形成被设定的指令访问指示符。将每一个被设定的指令访问指示符与所述代码的一部分相关联。产生该覆盖数据的一个表达。在该表达中标识所述被设定的指令访问指示符。该表达例如可以是图形表达。附图说明在所附权利要求中给出了作为本专利技术的特征的新颖性特征。但是,本专利技术本身,以及其使用的优选方式,以及其进一步的目的和优点,接合附图阅读下面对说明性实施例的详细说明后可以得到最好的理解。附图中图1是可以实现本专利技术的数据处理系统的框图;图2是根据本专利技术的一个优选实施例用于处理信息的处理器系统的框图;图3图解了根据本专利技术的一个优选实施例,用于处理与指示符相关的指令的部件;图4图解了根据本专利技术的一个优选实施例,用于设定标识已被访问的存储单元的指示符的信号的数据流;图5图解了根据本专利技术的一个优选实施例的一种用于将访问标识符与指令或者存储单元关联起来的机制;图6图解了根据本专利技术的一个优选实施例的一个指令束(bundle);图7的框示了根据本专利技术的一个优选实施例用于产生元数据比如指示符的部件;图8是根据本专利技术的一个举例的实施例,用页表把程序指定的存储器地址转换为物理地址的数据流的举例的框图;图9是根据本专利技术的一个例证实施例的例证页表条目;图10是根据本专利技术的一个优选实施例用来标记对指令的访问的过程的流程图;图11是根据本专利技术的一个优选实施例,其后跟随指令高速缓存的设定指令访问指示符的过程的流程图;图12是根据本专利技术的一个优选实施例,标记对子例程的访问的过程的流程图;图13是根据本专利技术的一个优选实施例,标记对代码段的访问的过程的流程图;图14是根据本专利技术的一个优选实施例,用来分析代码覆盖数据的部件的框图;图15是根据本专利技术的一个优选实施例,用来收集代码覆盖数据和显示程序内被覆盖和不被覆盖的路径的过程的流程图;图16是根据本专利技术的一个优选实施例,用来标记对包含数据的存储单元的访问的过程的流程图;图17是根据本专利技术的一个优选实施例,其后跟随数据高速缓存的处理的流程图;图18是根据本专利技术的一个优选实施例,用于当在运行时间内发生动态存储器分配时,获取调用栈信息的过程的流程图;图19是根据本专利技术的一个优选实施例,用于在对存储器解除分配时,发送有关在程序执行期间发生的数据访问的信息的过程的流程图;图20是根据本专利技术的一个优选实施例,产生调用流树以标识没有被初始化或者访问的区域的过程的流程图;图21图解了根据本专利技术的一个优选实施例的一个图形化报告,其图示了数据区的覆盖; 图22是根据本专利技术的一个优选实施例,用于产生显示信息的过程的流程图;图23是根据本专利技术的一个优选实施例,使用元数据将数据预先取入高速缓存的过程的流程图;图24是根据本专利技术的一个优选实施例的图解元数据的过程的流程图,所述元数据包括将从开始点预先取入的什么数据的标识。图25是根据本专利技术的一个优选实施例,图解包括对要从开始点预取出什么数据的标识的元数据的处理的流程图。具体实施例方式现在看图1,图1表示了其中可以实现本专利技术的数据处理系统的框图。客户机100是计算机的一个例子,其中可以有实现本专利技术的处理的代码或者指令。客户机100应用外围部件互连(PCI)局部总线结构。尽管所图示的例子应用的是PCI总线,但是也可以使用其它总线结构,比如加速图形端口(Accelerated Graphics Port(AGP))以及工业标准结构(Industry Standard Architecture(IS本文档来自技高网
...

【技术保护点】
数据处理系统中用于提供代码的覆盖数据的方法,包括:获得包含与该代码相关的指令访问指示符的覆盖数据;识别由数据处理系统中的处理器响应处理器对该代码的执行而设置的特定指令访问指示符,以形成设定指令访问指示符,其中,每一个设定指令 访问指示符与所述代码的一部分相关联;以及产生该覆盖数据的一个表达,其中,在该表达中标识所述设定指令访问指示符。

【技术特征摘要】
US 2004-3-22 10/808,7161.数据处理系统中用于提供代码的覆盖数据的方法,包括获得包含与该代码相关的指令访问指示符的覆盖数据;识别由数据处理系统中的处理器响应处理器对该代码的执行而设置的特定指令访问指示符,以形成设定指令访问指示符,其中,每一个设定指令访问指示符与所述代码的一部分相关联;以及产生该覆盖数据的一个表达,其中,在该表达中标识所述设定指令访问指示符。2.如权利要求1所述的方法,还包括识别在处理器执行代码时仍然未设定的未设定指令访问指示符,其中,在所述表达中标识所述未设定指令访问指示符。3.如权利要求2所述的方法,其中,使用第一颜色在所述表达中标识所述设定指令访问指示符,使用第二颜色在所述表达中标识所述未设定指令访问指示符。4.如权利要求2所述的方法,其中,使用图形符号来在所述表达中标识所述设定指令访问指示符,使用图形符号在所述表达中标识所述未设定指令访问指示符。5.如权利要求2所述的方法,其中,响应一个事件执行所述产生步骤。6.如权利要求5所述的方法,其中,所述事件是下述事件中的至少一个代码执行的完成,时间届满,代码中选定类型的指令的执行。7.如权利要求1所述的方法,其中,所述代码部分是代码中的单个指令,其中,代码中的每一个指令与一个不同的指令访问指示符相关联。8.如权利要求1所述的方法,其中,所述代码部分是代码中的子例程。9.如权利要求1所述的方法,其中,所述代码部分是代码中的分支指令。10.用于提供代码的覆盖数据的数据处理系统,包括获取装置,用于获得包含与该代码相关的指令访问指示符的覆盖数据;识别装置,用于识别由数据处理系统中的处理器响应处理器对该代码的执行而设置的特定指令访问指示符,以形成设定指令访问指示符,其中,每一个设定指令访问指示符与所述代码的一部分相关联;以及产生装置,用于产生该覆盖数据的一个表达,其中,在该表达中标识所述设定指令访问指示符。11.如权利要求10所述的数据处理系统,其中所述识别装置是第一识别装置,还包括第二识别装置,用于识别在处理器执行代码时仍然未设定的未设定指令访问指示符,其中,在所述表达中标识所述未设定指令访问指示符。12.如权利...

【专利技术属性】
技术研发人员:罗伯特托德迪姆普西弗兰克埃里奥特莱维尼罗伯特约翰乌尔克哈特
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1