[发明专利]程序执行序列的获取方法及装置在审
| 申请号: | 201410001275.7 | 申请日: | 2014-01-02 |
| 公开(公告)号: | CN103744782A | 公开(公告)日: | 2014-04-23 |
| 发明(设计)人: | 陈振宇;田亮;张旭辉;黄明明;曾卫;汪亚斌;周锴;高则宝;沈毅;房春荣 | 申请(专利权)人: | 北京百度网讯科技有限公司;南京大学 |
| 主分类号: | G06F11/36 | 分类号: | G06F11/36 |
| 代理公司: | 北京清亦华知识产权代理事务所(普通合伙) 11201 | 代理人: | 宋合成 |
| 地址: | 100085 北京市*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 程序 执行 序列 获取 方法 装置 | ||
1.一种程序执行序列的获取方法,其特征在于,包括:
在编译阶段为被测程序选择插桩节点植入探针,在所述探针中写入保存函数、收集序列函数和还原函数;
当所述被测程序根据当前测试用例执行分支时,输出对应的基本块信息;以及
根据所述基本块信息得到基本块图级别的执行序列,根据所述执行序列与对应的基本块图生成包含行号信息的执行序列信息。
2.如权利要求1所述的方法,其特征在于,所述保存函数用于在调用所述收集序列函数之前,将寄存器数据保存到内存中;所述还原函数用于在调用所述收集序列函数之后,将保存在内存中的寄存器数据进行还原。
3.如权利要求1所述的方法,其特征在于,在所述在编译阶段为被测程序选择插桩节点植入探针之前,所述方法还包括:
预处理所述被测程序的源文件,对所述源文件划分基本块和分支,并绘制基本块图。
4.如权利要求3所述的方法,其特征在于,所述为被测程序选择插桩节点植入探针包括:
根据所述基本块图确定需要插桩的分支,根据所述需要插桩的分支确定所述插桩节点。
5.如权利要求1-4任一权利要求所述的方法,其特征在于,在所述根据所述执行序列与对应的基本块图生成包含行号信息的执行序列信息之后,所述方法还包括:
获得多个执行序列信息,根据所述执行序列信息进行所述被测程序的错误定位。
6.一种程序执行序列的获取装置,其特征在于,包括:
插桩模块,用于在编译阶段为被测程序选择插桩节点植入探针,在所述探针中写入保存函数、收集序列函数和还原函数;
执行模块,用于当所述被测程序根据当前测试用例执行分支时,输出对应的基本块信息;以及
生成模块,用于根据所述基本块信息得到基本块图级别的执行序列,根据所述执行序列与对应的基本块图生成包含行号信息的执行序列信息。
7.如权利要求6所述的装置,其特征在于,所述保存函数用于在调用所述收集序列函数之前,将寄存器数据保存到内存中;所述还原函数用于在调用所述收集序列函数之后,将保存在内存中的寄存器数据进行还原。
8.如权利要求6所述的装置,其特征在于,所述装置还包括:
绘制模块,用于在所述插桩模块为被测程序选择插桩节点植入探针之前,预处理所述被测程序的源文件,对所述源文件划分基本块和分支,并绘制基本块图。
9.如权利要求8所述的装置,其特征在于,所述插桩模块,具体用于:
根据所述绘制模块绘制的基本块图确定需要插桩的分支,根据所述需要插桩的分支确定所述插桩节点。
10.如权利要求6-9任一权利要求所述的装置,其特征在于,所述装置还包括:
定位模块,用于在所述生成模块生成包含行号信息的执行序列信息之后,获得多个执行序列信息,根据所述执行序列信息进行所述被测程序的错误定位。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京百度网讯科技有限公司;南京大学,未经北京百度网讯科技有限公司;南京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410001275.7/1.html,转载请声明来源钻瓜专利网。





