一种对数据进行处理的方法和设备的制作方法

文档序号:6374839阅读:116来源:国知局
专利名称:一种对数据进行处理的方法和设备的制作方法
技术领域
本发明涉及调试分析技术,特别涉及一种对数据进行处理的方法和设备。
背景技术
在系统死机,即系统不按照正常逻辑功能运行的时候,为了获取系统死机的原因,需要获取系统中的模块里的数据,对数据进行分析,并将分析结果输出。现有技术中,通过运行代码实现获取模块中的数据,对获取的数据进行分析,以及将分析结果按照设定的格式输出。如果需要改变对数据的处理方式(即改变分析的内容和/或需要改变输出的分析结果和/或需要改变输出的分析结果的格式),都需要先修改代码,再进行重新编译,然后再运行修改后的代码。 比如需要改变分析的内容,即之前运行的代码是对数据中的A部分进行分析,现在需要对数据中的B部分进行分析时,需要修改运行的代码,并且需要重新编译以及运行修改后的代码;比如需要改变输出的分析结果,即之前运行的代码是实现输出对数据中的A部分进行分析之后的分析结果,现在不需要输出数据中的A部分的分析结果时,需要修改运行的代码,并且需要重新编译以及运行修改后的代码;比如需要改变输出的分析结果的格式,即之前运行的代码是实现输出的分析结果用空格隔开,现在不需要把输出的分析结果用空格隔开,需要修改运行的代码,并且需要重新编译以及运行修改后的代码。综上所述,目前通过运行代码对数据进行处理,如果需要修改数据的处理方式,则需要重新修改、编译与运行对应的代码,使得过程比较繁琐,需要耗费很长的时间,不能快速展现修改后的代码的运行结果。

发明内容
本发明实施例提供的一种对数据进行处理的方法和设备,用以解决现有技术中当需要改变进行分析的数据、改变输出的分析结果或者改变输出的分析结果的格式时耗费时间,不能快速展现修改后的代码的运行结果的问题。本发明实施例提供的一种对数据进行处理的方法,包括确定处理数据的脚本文件;通过确定的脚本文件对获取的模块中的数据进行处理。本发明实施例提供的一种对数据进行处理的设备,包括确定模块,用于确定处理数据的脚本文件;处理模块,用于通过确定的脚本文件对获取的模块中的数据进行处理。在本发明实施例中,确定处理数据的脚本文件;通过确定的脚本文件对获取的模块中的数据进行处理。由于当需要改变进行分析的数据、改变输出的分析结果或者改变输出的分析结果的格式时,只需要修改脚本中的部分命令语句,不需要修改代码,也就不需要重新编译与运行修改后的代码,并且修改后的脚本能够立即运行并且展现结果,从而实现了简化展现结果的过程,快速展现修改后的脚本的运行结果。


