首页 / 专利库 / 软件 / 软件 / 软件检查装置、软件检查方法、软件检查程序

软件检查装置、软件检查方法、软件检查程序

阅读:2发布:2020-08-21

专利汇可以提供软件检查装置、软件检查方法、软件检查程序专利检索,专利查询,专利分析的服务。并且软件 检查装置从成为检查对象的源代码(D01)中,对分别属于SU区间、SL区间以及WU区间的语句进行确定(S03),并针对每个区间而确定在所确定的语句中被执行写入的寄存器(S04),其中,在SU区间内记述有在 计算机系统 启动时所执行的处理。对关于在从SU区间、SL区间以及WU区间选择的2个区间中的一者中存在写入、且在另一者中不存在写入的寄存器而设想的错误进行检测并输出(S05、S06)。,下面是软件检查装置、软件检查方法、软件检查程序专利的具体信息内容。

1.一种软件检查装置,其对记述有计算机系统所执行的处理的计算机程序进行检查,所述软件检查装置的特征在于,具备:
起点终点确定部,其从成为检查对象的所述计算机程序中,对启动区间、转换区间以及恢复区间的各自的起点及终点进行确定,其中,在所述启动区间内记述有在计算机系统启动时所执行的处理,在所述转换区间内记述有在计算机系统启动之后从正常模式向与所述正常模式相比计算机系统的消耗电低的低耗电模式转换时所执行的处理,在所述恢复区间内记述有在从低耗电模式向正常模式恢复时所执行的处理;
区间确定部,其基于由所述起点终点确定部确定的起点及终点,从在所述计算机程序所包含的语句中,确定分别属于所述启动区间、所述转换区间以及所述恢复区间的语句;
寄存器写入确定部,其针对每个区间,确定在由所述区间确定部确定的语句中被执行写入的寄存器;
数据存储部,其对危险性判定数据进行储存,所述危险性判定数据对关于在从所述启动区间、所述转换区间以及所述恢复区间选择的2个区间中的一者中存在写入、且在另一者中不存在写入的寄存器而设想的错误进行规定;
错误检测部,其利用在所述数据存储部中存储的所述危险性判定数据,对关于由所述寄存器写入确定部确定的寄存器而设想的错误进行检测;以及
检查结果输出部,其将针对由所述寄存器写入确定部确定的每个寄存器而由所述错误检测部检测出的错误输出。
2.根据权利要求1所述的软件检查装置,其特征在于,
还具备条件提取部,该条件提取部判断是否为了对由所述寄存器写入确定部确定的寄存器执行写入而规定了写入条件,并且在规定了写入条件的情况下提取该写入条件,所述错误检测部对在从所述启动区间、所述转换区间以及所述恢复区间选择的2个区间的一者中不存在写入条件且在另一者中存在写入条件的情况下、以及在2个区间的双方中规定了不同的写入条件的情况下,关于在2个区间的一者中存在写入、且在另一者中不存在写入的寄存器而设想的错误进行检测。
3.一种软件检查方法,其对记述计算机系统所执行的处理的计算机程序进行检查,所述软件检查方法的特征在于,
从成为检查对象的所述计算机程序中,对启动区间、转换区间以及恢复区间的各自的起点及终点进行确定,其中,在所述启动区间内记述有在计算机系统启动时所执行的处理,在所述转换区间内记述有在计算机系统启动之后从正常模式向与所述正常模式相比计算机系统的消耗电力低的低耗电模式转换时所执行的处理,在所述恢复区间内记述有在从低耗电模式向正常模式恢复时所执行的处理,
基于所确定的起点及终点,从所述计算机程序所包含的语句中,确定分别属于所述启动区间、所述转换区间以及所述恢复区间的语句,
针对每个区间,确定在所确定的语句中被执行写入的寄存器,
利用危险性判定数据对关于所述确定的寄存器而设想的错误进行检测,所述危险性判定数据对关于在从所述启动区间、所述转换区间以及所述恢复区间选择的2个区间中的一者中存在写入、且在另一者中不存在写入的寄存器而设想的错误进行规定,将针对每个寄存器而检测出的错误输出。
4.一种软件检查程序,其对记述计算机系统所执行的处理的计算机程序进行检查,所述软件检查程序的特征在于,使计算机实现如下功能:
从成为检查对象的所述计算机程序中,对启动区间、转换区间以及恢复区间的各自的起点及终点进行确定的功能,其中,在所述启动区间内记述有在计算机系统启动时所执行的处理,在所述转换区间内记述有在计算机系统启动之后从正常模式向与所述正常模式相比计算机系统的消耗电力低的低耗电模式转换时所执行的处理,在所述恢复区间内记述有在从低耗电模式向正常模式恢复时所执行的处理;
基于所确定的起点及终点,从所述计算机程序所包含的语句中,确定分别属于所述启动区间、所述转换区间以及所述恢复区间的语句的功能;
针对每个区间,确定在所确定的语句中被执行写入的寄存器的功能;
利用危险性判定数据对关于所述确定的寄存器而设想的错误进行检测的功能,所述危险性判定数据对关于在从所述启动区间、所述转换区间以及所述恢复区间选择的2个区间中的一者中存在写入、且在另一者中不存在写入的寄存器而设想的错误进行规定;以及将针对每个寄存器而检测出的错误输出的功能。

