[发明专利]一种基于模拟器指令插桩的覆盖率统计方法在审
申请号: | 202110862022.9 | 申请日: | 2021-07-29 |
公开(公告)号: | CN113590130A | 公开(公告)日: | 2021-11-02 |
发明(设计)人: | 郭波;杨青平;何根;肖涵;蒋强;姜文海 | 申请(专利权)人: | 四川腾盾科技有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F8/53 |
代理公司: | 成都九鼎天元知识产权代理有限公司 51214 | 代理人: | 徐静 |
地址: | 610000 四川省成都市金牛高*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 模拟器 指令 覆盖率 统计 方法 | ||
1.一种基于模拟器指令插桩的覆盖率统计方法,其特征在于,包括如下步骤:
步骤S10,指令插桩:在模拟器的执行路径中选择合适的插桩位置进行指令插桩;
步骤S20,获取行信息:结合BFD库和Capstone库获取模拟器上运行的嵌入式软件的行信息;
步骤S30,处理桩携带信息:模拟器执行时通过执行线程缓存插桩位置的桩携带信息,并新开一个桩处理线程负责对缓存的桩携带信息进行解析;
步骤S40,根据所述行信息以及解析的桩携带信息进行覆盖率统计。
2.根据权利要求1所述的基于模拟器指令插桩的覆盖率统计方法,其特征在于,步骤S10中所述插桩位置包括:头桩、尾桩、分支指令、异常触发和异常返回。
3.根据权利要求2所述的基于模拟器指令插桩的覆盖率统计方法,其特征在于,步骤S10中所述插桩位置的桩携带信息如下:
(1)所述头桩的桩携带信息为第一条指令地址;
(2)所述尾桩的桩携带信息为最后一条指令地址;
(3)所述分支指令的桩携带信息包括跳转起始地址和跳转目标地址;
(4)所述中断异常的桩携带信息包括异常触发地址和异常目标地址;
(5)异所述异常返回的桩携带信息包括异常结束地址和返回目标地址。
4.根据权利要求3所述的基于模拟器指令插桩的覆盖率统计方法,其特征在于,步骤S20包括如下子步骤:
步骤S21,获取模拟器上运行的嵌入式软件中所有函数的首地址和尾地址;
步骤S22,根据函数的首地址和尾地址,使用BFD库遍历每个函数内所有地址并获取所有地址对应的行信息;此时所述行信息中包含有效行号、函数名和文件名;再将所有地址及其对应的行信息的映射关系保存到hash表中;并且,在遍历完每个函数时,也完成对嵌入式软件中的指令、有效行、函数和文件的总数统计;
步骤S23,使用capstone库反汇编嵌入式软件的源代码,在反汇编时对分支指令进行标记,并将分支指令的指令地址及分支总数存储到行信息中;
步骤S24,遍历存储在hash表中的行信息,扫描行信息中的每个有效行,当扫描到条件语句时,保存扫描到的条件语句。
5.根据权利要求4所述的基于模拟器指令插桩的覆盖率统计方法,其特征在于,步骤S22中将所有地址及其对应的行信息的映射关系保存到hash表中时,根据有效行号、函数名和文件名,将行信息以文件、文件内函数、函数内有效行的结构进行保存,从而与嵌入式软件的源代码结构保持一致。
6.根据权利要求1所述的基于模拟器指令插桩的覆盖率统计方法,其特征在于,步骤S30中需要对执行线程和桩处理线程进行同步,同步过程包括:
(1)安装访问锁,用于执行线程缓存新的桩携带信息与桩处理线程读取执行线程中缓存的桩携带信息的两个操作之间存在的资源访问冲突;
(2)桩处理线程等待缓存中有桩携带信息时进行解析处理;
(3)缓存新的桩携带信息,若执行线程的缓存已满,则等待桩处理线程读取桩携带信息进行解析后释放缓存。
7.根据权利要求4所述的基于模拟器指令插桩的覆盖率统计方法,其特征在于,步骤S40中进行覆盖率统计的方法包括:
(1)对于指令、有效行、函数和文件:依据两个连续的桩携带信息,标记两个桩之间已执行的指令,以指令的地址为键从从hash表中获取行信息,然后对行信息中的有效行、函数和文件的执行次数分别进行累加;将累加得到的有效行、函数和文件的执行次数分别除以相应的有效行、函数和文件的总数,分别得到有效行覆盖率、函数覆盖率和文件覆盖率;再将已执行的指令数量除以指令总数,得到指令覆盖率;
(2)对于分支指令:根据已执行的分支数,结合分支总数,使用已执行分支数除以分支总数得到分支覆盖率;
(3)对于条件语句:通过分析条件语句获取条件语句中的逻辑关系;然后使用枚举法将逻辑关系中的每个条件用真假值代替填充,从而获取所有逻辑状态;再将逻辑状态结合逻辑短路规则,获取最小真值表;最后分析条件语句分支执行过程得到已执行的最小真值表中的项,依据MCDC规则,从最小真值表中选取最小测试用例集,使用最小测试用例集中已执行项数目除以总数得到MCDC覆盖率。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于四川腾盾科技有限公司,未经四川腾盾科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110862022.9/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种耐磨防缩水复合面料
- 下一篇:杀真菌组合物