图I为本发明实施例对数据进行处理的方法流程示意图;图2为本发明实施例通过在获取数据代码中设置断点实现交替执行脚本文件和代码的流程示意图;图3为本发明实施例对数 据进行处理的详细方法流程示意图;图4为本发明实施例对数据进行处理的设备结构示意图。
具体实施例方式本发明实施例,确定处理数据的脚本文件;通过确定的脚本文件对获取的模块中的数据进行处理。由于当需要改变进行分析的数据、改变输出的分析结果或者改变输出的分析结果的格式时,只需要修改脚本中的部分命令语句,不需要修改代码,也就不需要重新编译与运行修改后的代码,并且修改后的脚本能够立即运行并且展现结果,从而实现了简化展现结果的过程,快速展现修改后的脚本的运行结果。其中,本发明实施例的模块具有如下两个特点I、模块外部不知道模块内部的数据结构;2、模块外部只能通过执行代码调用模块提供的对外接口获得模块中的数据。下面结合说明书附图对本发明实施例作进一步详细描述。如图I所示,本发明实施例对数据进行处理的方法包括下列步骤步骤101、确定处理数据的脚本文件;步骤102、通过确定的脚本文件对获取的模块中的数据进行处理。较佳地,通过确定的脚本文件对获取的模块中的数据进行处理之前,还包括通过执行获取数据代码获取模块中的数据。其中,通过执行获取数据代码获取模块中的数据之前,通过执行获取数据代码得到存储获取的模块中数据的地址,然后通过执行脚本文件确定并保存得到的地址;相应的,步骤102中,通过执行脚本文件,从确定的地址中获得数据,并对获得的数据进行处理。较佳地,可以直接获取模块中的数据,也可以通过复制模块中的数据,得到模块中的数据的复本,本发明以直接获取模块中的数据为例进行介绍,通过复制模块中的数据,得到模块中的数据的复本的实施方式与本发明实施例的实施方式类似,在此不再赘述。其中,可以通过复制模块中的数据,得到模块中的数据的复本;也可以通过模块兼容的其他方式得到模块中的数据的复本。其中,通过执行获取数据代码获取模块中的数据时,可以一次获取模块中的所有数据后,对数据进行处理;也可以每次获取模块中的部分数据,在获取一次数据后,就对数据进行处理。下面对两种情况分别进行介绍。情况一、一次获取模块中的所有数据后,对数据进行处理;通过执行获取数据代码定义存储获取的模块中数据的全局变量以及得到所述全局变量的地址;
通过执行脚本文件确定并保存得到的全局变量的地址;通过执行获取数据代码获取模块中的所有数据,并执行将获取的所有数据存储在得到的全局变量的地址中;通过执行脚本文件,从确定的地址中获得数据,并对获得的数据进行处理。情况二、每次获取模块中的部分数据,在获取一次数据后,就对数据进行处理包括下列步骤SI、通过执行获取数据代码定义存储获取的模块中数据的局部变量以及得到所述局部变量的地址;S2、通过执行脚本文件确定并保存得到的局部变量的地址;S3、通过执行获取数据代码获取模块中的部分数据,并执行将获取的部分数据存储在得到的局部变量的地址中; S4、通过执行脚本文件,从确定的地址中获得数据,并对获得的数据进行处理;S5、通过执行获取数据代码判断模块中是否还存在需要获取的数据,若存在,则执行步骤S3 ;否则,结束对数据进行处理。由于模块中不存在需要获取的数据时,模块会返回消息,指示结束对数据进行处理,所以在通过确定的脚本文件对获取的模块中的数据进行处理之后,通过执行获取数据代码判断模块是否返回消息,如果是,则确定模块中不存在需要获取的数据,否则,确定模块中存在需要获取的数据。情况二中,由于每次只获取模块中的部分数据,从而可以减小缓存数据的容量。较佳地,情况二中,通过局部变量存储获取的模块中的数据,可以根据需要灵活确定内存空间的大小,节省了内存空间。较佳地,对获取的模块中的数据进行处理,包括通过确定的脚本文件对获取的模块中的数据进行分析后,输出分析结果;或通过确定的脚本文件输出获取的模块中的数据,并对输出的数据进行分析。较佳地,可以对获取的模块中的数据先进行分析,再输出;可以不进行分析,直接输出;可以对获取的模块中的数据先进行输出,再分析;也可以进行分析,不输出,具体地,可以根据需要设置。本发明实施例可以通过执行脚本文件在获取数据代码中设置断点,实现交替执行脚本文件和代码。下面以情况二为例进行介绍,情况一的实施方式与情况二的实施方式类似,在此不再赘述。如图2所示,通过执行脚本文件在获取数据代码中设置了三个断点,在图2中,分界线的一侧是执行获取数据代码,分界线的另一侧是执行脚本文件,利用设置的三个断点实现交替执行脚本文件和代码的过程如下201、通过执行获取数据代码得到存储获取的模块中数据的地址;202、执行到获取数据代码中的第一断点处时,停止执行获取数据代码,开始执行脚本文件;203、通过执行脚本文件确定并保存得到的地址,并且停止执行脚本文件,开始执行获取数据代码;
204、通过执行获取数据代码调用模块的对外接口获取模块中的部分数据;205、执行到获取数据代码中的第二断点处时,停止执行获取数据代码,开始执行脚本文件;206、通过执行脚本文件,从确定的地址中获得数据,对获取的模块中的数据进行处理,并且停止执行脚本文件,开始执行获取数据代码;207、判断模块是否返回消息,如果是,则执行步骤208,否则,执行步骤204 ;208、确定模块中不存在需要获取的数据;209、执行到获取数据代码中的第三断点处时,停止执行获取数据代码,开始执行脚本文件;210、通过执行脚本文件,确定结束执行获取数据代码。较佳地,通过设置的第一断点实现了确定并保存得到的局部变量的地址;通过设置的第二断点实现了从确定的地址中获得数据,并对获得的数据进行处理;通过设置的第三断点实现了确定获取数据代码结束执行。较佳地,本发明实施例以在获取数据代码中设置三个断点为例进行介绍,具体地,可以设置一个断点,也可以设置四个断点,具体可以根据需要而定。较佳地,对数据进行处理的主体可以是处理器,可以是模拟器,也可以是能执行脚本与代码的任何设备。下面以脚本文件为trace32 practice (practice是trace32调试器支持的批处理语言)脚本文件为例,对本发明的方案进行详细介绍。如图3所示,本发明实施例对数据进行处理的详细方法包括下列步骤步骤301、确定获取数据的代码与处理数据的脚本文件;步骤302、通过执行trace32 practice脚本文件在获取数据的代码中设置三个断点,并执行在trace32 practice脚本文件中保存在代码中设置的三个断点的信息;并且停止执行trace32 practice脚本文件,开始执行获取数据的代码;较佳地,通过设置PC值为获取数据的代码的入口地址,实现停止执行trace32practice脚本文件,开始执行获取数据的代码。Trace32调试器是由Lauterbach (德国劳特巴赫)公司研制开发的一款仿真测试工具,具有全模块化、积木式结构,可支持JTAG (联合测试行动小组)以及BDM (背景调试模式)接口和所有CPU (中央处理器),能够提供软件分析、端口分析、波形分析以及软件测试等功能。Trace32调试器提供有practice脚本语言功能,能够进行脚本编程、调试以及处理程序变量与命令。利用practice脚本,可以容易地对数据进行处理。本发明实施例将以Trace32调试器提供的脚本文件为例进行说明,支持数据处理的其他脚本文件同等适用于本发明。较佳地,可以通过执行trace32practice脚本文件在获取数据的代码中设置三个断点,可以通过执行traCe32praCtiCe脚本文件在获取数据的代码中设置两个断点,也可以通过执行traCe32praCtiCe脚本文件在获取数据的代码中设置四个断点,具体地,可以根据需要决定,本发明实施例以设置三个断点为例进行介绍,其他情况的实施方式与本发明实施例的实施方式类似。较佳地,可以通过执行trace32practice脚本文件在获取数据的代码中设置断点来实现循环交替执行代码与脚本,以实现获得模块中的数据,并且对获得的模块中的数据进行处理。较佳地,通过执行trace32practice脚本文件在获取数据的代码中设置三个断点之前还包括通过执行获取数据的代码确定三处地址。具体实施中,第一处地址为代码的入口地址;第二处地址为存储模块中的数据的局部变量入栈后的下一条代码行的地址;第三处地址为获取模块中的数据的下一条代码行的地址。较佳地,第二处地址可以为存储模块中的数据的局部变量入栈后的下一条代码行的地址,可以为存储模块中的数据的局部变量入栈后的下两条代码行的地址,也可以为存储模块中的数据的局部变量入栈后的下三条代码行的地址,具体地,可以为局部变量入栈后,并且局部变量中存储的模块中的数据更新前的任何一条代码行的地址。

