CN1979422A - 用以获得应用程序代码执行率的仿真装置及其方法 - Google Patents

用以获得应用程序代码执行率的仿真装置及其方法 Download PDF

Info

Publication number
CN1979422A
CN1979422A CN 200510127728 CN200510127728A CN1979422A CN 1979422 A CN1979422 A CN 1979422A CN 200510127728 CN200510127728 CN 200510127728 CN 200510127728 A CN200510127728 A CN 200510127728A CN 1979422 A CN1979422 A CN 1979422A
Authority
CN
China
Prior art keywords
code
module
function
program
application program
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN 200510127728
Other languages
English (en)
Other versions
CN100456248C (zh
Inventor
刘凯
杨有成
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Lingyang Chengxin Technology Chengdu Co ltd
Original Assignee
BEIJING BEIYANG ELECTRONIC TECHNOLOGY Co Ltd
Sunplus Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by BEIJING BEIYANG ELECTRONIC TECHNOLOGY Co Ltd, Sunplus Technology Co Ltd filed Critical BEIJING BEIYANG ELECTRONIC TECHNOLOGY Co Ltd
Priority to CNB2005101277281A priority Critical patent/CN100456248C/zh
Publication of CN1979422A publication Critical patent/CN1979422A/zh
Application granted granted Critical
Publication of CN100456248C publication Critical patent/CN100456248C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种用以获得应用程序代码执行率的仿真装置及其方法,包括系统模拟模块,用于实现对CPU及各功能模块的模拟,根据所述应用程序代码的运行情况,提供执行代码指令的参数信息;外设功能模拟模块,与所述系统模拟模块相连,用于实现对受控于系统模拟模块的外设功能的模拟;调试信息获取模块,用于获取编译器在编译操作后产生的调试信息,提供所述应用程序的每一行代码与程序指针的对应关系;代码统计模块,用于根据系统模拟模块提供的执行代码指令的参数信息,与调试信息获取模块提供的应用程序的每一行代码与程序指针的对应关系,对应用程序代码的执行率进行计算。本发明方便快捷的实现了对代码覆盖率以及执行效率的统计。

Description

用以获得应用程序代码执行率的仿真装置及其方法
技术领域
本发明涉及一种仿真(Simulation)系统及方法,尤其涉及一种用以获得应用程序代码执行率的仿真装置及其方法。
背景技术
代码覆盖率(Code Coverage)是用以衡量应用程序代码的执行效率的一个重要指标,因此,对于代码覆盖率的衡量与计算也是一种重要的软件技术。
目前,比较流行的代码覆盖率的计算技术,是在用户程序编译时,在应用程序中插入特殊的代码或指令,称为桩点,并根据插入的位置等信息构建数据库,当程序运行到桩点时,特殊指令被执行,产生特定的动作,如进入异常(exception)处理程序,或向特定地址写入特定的数据等,动作目的是通知相应的分析模块,告知该桩点已被执行,分析模块根据之前建好的数据库信息,以及所经过的桩点信息,分析统计出代码的执行覆盖率等。
打桩技术一般应用于c,c++代码,通常需要编译器(compiler)配合,编译时打入桩点,或者在进行编译之前,需要特殊的预处理模块对源文件进行特别的预处理(比如在源文件中程序分支或语句,函数之后插入特殊的代码),再通过编译器生成目标代码。
然而,这种方式的主要缺点为:
1、需要编译器进行调整修改,或提供专门的原文件预处理模块。
2、由于是在文件中插入代码或特殊指令,在一定的程度上影响程序的执行,同时特殊代码的执行本身需要执行时间,消耗一定的资源,所以打桩后的程序与最终的目标程序存在差别,统计结果存在一定的误差,甚至执行流程结果会产生错误。
3、存在打桩密度问题,即在何处打桩,打多少桩,如果打桩太少将不能有效的统计,太多则严重影响执行效率与统计结果误差。
4、对于汇编语言编写的代码有可能不能很好的处理。
此外,还有一些硬件技术,例如通过片上两个计数器和两个触发控制寄存器的工作,提供对软件性能剖析功能的支持。虽然这种技术进行代码剖析时,不需打桩插入代码,且不会因此影响程序执行的速度,但由于它需要一定的硬件资源的支持,且一次只能对部分代码进行性能剖析,因此,使用不方便,且需增加额外的电路成本。
由此可见,如何提供一种方便快捷的计算应用程序代码覆盖率的系统及方法,已经成为业内亟待解决的问题。
发明内容
本发明所要解决的技术问题在于提供一种用以获得代码覆盖率的仿真装置及其方法,其不需要对程序进行打桩,可方便快捷的计算应用程序代码覆盖率。
为解决上述技术问题,本发明提供一种用以获得应用程序代码执行率的仿真装置,包括:
系统模拟模块,用于实现对CPU及各功能模块的模拟,根据所述应用程序代码的运行情况,提供执行代码指令的参数信息;
调试信息获取模块,用于获取编译器在编译操作后产生的调试信息,提供所述应用程序的每一行代码与程序指针的对应关系;
代码统计模块,用于根据系统模拟模块提供的执行代码指令的参数信息,与调试信息获取模块提供的应用程序的每一行代码与程序指针的对应关系,对应用程序代码的执行率进行计算。
本发明还可以进一步包括:外设功能模拟模块,与所述系统模拟模块相连,用于实现对受控于系统模拟模块的外设功能的模拟。
本发明还提供一种利用仿真装置获得应用程序代码执行率的方法,包括如下步骤:
(1)利用仿真装置模拟应用程序运行的计算机环境;
(2)编译所述应用程序的源代码,产生执行代码以及每一行代码与程序指针的对应关系;
(3)由仿真装置运行执行代码,并根据所述代码的运行情况,记录执行代码指令的参数信息;
(4)根据所述执行代码指令的参数信息,与应用程序的每一行代码与程序指针的对应关系,计算出应用程序代码的执行率。
本发明不需要编译器特殊处理,以及特别的源文件预处理模块。程序中不需要打桩,不破坏目标应用程序,目标程序与被测试程序一致,不存在执行误差,以及额外的时钟周期消耗。每一条语句指令都可得到统计分析,可以说是最密的打桩密度,统计结果准确。
附图说明
图1为根据本发明实施例所述的获得应用程序代码执行率的仿真装置结构示意图;
图2为根据本发明实施例所述的代码统计模块示意图;
图3为根据本发明实施例所述的可获得应用程序代码执行率的仿真方法流程示意图;
图4为根据本发明实施例所述的运行执行代码的流程示意图。
具体实施方式
仿真装置(Simulator),就是使用计算机的资源来模拟内含有MPU/MCU(主处理单元)控制的任何计算机装置的一种功能模拟器。它通常被作为以MPU/MCU控制的电子产品的开发工具而提供给MPU/MCU用户。
如图1所示,为根据本发明实施例所述的获得应用程序代码执行率的仿真装置1,包括系统模拟模块11、外设功能模拟模块12、调试信息获取模块13,以及代码统计模块14。
其中,所述系统模拟模块11实现对CPU的模拟和MPU中其它功能模块的模拟;
所述外设功能模拟模块12实现对受控于MPU的一些外设功能的模拟;
调试(Debug)信息获取模块13用于获取编译器在编译链接操作后产生的调试(Debug)信息,提供所述应用程序的每一行代码与程序指针的对应关系;
代码统计模块14用于根据系统模拟模块提供的执行代码指令的指令序列与调试(Debug)信息获取模块13获取的所述应用程序的每一行代码与程序指针的对应关系获得代码覆盖率和函数的执行覆盖率,同时,代码统计模块14还可以用于根据系统模拟模块提供的记录每条指令所消耗的CPU时钟周期和调试(Debug)信息获取模块13提供的调试(Debug)信息以获得程序的执行效率。
现有的仿真装置一般都具有MPU系统模拟模块,以及受控的外设功能模拟模块,因此,实施本发明,可以充分利用现有仿真装置中的功能模块。
如图1所示,MPU系统模拟模块11可以包括CPU模拟单元、存储器单元、定时器功能单元、中断功能单元、外设接口单元。
CPU模拟单元是仿真装置的核心,其包括对CPU指令操作码的模拟和对CPU资源的模拟,通过PC(Program Counter,程序指针)指向要模拟的指令操作码地址,从存储器单元的该地址中取出该要模拟的指令码,解释、并执行该指令码。每模拟执行完一条指令码,就要更新PC、CCC(Cpu CycleCounter,CPU时钟周期计数器)中的内容,为下一条指令的模拟执行准备,同时,也提供出CPU重要的资源,即CPU的空间、时间资源,尤其是CCC的内容,即模拟的CPU时钟周期,可以作为系统的时间基准被提供。
一般来说,PC里面可以写8-bit数据,但是其实只有0--15是有意义的,它就是指令段的地址。而所谓“程序指针”的意义,就是说“CPU下一步要执行的工作,便是PC内容所指的地址”。
例如,假定硬件平台为860T,时钟为50MHz;SDRAM空间4M×32bit,地址范围从0x00000000~0x00FFFFFF,访问时间10ns;Flash空间512K×8bit,访问时间为100ns,地址范围从0x02800000~0x0287FFFF(至于其它单片机,运行原理大致相同,可以类推)。860T在上电后,PC(Program Counter)=0x2800100,程序从PC指定的地方执行,首先执行初始化代码(BootCode),再执行主程序(AppCode)。程序从Flash中读取指令代码(code),来完成数据的传输。
此外,一条机器指令一般就是指一行源代码。一个软件的源代码行数不包括程序注释、作业命令、调试程序在内。
如图1所示,存储器单元可以包括一组特殊功能寄存器连接定时器功能单元、中断功能单元、外设接口单元。通常,可以用计算机的存储器资源来模拟MPU的存储器,用计算机的存储器单元来模拟MPU中特殊功能寄存器单元(譬如实现定时器功能的各个单元,实现中断功能的各个单元,以及实现各I/O接口功能的各个单元等等),并通过编写一些软件来模拟这些特殊功能寄存器单元的功能。通过对CPU指令操作码的模拟执行,会对MPU的存储器进行读写操作,尤其是对一系列的特殊功能寄存器进行读写操作,这些读写操作便会触发上述特殊功能寄存器单元模拟软件的执行,从而实现MPU各功能模块的模拟。
外设功能模拟模块12,可以包括LCD功能单元、键盘功能单元、音频功能单元、其它功能单元。对MPU控制的上述各个外设功能的模拟可通过在计算机显示器上编写出各种GUI,来提供各外设功能的支持。譬如,在显示器上编写出受MPU控制的LCD各种操作UI,如LCD设置UI、LCD显示UI,键盘的I/O设置UI、键盘使用显示UI等等。当然,上述各外设的使用显示内容要相应于上述CPU指令码的模拟执行,即通过对MPU各个特殊功能寄存器的读写操作的模拟,才可真正实现各外设的功能。
如图2所示,代码统计模块14还可以进一步包括代码覆盖率模块141,与代码执行效率模块142。
其中,代码覆盖率模块141用于根据调试(Debug)信息获取模块13提供的调试(Debug)信息中的每一行代码对应的PC的信息,根据仿真装置1的系统模拟模块执行指令的PC序列,可分析出源代码中每一行是否被执行过,计算出其代码覆盖率。
其中,计算代码覆盖率的公式为:代码覆盖率=被执行过的代码行数/总的代码行数。
代码覆盖率的处理中,除可分析出源代码中每一行是否被执行过外,还可以进一步分析源代码中每一行被执行的次数。
此外,代码覆盖率模块141,还用于根据调试(Debug)信息获取模块13提供的调试(Debug)信息中函数的起始地址(PC)与结束地址(PC),可以确定其在源代码中对应的行信息即函数的总行数,根据之前分析的每行被执行的状况可分析统计出函数的执行覆盖率。
其中,计算函数的执行覆盖率的公式为:函数的执行覆盖率=函数中被执行的行数/函数总行数。
如图2所示,代码执行效率模块142,可以通过记录每一条指令所消耗的CPU时钟周期,并通过调试(Debug)获取模块13提供的调试(Debug)统计出源代码中每一行消耗的CPU时钟周期。
其中,所述的调试(Debug)获取模块13提供的调试(Debug)是指:行(line)与指令(PC)的对应关系,其将上述每一条指令所消耗的CPU时钟周期加到对应的行(line)中,可以统计出源代码中每一行消耗的CPU时钟周期,即代码执行效率。
此外,代码执行效率模块142,还可以对函数执行效率进行统计,通过建立函数的调用栈,对仿真装置1执行的每一条指令进行分析,如果是函数调用(call)指令,则将当前的PC以及被调用的函数PC、当前仿真装置运行的总CPU时钟周期压入栈中,执行结束后,用当前仿真装置运行的总CPU时钟周期减去之前记录的CPU时钟周期,结果即为函数运行消耗的CPU时钟周期,记录该结果。根据之前记录的PC值,将函数执行的周期记录到对应的行(line)中,再从栈中弹出之前压入的相应内容。
参见图3,为根据本发明实施例所述的可获得应用程序代码执行率的仿真方法流程示意图,首先利用仿真装置模拟应用程序运行的计算机环境(步骤301);然后编译所述应用程序的源代码,产生执行代码(target file)以及每一行代码与程序指针的对应关系(步骤302);由仿真装置运行执行代码,并记录执行代码指令的参数信息,例如每条指令的程序指针序列以及每条指令消耗的CPU时钟周期等(步骤303);根据所述每一行代码与程序指针的对应关系、CPU时钟周期,以及程序指针序列等参数信息,分析每一行代码是否被执行过,从而计算出所述应用程序的代码覆盖率以及执行效率等信息(步骤304)。
其中,可以利用上述的仿真装置模拟出目标程序运行的计算机软硬件环境;在源代码经过编译处理后,产生目标系统的执行代码,同时产生debug信息;然后运行执行代码,启动代码统计模块,记录每条指令执行消耗的CPU时钟周期数和每条指令的PC;代码统计模块根据记录每条指令所消耗的CPU时钟周期和Debug信息获得代码覆盖率、函数的执行覆盖率和程序的执行效率等信息。
其中,对于代码覆盖率的处理,可以利用上述的代码覆盖率模块,通过调试信息中的每一行对应的PC的信息,根据仿真装置执行指令的PC序列,分析出源代码中每一行是否被执行过,从而计算出其代码覆盖率。其中,计算代码覆盖率的公式为:代码覆盖率=被执行过的代码行/总的代码行数
代码覆盖率的处理中,除可分析出源代码中每一行是否被执行过外,还能分析出源代码中每一行被执行的次数。
对于一个函数的执行覆盖率统计,可以根据debug信息中函数的起始与结束PC可以确定其在源代码中对应的行信息,根据之前分析的每行被执行的状况可分析统计出函数中的执行覆盖率。
其中,计算函数的执行覆盖率的公式为:函数的执行覆盖率=函数中被执行的行数/函数总行数。
对于执行效率的统计处理,可以利用上述代码执行效率模块根据每一条指令所消耗的周期,通过debug信息统计出源代码中每一行消耗的CPU时钟周期,即代码执行效率。
对于函数的执行效率的处理,可以通过建立函数的调用栈,对仿真装置1执行的每一条指令进行分析,如果是函数调用(call)指令,则将当前的PC以及被调用的函数PC、当前仿真装置运行的总CPU时钟周期压入栈中,执行结束后,用当前仿真装置运行的总CPU时钟周期减去之前记录的CPU时钟周期,结果即为函数运行消耗的CPU时钟周期,记录该结果。根据之前记录的PC值,将函数执行的周期记录到对应的行(line)中,再从栈中弹出之前压入的相应内容。
如图4所示,为根据本发明实施例所述的运行执行代码的流程示意图。首先,初始化PC、CCC(Cpu Cycle Counter)(步骤401);然后通过PC指向要模拟的指令操作码地址,从存储器的该地址中取出该要模拟的指令码(步骤402);更新PC、CCC中的内容(步骤403、404);解释、并执行该指令码(步骤405);判断是否需要中断处理(步骤406);若是,进行必要的处理,调整PC(步骤407);若否,则判断是否继续仿真装置执行代码的运行(步骤408);若是,则返回步骤402;若否,则停止仿真装置执行代码的运行。
这样,就可以通过仿真装置在计算机上模拟出目标应用程序运行的软硬件环境,并模拟实际环境的时钟周期。在仿真装置运行目标应用程序时,仿真装置会记录应用程序执行的指令序列,即程序运行所经过的每一条指令的PC以及每条指令所消耗的CPU时钟周期。建立数据库,通过编译器生成的debug信息,将可以得到每条PC对应的原文件的行号,文件名等信息。结合数据库中经过的每一条PC信息,与debug信息可以分析统计出原文件的代码执行覆盖率,以及每个函数,每一条语句的执行效率。

Claims (16)

1、一种用以获得应用程序代码执行率的仿真装置,其特征在于,包括:
系统模拟模块,用于实现对CPU及各功能模块的模拟,根据所述应用程序代码的运行情况,提供执行代码指令的参数信息;
调试信息获取模块,用于获取编译器在编译操作后产生的调试信息,提供所述应用程序的每一行代码与程序指针的对应关系;
代码统计模块,用于根据系统模拟模块提供的执行代码指令的参数信息,与调试信息获取模块提供的应用程序的每一行代码与程序指针的对应关系,对应用程序代码的执行率进行计算。
2、如权利要求1所述的装置,其特征在于,进一步包括:外设功能模拟模块,与所述系统模拟模块相连,用于实现对受控于系统模拟模块的外设功能的模拟。
3、如权利要求1所述的装置,其特征在于:
所述系统模拟模块,提供的执行代码指令参数信息包括:程序指针序列信息;
所述代码统计模块,包括:
代码覆盖率模块,用于根据系统模拟模块提供的程序指针序列信息,与调试信息获取模块提供的应用程序的每一行代码与程序指针的对应关系,分析所述应用程序的每一行代码是否被执行过,从而计算出所述应用程序的代码覆盖率。
4、如权利要求3所述的装置,其特征在于,所述代码覆盖率模块,进一步根据系统模拟模块提供的程序指针序列信息,与调试信息获取模块提供的应用程序的每一行代码与程序指针的对应关系,分析出所述应用程序的每一行代码被执行的次数。
5、如权利要求3所述的装置,其特征在于:
所述调试信息获取模块,进一步提供应用程序执行中函数的起始地址与结束地址给所述代码覆盖率模块;
所述代码覆盖率模块,进一步根据系统模拟模块提供的程序指针序列信息、调试信息获取模块提供的应用程序的每一行代码与程序指针的对应关系,以及调试信息获取模块提供的函数起始地址与结束地址,确定函数在应用程序代码中对应的行信息,进而计算出函数的执行覆盖率。
6、如权利要求1所述的装置,其特征在于:
所述系统模拟模块,提供的执行代码指令参数信息包括:每条指令消耗的CPU时钟周期信息;
所述代码统计模块,包括:
代码执行效率模块,用于根据系统模拟模块提供的CPU时钟周期信息,与调试信息获取模块提供的所述应用程序的每一行代码与程序指针的对应关系,计算出每一行代码消耗的CPU时钟周期。
7、如权利要求6所述的装置,其特征在于,所述的代码执行效率模块,进一步根据系统模拟模块提供的CPU时钟周期信息,与调试信息获取模块提供的所述应用程序的每一行代码与程序指针的对应关系,分析其中的函数调用指令,计算出函数执行效率。
8、一种利用仿真装置获得应用程序代码执行率的方法,其特征在于,包括如下步骤:
(1)利用仿真装置模拟应用程序运行的计算机环境;
(2)编译所述应用程序的源代码,产生执行代码以及每一行代码与程序指针的对应关系;
(3)由仿真装置运行执行代码,并根据所述代码的运行情况,记录执行代码指令的参数信息;
(4)根据所述执行代码指令的参数信息,与应用程序的每一行代码与程序指针的对应关系,计算出应用程序代码的执行率。
9、如权利要求8所述的方法,其特征在于:
步骤(3)所述的执行代码指令的参数信息,包括:程序指针序列信息;
步骤(4)所述计算出应用程序代码的执行率,包括:
根据程序指针序列信息,与应用程序的每一行代码与程序指针的对应关系,分析所述应用程序的每一行代码是否被执行过,从而计算出所述应用程序的代码覆盖率。
10、如权利要求9所述的方法,其特征在于,计算代码覆盖率的公式为:代码覆盖率=被执行过的代码行数/总的代码行数。
11、如权利要求9所述的方法,其特征在于,所述步骤(4),进一步包括:根据程序指针序列信息,与应用程序的每一行代码与程序指针的对应关系,分析出所述应用程序的每一行代码被执行的次数。
12、如权利要求9所述的方法,其特征在于:
所述步骤(2),进一步产生应用程序执行中函数的起始地址与结束地址;
所述步骤(4),进一步根据程序指针序列信息、应用程序的每一行代码与程序指针的对应关系,以及函数起始地址与结束地址,确定函数在应用程序代码中对应的行信息,进而计算出函数的执行覆盖率。
13、如权利要求12所述的方法,其特征在于,所述计算函数的执行覆盖率的公式为:函数的执行覆盖率=函数中被执行的行数/函数总行数。
14、如权利要求8所述的方法,其特征在于:
步骤(3)所述的执行代码指令的参数信息,包括:每条指令消耗的CPU时钟周期;
步骤(4)所述计算出应用程序代码的执行率,包括:
根据所述CPU时钟周期信息,与应用程序的每一行代码与程序指针的对应关系,计算出每一行代码消耗的CPU时钟周期。
15、如权利要求14所述的方法,其特征在于,所述步骤(4)进一步根据CPU时钟周期信息,与应用程序的每一行代码与程序指针的对应关系,分析代码中的函数调用指令,计算出函数执行效率。
16、如权利要求15所述的方法,其特征在于,所述计算函数执行效率的步骤,包括:
对每一条指令进行分析,如果是函数调用指令,则将当前的程序指针以及被调用函数的程序指针、当前仿真装置运行的总CPU时钟周期压入栈中;
执行结束后,用当前仿真装置运行的总CPU时钟周期减去之前记录的CPU时钟周期,将该结果记录为函数运行消耗的CPU时钟周期;
根据之前记录的程序指针值,将函数执行的周期记录到对应的代码行中,再从栈中弹出之前压入的相应内容。
CNB2005101277281A 2005-12-02 2005-12-02 获得程序代码和函数执行覆盖率及执行效率的装置及方法 Expired - Fee Related CN100456248C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2005101277281A CN100456248C (zh) 2005-12-02 2005-12-02 获得程序代码和函数执行覆盖率及执行效率的装置及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2005101277281A CN100456248C (zh) 2005-12-02 2005-12-02 获得程序代码和函数执行覆盖率及执行效率的装置及方法

Publications (2)

Publication Number Publication Date
CN1979422A true CN1979422A (zh) 2007-06-13
CN100456248C CN100456248C (zh) 2009-01-28

Family

ID=38130601

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005101277281A Expired - Fee Related CN100456248C (zh) 2005-12-02 2005-12-02 获得程序代码和函数执行覆盖率及执行效率的装置及方法

Country Status (1)

Country Link
CN (1) CN100456248C (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101661425B (zh) * 2008-08-26 2012-03-21 国际商业机器公司 测试覆盖分析方法和装置
CN102541615A (zh) * 2010-12-07 2012-07-04 北京广利核系统工程有限公司 C++Test在无操作系统下的软件仿真方法
CN105260305A (zh) * 2015-10-15 2016-01-20 珠海格力电器股份有限公司 嵌入式程序运行时cpu监控调试方法
CN107368313A (zh) * 2017-07-18 2017-11-21 腾讯科技(深圳)有限公司 代码检测方法、装置及电子设备
CN112463164A (zh) * 2020-12-14 2021-03-09 记忆科技(深圳)有限公司 SoC程序执行的显示定位方法、装置、计算机设备及存储介质
CN116881920A (zh) * 2023-06-27 2023-10-13 北京城建智控科技股份有限公司 一种基于代码模拟器的安全表决系统及方法

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103365771B (zh) * 2012-04-10 2016-02-17 阿里巴巴集团控股有限公司 一种代码覆盖率的获得方法和设备
CN104685473B (zh) * 2013-09-30 2018-11-06 华为技术有限公司 一种软件测试方法及装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003345855A (ja) * 2002-05-29 2003-12-05 Internatl Business Mach Corp <Ibm> カバレージ測定方法及びその装置
JP4183035B2 (ja) * 2003-01-14 2008-11-19 株式会社リコー 設計支援装置、およびソースコードカバレッジ方法、並びにそのプログラム
CN1300698C (zh) * 2003-01-17 2007-02-14 华为技术有限公司 一种嵌入式系统覆盖率统计方法
CN100372090C (zh) * 2003-12-18 2008-02-27 四川南山之桥微电子有限公司 一种验证代码覆盖率分析的方法
US20050160405A1 (en) * 2004-01-20 2005-07-21 Microsoft Corporation System and method for generating code coverage information

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101661425B (zh) * 2008-08-26 2012-03-21 国际商业机器公司 测试覆盖分析方法和装置
CN102541615A (zh) * 2010-12-07 2012-07-04 北京广利核系统工程有限公司 C++Test在无操作系统下的软件仿真方法
CN102541615B (zh) * 2010-12-07 2016-08-03 北京广利核系统工程有限公司 C++Test在无操作系统下的软件仿真方法
CN105260305A (zh) * 2015-10-15 2016-01-20 珠海格力电器股份有限公司 嵌入式程序运行时cpu监控调试方法
CN105260305B (zh) * 2015-10-15 2018-09-07 珠海格力电器股份有限公司 嵌入式程序运行时cpu监控调试方法
CN107368313A (zh) * 2017-07-18 2017-11-21 腾讯科技(深圳)有限公司 代码检测方法、装置及电子设备
CN112463164A (zh) * 2020-12-14 2021-03-09 记忆科技(深圳)有限公司 SoC程序执行的显示定位方法、装置、计算机设备及存储介质
CN112463164B (zh) * 2020-12-14 2024-02-13 记忆科技(深圳)有限公司 SoC程序执行的显示定位方法、装置、计算机设备及存储介质
CN116881920A (zh) * 2023-06-27 2023-10-13 北京城建智控科技股份有限公司 一种基于代码模拟器的安全表决系统及方法
CN116881920B (zh) * 2023-06-27 2024-03-26 北京城建智控科技股份有限公司 一种基于代码模拟器的安全表决系统及方法

Also Published As

Publication number Publication date
CN100456248C (zh) 2009-01-28

Similar Documents

Publication Publication Date Title
CN100456248C (zh) 获得程序代码和函数执行覆盖率及执行效率的装置及方法
Li et al. An empirical study of the energy consumption of android applications
US5265254A (en) System of debugging software through use of code markers inserted into spaces in the source code during and after compilation
Austin et al. SimpleScalar: An infrastructure for computer system modeling
CN110865971B (zh) Soc芯片的验证系统及其方法
US4720778A (en) Software debugging analyzer
Couto et al. Detecting anomalous energy consumption in android applications
US8898049B2 (en) System level power profiling of embedded applications executing on virtual multicore system-on-chip platforms
US8924937B1 (en) Method and system for generating verification information and tests for software
Herdt et al. Verifying instruction set simulators using coverage-guided fuzzing
Hönig et al. Proactive {Energy-Aware} Programming with {PEEK}
EP1066563A4 (en) METHOD AND DEVICE FOR EVALUATING SOFTWARE PROGRAMS FOR SEMICONDUCTOR CIRCUITS
US7596725B2 (en) Efficient trace triggering
US6983450B2 (en) User configurable operating system
CN117892661A (zh) 一种基于risc-v处理器验证的模拟器比对系统
US6643800B1 (en) Method and apparatus for testing microarchitectural features by using tests written in microcode
Vaugon et al. Programming microcontrollers in ocaml: the ocapic project
Chung et al. Improvement of compiled instruction set simulator by increasing flexibility and reducing compile time
Zhao et al. Host-compiled reliability modeling for fast estimation of architectural vulnerabilities
CN101615209B (zh) 基于内存监视的处理器验证方法
Ruberg Energy consumption and performance estimation of embedded software
Yao et al. A pseudo-random program generator for processor functional verification
Mintchev Investigation of Methods and Tools to Profile a Virtual Platform
Holsti et al. WCET 2008--Report from the Tool Challenge 2008--8th Intl. Workshop on Worst-Case Execution Time (WCET) Analysis
JP2000222245A (ja) プログラム実行時間評価装置、ソースプログラム実行時間評価装置、プログラム実行時間評価方法、及びソースプログラム実行時間評価方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: BEIJING SUNPLUS EHUE TECHNOLOGY CO., LTD.

Free format text: FORMER OWNER: BEIJING BEIYANG ELECTRONIC TECHNOLOGY CO., LTD.

Effective date: 20140319

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20140319

Address after: Science and Industry Park, Taiwan, Hsinchu, China, No. 19

Patentee after: Sunplus Technology Co.,Ltd.

Patentee after: BEIJING SUNPLUS-EHUE TECH Co.,Ltd.

Address before: Science and Industry Park, Taiwan, Hsinchu, China, No. 19

Patentee before: Sunplus Technology Co.,Ltd.

Patentee before: Beijing Sunnorth Electronic Technology Co.,Ltd.

ASS Succession or assignment of patent right

Free format text: FORMER OWNER: BEIJING SUNPLUS EHUE TECHNOLOGY CO., LTD.

Effective date: 20150120

Owner name: SUNMEDIA TECHNOLOGY (CHENGDU) CO., LTD.

Free format text: FORMER OWNER: LINGYANG SCIENCE AND TECHNOLOGY CO., LTD.

Effective date: 20150120

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; TO: 611731

TR01 Transfer of patent right

Effective date of registration: 20150120

Address after: 611731 innovation center, No. 4, West core road, hi tech West District, Sichuan, Chengdu C129

Patentee after: Lingyang Chengxin Technology (Chengdu) Co.,Ltd.

Address before: Science and Industry Park, Taiwan, Hsinchu, China, No. 19

Patentee before: Sunplus Technology Co.,Ltd.

Patentee before: BEIJING SUNPLUS-EHUE TECH Co.,Ltd.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090128

CF01 Termination of patent right due to non-payment of annual fee