说明书全文

软件检查装置、软件检查方法、软件检查程序

技术领域

[0001] 本发明涉及软件检查装置、软件检查方法、软件检查程序。

背景技术

[0002] 当前,已知能够追加不会给处理速度等系统性能带来影响的应用程序的应用程序开发装置(参照专利文献1)。专利文献1的应用程序开发装置进行应用程序的检查,在信息处理装置内仅使被证明检查合格且对系统性能没有影响的应用程序进行动作。
[0003] 专利文献1:日本特开2012-063960号公报

发明内容

[0004] 但是,专利文献1是对应用程序执行时的存储器、处理速度等进行检查的所谓的动态检查,因此如果不实际执行则无法进行检查。因而,难以无遗漏地对应用程序中记述的所有路径进行检查。
[0005] 本发明就是鉴于上述课题而提出的,其目的在于提供能够通过未伴随有计算机程序的执行的静态方法而确定计算机程序的错误位置的软件检查装置、软件检查方法、软件检查程序。
[0006] 本发明的一个方式所涉及的软件检查装置,从成为检查对象的计算机程序中,确定分别属于启动区间、转换区间以及恢复区间的语句,并针对每个区间,确定在所确定的语句中被执行写入的寄存器,其中,在所述启动区间内记述有在计算机系统启动时所执行的处理,在所述转换区间内记述有在计算机系统启动之后从正常模式向与正常模式相比计算机系统的消耗电低的低耗电模式转换时所执行的处理,在所述恢复区间内记述在从低耗电模式向正常模式恢复时所执行的处理。而且,对关于在从启动区间、转换区间以及恢复区间选择的2个区间中的一者中存在写入、且在另一者中不存在写入的寄存器而设想的错误进行检测并输出。附图说明
[0007] 图1是表示实施方式所涉及的软件检查装置的硬件结构的框图
[0008] 图2是表示CPU 11的功能结构的框图。
[0009] 图3是表示由实施方式所涉及的软件检查装置执行的信息处理的流程的流程图
[0010] 图4(a)、(b)、(c)是表示作为由源代码输入部21读入的源代码D01而利用C语言记述的计算机程序的一个例子的图。
[0011] 图5是表示图2的入口点一览D04的一个例子的表。
[0012] 图6是表示图2的软件信息列表D02的一个例子的表。
[0013] 图7是表示图2的对应表D03的一个例子的表。
[0014] 图8是表示作为起点终点确定部22的确定结果的一个例子而在启动区间、转换区间以及恢复区间的各自的起点及终点所涉及的语句中直接或间接执行的函数的表。
[0015] 图9是表示图3的步骤S03的详细次序的一个例子的流程图。
[0016] 图10是表示按照图9所示的次序对语句进行分类的结果的表。
[0017] 图11是表示寄存器写入确定部24的确定结果的一个例子的表。
[0018] 图12是表示危险性判定数据D05的一个例子的表。
[0019] 图13是表示由检查结果输出部26输出的检测结果的一个例子的表。
[0020] 图14是表示变形例所涉及的CPU 11b的功能结构的框图。
[0021] 图15是表示由变形例所涉及的检查结果输出部26输出的检测结果的具体例的表。