较佳地,在定义的局部变量入栈后,可以得到局部变量的内存地址,即存储模块中的数据的地址。较佳地,根据执行获取数据的代码确定的三处地址,通过执行trace32practice脚本文件在获取数据的代码中设置三个断点在第一处地址处设置第一个断点,在第二处地址处设置第二个断点,以及在第三处地址处设置第三个断点。步骤303、通过执行获取数据的代码得到存储获取的模块中数据的地址;较佳地,可以通过执行脚本文件中修改程序计数器PC值的命令,停止执行脚本文件,并且开始执行获取数据的代码。较佳地,通过执行获取数据的代码得到存储获取的模块中数据的地址之前还包括执行获取数据的代码,设置在根据模块返回消息确定模块中不存在需要获取的数据情况下,代码的返回地址为第一断点处的地址。步骤304、执行到获取数据的代码中的第二个断点处时,停止执行获取数据的代码,开始执行脚本文件;较佳地,脚本中的wait ! run命令被激活,控制停止执行获取数据的代码,开始执行脚本文件。步骤305、执行脚本文件判断当前PC值是否等于获取数据的代码中设置的第二个断点处对应的地址,若相等,则执行步骤307 ;否则,则执行步骤306 ;步骤306、执行脚本文件判断当前PC值是否等于获取数据的代码中设置的第一个断点处对应的地址,若相等,则结束流程;否则,执行步骤312 ;步骤307、通过执行脚本文件确定并保存设置的地址,并且停止执行脚本文件,开始执行获取数据的代码;较佳地,脚本中的go命令被激活,控制停止执行脚本文件,开始执行获取数据的代码。步骤308、通过执行获取数据的代码调用模块的对外接口获取模块中的部分数据;
较佳地,通过执行获取数据的代码用获取的模块中的部分数据替代存储模块中的数据的局部变量中原来存储的模块中的数据。步骤309、执行到获取数据的代码中的第三个断点处时,停止执行获取数据的代码,开始执行脚本文件;步骤310、执行脚本文件判断当前PC值是否等于获取数据的代码中设置的第三个断点处对应的地址,若相等,则执行步骤312 ;否则,则执行步骤311 ;步骤311、执行脚本文件判断当前PC值是否等于获取数据的代码中设置的第一个断点处对应的地址,若相等,则结束流程;否则,执行步骤307 ;步骤312、通过执行脚本文件,从确定的地址中获得数据;步骤313、通过执行脚本文件对获取的模块中的数据进行处理,在处理完获取的模块中的数据之后,停止执行脚本文件,开始执行获取数据的代码;较佳地,对获取的模块中的数据进行处理包括下面情况中的部分或者全部分析获取的模块中的数据,输出对获取的模块中的数据进行分析后的分析结果。较佳地,可以将输出的对获取的模块中的数据进行分析后的分析结果保存到文件中。步骤314、判断模块中是否还存在需要获取的数据,若存在,则返回步骤308;否贝U,执行步骤315 ;较佳地,当模块中不存在需要获取的数据时,模块的对外接口提供的返回值会使调用接口获取数据的代码返回到第一个断点处,控制获取数据的代码结束运行。较佳地,当模块中不存在需要获取的数据时,模块的对外接口提供返回值为空,获取数据的代码执行到空语句时,获取数据的代码确定模块中不存在需要获取的数据,并根据预先设置的返回地址返回到第一断点处。步骤315、执行返回到获取数据的代码的第一个断点处,停止执行获取数据的代码,开始执行脚本文件;步骤316、执行脚本文件判断当前PC值是否等于获取数据的代码中设置的第一个断点处对应的地址,若相等,则结束流程;否则,执行步骤317 ;步骤317、执行脚本文件判断当前PC值是否等于获取数据的代码中设置的第二个断点处对应的地址,若相等,则执行步骤307 ;否则,执行步骤312。较佳地,本发明实施例中通过脚本中的wait ! run命令与go命令控制交替执行脚本文件以及获取数据的代码。基于同一发明构思,本发明实施例中还提供了一种对数据进行处理的设备,由于该设备解决问题的原理与本发明实施例的方法相似,因此该设备的实施可以参见方法的实施,重复之处不再赘述。图4为本发明实施例对数据进行处理的设备结构示意图,如图所示,本发明实施例的对数据进行处理的设备包括确定模块401,用于确定处理数据的脚本文件;处理模块402,用于通过确定的脚本文件对获取的模块中的数据进行处理。较佳地,处理模块402还用于通过执行获取数据代码获取模块中的数据。
较佳地,获取模块中的部分数据;处理模块402还用于判断模块中是否还存在需要获取的数据,若存在,则返回通过执行获取数据代码获取模块中的数据的步骤;否则,结束对数据进行处理。较佳地,处理模块402具体用于通过执行获取数据代码得到 存储获取的模块中数据的地址;通过执行脚本文件确定得到的地址;通过执行脚本文件,从确定的地址中获得数据,并对获得的数据进行处理。较佳地,处理模块402具体用于通过确定的脚本文件对获取的模块中的数据进行分析后,输出分析结果;或通过确定的脚本文件输出获取的模块中的数据,并对输出的数据进行分析。本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
权利要求
1.一种对数据进行处理的方法,其特征在于,该方法包括 确定处理数据的脚本文件; 通过确定的脚本文件对获取的模块中的数据进行处理。
2.如权利要求I所述的方法,其特征在于,通过确定的脚本文件对获取的模块中的数据进行处理之前,还包括 通过执行获取数据代码获取模块中的数据。
3.如权利要求2所述的方法,其特征在于,获取模块中的数据,具体包括获取模块中的部分数据; 所述通过确定的脚本文件对获取的模块中的数据进行处理之后,还包括 在确定模块中还有需要获取的数据后,返回继续执行通过执行获取数据代码获取模块中的数据的步骤。
4.如权利要求I所述的方法,其特征在于,通过执行获取数据代码获取模块中的数据之前,还包括 通过执行获取数据代码得到存储获取的模块中数据的地址; 通过执行所述脚本文件确定得到的所述地址; 通过确定的脚本文件对获取的模块中的数据进行处理,包括 通过执行所述脚本文件,从确定的所述地址中获得数据,并对获得的数据进行处理。
5.如权利要求I 4任一所述的方法,其特征在于,对获取的模块中的数据进行处理,包括 通过确定的脚本文件对获取的模块中的数据进行分析后,输出分析结果;或 通过确定的脚本文件输出获取的模块中的数据,并对输出的数据进行分析。
6.一种对数据进行处理的设备,其特征在于,该设备包括 确定模块,用于确定处理数据的脚本文件; 处理模块,用于通过确定的脚本文件对获取的模块中的数据进行处理。
7.如权利要求6所述的设备,其特征在于,所述处理模块还用于 通过执行获取数据代码获取模块中的数据。
8.如权利要求7所述的设备,其特征在于,获取模块中的部分数据; 所述处理模块还用于 在确定模块中还有需要获取的数据后,返回继续执行通过执行获取数据代码获取模块中的数据的步骤。
9.如权利要求6所述的设备,其特征在于,所述处理模块具体用于 通过执行获取数据代码得到存储获取的模块中数据的地址;通过执行所述脚本文件确定得到的所述地址;通过执行所述脚本文件,从确定的所述地址中获得数据,并对获得的数据进行处理。
10.如权利要求6 9任一所述的设备,其特征在于,所述处理模块具体用于 通过确定的脚本文件对获取的模块中的数据进行分析后,输出分析结果;或通过确定的脚本文件输出获取的模块中的数据,并对输出的数据进行分析。
全文摘要
本发明涉及调试分析技术,特别涉及一种对数据进行处理的方法和设备,用以解决现有技术中当需要改变进行分析的数据、改变输出的分析结果或者改变输出的分析结果的格式时都需要修改运行的代码,由于重新修改、编译与运行代码的过程比较繁琐,需要耗费很长的时间,因此不能快速展现修改后的代码的运行结果的问题。本发明实施例提供的对数据进行处理的方法包括确定处理数据的脚本文件;通过确定的脚本文件对获取的模块中的数据进行处理。本发明实施例实现了简化展现结果的过程,快速展现修改后的脚本的运行结果。
文档编号G06F9/44GK102880457SQ201210286688
公开日2013年1月16日 申请日期2012年8月13日 优先权日2012年8月13日
发明者何海建 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1