具体实施方式

[0022] 参照附图对实施方式进行说明。在附图的记载中,对相同的部分标注相同的标号并省略说明。
[0023] 实施方式所涉及的软件检查装置能够应用于对如下计算机程序进行检查的处理中,该计算机程序记述有例如将搭载于车辆的电池用于电源的嵌入仪器(计算机系统)所进行的处理。
[0024] 在将车载电池用于电源的嵌入仪器的开发中,强烈要求针对因性能、功能的增强引起的消耗电力的增加而实现低耗电化。因此,嵌入仪器所具备的微机(硬件)中配备有使电力的消耗量减少的功能。另外,与此同时,即使在对微机进行控制的软件中,也进行从正常模式向低耗电模式的转换控制、以及从低耗电模式向正常模式的恢复控制。
[0025] 在向低耗电模式的转换或者从低耗电模式的恢复时,需要在软件中进行预定的过程。具体而言,在向低耗电模式转换时、以及从低耗电模式向正常模式恢复时,分别需要实施预定的寄存器、变量的设定或者再设定。这里,如果不存在所需的寄存器的设定、或者对寄存器设定的值存在错误,则无法正确进行向低耗电模式的转换或者恢复。最终陷入电池枯竭、或者计算机程序冻结的现象。
[0026] 实施方式所涉及的软件检查装置是利用静态解析方法,检查是否在向低耗电模式的转换或者恢复时正确地进行了寄存器的设定的装置。
[0027] [软件检查装置的硬件结构]
[0028] 参照图1,对实施方式所涉及的软件检查装置的硬件结构进行说明。作为软件检查装置的硬件结构,能够使用通用的计算机。例如,软件检查装置具备输入输出装置12、存储装置14、CPU(中央处理装置)11、输入装置13以及显示装置15。输入输出装置12从存储介质将检查对象的计算机程序(源代码D01)读入。存储装置14对利用输入输出装置12读入的源代码D01、解析的中间数据、以及解析所需的数据进行储存。CPU(中央处理装置)11执行各种运算并对源代码D01进行解析。输入装置13是用于由用户将解析所需的信息输入的装置。显示装置15对从CPU 11输出的检查结果进行显示。检查结果还能够利用输入输出装置12而写入存储介质中。对于源代码D01的具体例,后文中参照图4进行叙述。
[0029] 或者,软件检查装置还能够作为客户服务器模型而实现。例如,将通用的个人计算机(客户端)经由计算机网络而与服务器连接。由此,能够将具备图1所示的CPU 11的服务器经由计算机网络而与输入输出装置12、输入装置13、存储装置14、或者显示装置15连接。在该情况下,软件检查装置主要由CPU 11(服务器)构成,输入输出装置12、输入装置13、存储装置14、或者显示装置15不包含在软件检查装置中。
[0030] 参照图2对图1的CPU 11的功能结构进行说明。对于用于使具备CPU 11的计算机作为软件检查装置而起作用的计算机程序(软件检查程序),将其安装于具备CPU 11的计算机中而执行。由此,CPU 11作为下面示出的各信息处理部而起作用。此外,这里示出由软件实现软件检查装置的例子,但当然也可以准备用于执行下面示出的各信息处理的专用硬件而构成软件检查装置。对软件检查程序进行记录的记录介质是本发明的其他实施方式之一。
[0031] 第1实施方式所涉及的CPU 11a作为源代码输入部21、起点终点确定部22、区间确定部23、寄存器写入确定部24、错误检测部25以及检查结果输出部26而起作用。
[0032] 源代码输入部21从输入输出装置12或者输入装置13读取成为检查对象的计算机程序(源代码D01),并储存于存储装置14中。
[0033] 起点终点确定部22从成为检查对象的源代码D01中,确定启动区间、转换区间以及恢复区间的各自的起点及终点所涉及的语句。“启动区间”是指对在嵌入仪器启动时所执行的启动处理进行记述的区间。“转换区间”是指对在嵌入仪器启动之后从正常模式向低耗电模式转换时所执行的转换处理进行记述的区间。“恢复区间”是指对从低耗电模式向正常模式恢复时所执行的恢复处理进行记述的区间。低耗电模式是指与正常模式相比嵌入仪器的消耗电力低的模式。如果嵌入仪器启动,则首先执行启动处理,然后开始正常模式。在满足在预定时间内不存在来自用户的操作输入等的预定条件的情况下,经过“转换区间”而从正常模式向低耗电模式转换。在满足包含接受来自用户的操作输入在内的预定条件的情况下,经过“恢复区间”而从低耗电模式向正常模式恢复。
[0034] 将软件信息列表D02以及对应表D03输入至起点终点确定部22中。在软件信息列表D02中对与转换处理、恢复处理以及启动处理相关的软件信息进行记述。软件信息是在执行检查时由用户经由输入输出装置12或者输入装置13而登记的外部信息。软件信息列表D02例如是与正常模式和低耗电模式的分界线相关的信息、以及对中断许可及中断禁止进行控制的命令的列表。对于软件信息列表D02的具体例,后文中参照图6进行叙述。
[0035] 在对应表D03中记述对软件信息与转换区间、恢复区间以及启动区间之间的关系进行定义的区间对应数据。区间对应数据是在执行检查之前预先从输入输出装置12输入、并储存于存储装置14中的内部信息。起点终点确定部22利用软件信息列表D02以及对应表D03而对启动区间、转换区间以及恢复区间的各自的起点及终点进行确定。对于对应表D03以及起点和终点的确定方法的具体例,后文中参照图6及图7进行叙述。
[0036] 区间确定部23基于由起点终点确定部22确定的起点及终点,从源代码D01中所包含的语句中对分别属于启动区间、转换区间以及恢复区间的语句进行确定。区间确定部23从输入输出装置12或者输入装置13读取入口点一览D04、并储存至存储装置14中。区间确定部23针对在入口点一览D04中记述的入口点(程序的开始点)处被登记的函数,对属于各区间的语句进行确定。对于区间确定部23的具体的动作例,后文中参照图9及图10进行叙述。
[0037] 寄存器写入确定部24针对启动区间、转换区间以及恢复区间,分别确定在由区间确定部23确定的语句中被执行写入的寄存器。寄存器写入确定部24不仅可以确定寄存器,还可以确定在寄存器中执行写入的位置及其代入值。优选寄存器写入确定部24从在软件信息列表D02中登记的、除与消耗电力模式转换命令以及消耗电力模式恢复命令相关的寄存器以外的寄存器中,对执行写入的寄存器及其位置、代入值进行检测。对于寄存器写入确定部24的确定结果的具体例,后文中参照图11进行叙述。
[0038] 错误检测部25针对被执行写入的寄存器,对各区间内的写入的有无、代入值进行比较,并判定设定遗漏以及设定值错误的危险性。具体而言,错误检测部25利用危险性判定数据D05对关于由寄存器写入确定部24确定的寄存器而设想的错误进行检测。危险性判定数据D05在执行检查之前预先从输入输出装置12或者输入装置13读入、并储存于存储装置14(数据存储部)中。危险性判定数据D05对关于在从启动区间、转换区间以及恢复区间选择的2个区间中的一者中存在写入、且在另一者中不存在写入的寄存器而设想的错误进行规定。对于错误检测部25的检测结果的具体例,后文中参照图13进行叙述。
[0039] 检查结果输出部26将针对由寄存器写入确定部24确定的每一个寄存器而由错误检测部25检测出的错误输出。检查结果输出部26例如使寄存器名、文件名、行号、函数名等能够确定设定遗漏或者设定值错误位置的信息与区间相关联并输出。检查结果输出部26将其向显示装置15或者插入于输入输出装置12的存储介质输出。
[0040] [由软件检查装置执行的信息处理的次序]
[0041] 下面,作为实施方式所涉及的软件检查方法的一个例子,参照图3~图13对由图1及图2所示的软件检查装置所执行的信息处理的次序进行说明。
[0042] 首先,在步骤S01中,源代码输入部21例如从输入输出装置12读入成为检查对象的源代码D01、并将其储存至存储装置14中。此外,源代码D01可以预先由用户利用输入输出装置12读入至软件检查装置内、并储存于存储装置14中。在该情况下,不需要步骤S01的处理。图4(a)、(b)、(c)表示作为读入的源代码D01而由C语言记述的计算机程序的一个例子。成为检查对象的计算机程序被记述在图4(a)、(b)、(c)所示的3个文件中。图4(a)的文件名为“file1.c”,图4(b)的文件名为“file2.c”,图4(c)的文件名为“file3.c”。在由C语言记述的计算机程序的一个例子中,在各文件的左端部记载的从1开始的连续编号表示各语句的“行号”。在入口点一览D04中记述的函数“reset”(图5)中,在“file1.c”中对启动区间、转换区间、恢复区间进行记述,在各区间内对子程序调用进行记述,根据子程序调用而执行“file2.c”或者“file3.c”的语句。在“file1.c”中对许可中断的“EI”、禁止中断的“DI”进行记述。
[0043] 然后,在步骤S02中,起点终点确定部22从读入的源代码D01中对启动区间、转换区间以及恢复区间的各自的起点及终点所涉及的语句进行确定。首先,将由用户输入的图6所示的软件信息列表D02读入。在软件信息列表D02中,预先准备图6中示出的左侧的项目(1.~6.),对此,用户对在图6中示出的右侧的栏进行输入。然后,起点终点确定部22从存储装置14将图7所示的对应表D03读入。对应表D03对启动区间、转换区间以及恢复区间的各自的起点及终点、与图6的软件信息列表D02的左侧的项目(1.~6.)之间的对应关系进行定义。起点终点确定部22基于软件信息列表D02以及对应表D03,对由各区间的起点及终点所涉及的语句直接或间接执行的函数进行确定。图8的表中示出起点终点确定部22的确定结果。在图8中,在“SLEEP”及“WAKEUP”被确定为“直接执行的函数”的情况下,“间接执行的函数”得到确定。其理由在于,在图4的例子中,函数“SLEEP”以及“WAKEUP”在“reset”或者“interrupt1”(间接执行的函数)中被执行。
[0044] 然后,在步骤S03中,区间确定部23针对图5所示的在入口点处登记的函数,对属于启动区间、转换区间以及恢复区间的各自的起点与终点之间的语句进行确定。参照图9对步骤S03的详细次序进行说明。在图9所示的次序中,按照执行顺序对语句进行检查,基于软件信息列表D02以及对应表D03而判定是否与相当于各区间的起点·终点的代码、或者函数一致,根据其结果而将语句登记于相应的区间中。
[0045] 首先,在步骤S31中,选择在入口点处登记的函数(例如“reset”)中的最初的语句(例如“file1.c”的第2行)。在步骤S32中,将选择的语句分类至所属的区间内。在选择的语句中记述在启动区间(SU区间)的起点处执行的函数“reset”的情况下,在步骤S33中,对SU区间标志设定“1”。在相当于SU区间的终点的代码(file1.c的紧邻第8行之前)的情况下,在步骤S34中将SU区间标志重置为“0”。在相当于转换区间(SL区间)的起点的代码(file1.c的第11行、file2.c的第9行)的情况下,在步骤S35中对SL区间标志设定“1”。在相当于SL区间的终点的代码(紧邻REG111=1;之前)的情况下,在步骤S36中将SL区间标志重置为“0”。在相当于恢复区间(WU区间)的起点的代码(紧随REG111=0;之后)的情况下,在步骤S37中对WU区间标志设定“1”。在相当于WU区间的终点的代码(file1.c的紧邻第8行之前)的情况下,在步骤S38中将WU区间标志重置为“0”。
[0046] 进入步骤S39,根据SU区间、SL区间以及WU区间的各标志的状态而对选择的语句进行分类。在对SU区间标志设定“1”的情况下,在步骤S40中,将选择的语句作为属于SU区间的语句而进行登记。在对SL区间标志设定“1”的情况下,在步骤S41中,将选择的语句作为属于SL区间的语句而进行登记。在对WU区间标志设定“1”的情况下,在步骤S42中,将选择的语句作为属于WU区间的语句而进行登记。
[0047] 进入步骤S43,如果在源代码D01中存在下一个语句(S43中为YES),则选择下一个语句(S44),反复实施上述的步骤S32~S42。
[0048] 图10表示根据图9所示的次序对语句进行分类的结果。区间确定部23将图5所示的在入口点处登记的函数“reset”及“interrupt1”作为对象而对语句进行分类。图10的右端的3个项目分别表示SU区间、SL区间以及WU区间的标志的状态。file1c的第2、3、5行的语句被设定了SU区间标志的“1”,并作为属于SU区间的语句而被登记。同样对属于SL区间以及WU区间的语句进行登记。此外,图10的间接函数是指图8所示的间接函数。
[0049] 返回到图3,在步骤S04中,寄存器写入确定部24对步骤S03中在各区间内被登记的语句进行解析,检测对寄存器执行写入的语句。寄存器是除与图6的“4.低耗电模式的转换命令”以及“5.低耗电模式的恢复命令”相关的寄存器(REG111)以外的寄存器。在各区间内登记的语句是函数调用的情况下,对该函数进行解析,同样对语句进行检测。在各区间内登记的语句是函数调用、且是间接地执行起点或终点的函数的情况下,对该函数进行解析,对起点及其以后或者终点以前的语句进行解析。针对被检测的语句而登记被执行写入的寄存器名和代入值。寄存器写入确定部24针对每个区间而对处理的结果进行分类并进行输出。图11中示出其结果的一个例子。
[0050] 进入步骤S05,错误检测部25例如利用图12所示的危险性判定数据D05而检测针对被执行写入的寄存器所设想的错误。
[0051] 在向低耗电模式转换时,为了减少电力的消耗量,嵌入仪器所具备的微机(硬件)使各种各样的功能(例如,模拟/数字变换功能)无效,在从低耗电模式恢复时,使设为无效的功能变为有效。针对该硬件所具备的功能的无效/有效,需要进行在软件中也需要的处理(寄存器的设定/再设定)。例如,即使将模拟/数字变换功能无效,噪声也会在数据寄存器接受输入的状态下被输入至数据寄存器中,在再次变为有效时,微机对该噪声、即意外的数据进行处理。因而,设想如下错误,即,在SL区间以及WU区间中的一者的区间内存在向寄存器的写入、且在另一者中不存在向寄存器的写入的情况下,向低耗电模式的转换/恢复时的寄存器的设定遗漏。
[0052] 对于在启动处理时进行初始化的寄存器而言,在恢复处理时也同样需要进行再初始化。因而,设想如下错误,即,在SU区间以及WU区间中的一者的区间内存在向寄存器的写入、且在另一者中不存在向寄存器的写入的情况下,寄存器的初始化或者再初始化遗漏。并且,设想如下情况,即,在SU区间以及WU区间的两个区间内被进行了写入但写入了不同的代入值的情况下,寄存器的初始化或者再初始化中的设定值存在错误。
[0053] 根据以上观点,错误检测部25例如利用图12所示的危险性判定数据D05而检测针对被执行写入的寄存器所设想的错误。图13中示出错误检测部25的检测结果。
[0054] 寄存器“REG1”在SU区间及SL区间内被执行写入,但在WU区间内未被执行写入。因而,关于寄存器“REG1”,设想向低耗电模式的转换/恢复时的寄存器的设定遗漏的错误、以及寄存器的初始化或者再初始化遗漏的错误。寄存器“REG2”在SL区间以及WU区间内被执行写入,但在SU区间内未被执行写入。因而,关于寄存器“REG2”,设想寄存器的初始化或者再初始化遗漏的错误。寄存器“REG3”在SU区间、SL区间以及WU区间内全部都被执行写入,但代入值不同。因而,关于寄存器“REG3”,设想寄存器的初始化或者再初始化中的设定值存在错误。寄存器“REG4”在SU区间内被执行写入,但在SL区间以及WU区间内未被执行写入。因而,关于寄存器“REG4”,设想寄存器的初始化或者再初始化遗漏的错误。
[0055] 进入步骤S06,检查结果输出部26将针对在步骤S04中确定的每一个寄存器而在步骤S05中检测出的错误输出。输出形式例如可以是图13所示的表的形式。
[0056] 如以上说明,根据本发明的实施方式,能够得到下面的作用效果。
[0057] 从源代码D01中对分别属于SU区间、SL区间以及WU区间的语句进行确定,针对每个区间而确定在所确定的语句中被执行写入的寄存器。而且,对关于在从SU区间、SL区间以及WU区间选择的2个区间中的一者中存在写入、且在另一者中不存在写入的寄存器而设想的错误进行检测并将其输出。由此,能够不实际执行计算机程序而通过静态解析方法对计算机程序的错误位置进行确定。另外,能够通过静态解析方法而无遗漏地对计算机程序中记述的所有路径进行检查。
[0058] 能够在源代码核查的阶段检测出仅能在系统级的测试中检测出的错误。通过源代码的解析而汇总所有处理、所有变量、所有处理和变量的组合进行检查,因此与通过手动方式制作测试例的到目前为止的方法相比,能够进行正确的测试。另外,能够在较早的阶段检测出不良情况,因此能够削减错误分析工时、错误校正工时。
[0059] 在遗留代码之类的规格说明书不完备的代码、通过分散开发等而在其他场所开发的代码等、与向低耗电模式的转换处理以及从低耗电模式的恢复处理相关的信息不完备或者未被管理的例子中,能够从源代码中自动地检测出转换处理以及恢复处理中的寄存器设定的错误的效果较大。通过源代码的解析而汇总所有处理、所有变量、所有处理和变量的组合进行检查,由此能够高效地发现遗留代码的移植错误、分散开发的源代码的结合错误。
[0060] 如果软件的复杂化、衍生开发的重复的程度加重,则会因管理失误、记述错误而生成意外的路径,产生所需的针对寄存器的设定处理的遗漏、不必要的针对寄存器的设定处理的混入。根据本实施方式,能够通过静态解析方法而无遗漏地对计算机程序中记述的所有路径进行检查,因此能够确定因意外的路径的产生而引起的与寄存器的设定相关的错误。
[0061] (变形例)
[0062] 在实施方式中,基于各区间内的寄存器的写入的有无以及代入值的不一致而对错误进行判定。为了执行寄存器的写入,可以还考虑写入条件而对错误进行判定。即,可以在2个区间内对寄存器执行了相同的值的写入但为了执行写入仅在一者的区间内设定了条件句的情况下,判断为产生了设想的错误。
[0063] 参照图14对变形例所涉及的CPU 11b的功能结构进行说明。CPU11b与图2的CPU 11a相比不同点在于,还具备条件提取部27,该条件提取部27判断是否为了对由寄存器写入确定部24确定的寄存器执行写入而规定了写入条件,并且在规定了写入条件的情况下,对该写入条件进行提取。其他结构与CPU 11a相同,将说明省略。
[0064] 错误检测部25对在从SU区间、SL区间以及WU区间选择的2个区间的一者中不存在写入条件且在另一者中存在写入条件的情况下、以及在2个区间的双方中规定了不同的写入条件的情况下,关于在2个区间的一者中存在写入、且在另一者中不存在写入的寄存器而设想的错误进行检测。
[0065] 在向寄存器的写入根据区间内的写入条件而被执行的情况下,如果不满足写入条件,则向寄存器的写入有可能不被执行。因而,在该情况下,与不存在向寄存器的写入的情况同样地进行应对。
[0066] 图15中示出错误检测部25的检测结果的一个例子。与图13相比,针对每个区间而追加有“写入条件”一栏。另外,在寄存器“REG3”的WU区间内对写入条件进行检测。因而,错误检测部25在WU区间内重新检测在未对寄存器“REG3”执行写入的情况下设想的错误,具体而言,检测寄存器的初始化或者再初始化遗漏的错误。
[0067] 根据变形例,还考虑写入条件的有无而对错误进行检测,因此错误位置的检测精度提高。
[0068] 如上所述,对本发明的实施方式进行了记载,但不应当理解为本发明受到构成本公开的一部分的论述及附图的限定。根据本公开,对本领域技术人员而言,各种各样的代替实施方式、实施例以及运用技术是显而易见的。
[0069] 这里引用日本特愿2013-198138号(申请日:2013年9月25日)的全部内容。
[0070] 标号的说明
[0071] 14 存储装置(数据存储部)
[0072] 21 源代码输入部
[0073] 22 起点终点确定部
[0074] 23 区间确定部
[0075] 24 寄存器写入确定部
[0076] 25 错误检测部
[0077] 26 检查结果输出部
[0078] 27 条件提取部
[0079] D01 源代码(计算机程序)
[0080] D05 危险性判定数据
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