[发明专利]一种程序检测方法及装置有效
申请号: | 201610584497.5 | 申请日: | 2016-07-22 |
公开(公告)号: | CN107643893B | 公开(公告)日: | 2020-12-29 |
发明(设计)人: | 邓兰忠 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41 |
代理公司: | 广州三环专利商标代理有限公司 44202 | 代理人: | 郝传鑫;熊永强 |
地址: | 518000 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 程序 检测 方法 装置 | ||
1.一种程序检测方法,其特征在于,包括:
读取目标程序;
获取所述目标程序的头文件,所述头文件中设置有用于标识所述头文件的版本的第一标识,所述头文件中内嵌有用于执行所述头文件和目标函数库的版本一致性检测的构造函数,所述目标函数库中设置有用于标识所述目标函数库的版本的目标标识;
通过所述构造函数在所述目标程序main函数执行之前自动根据所述第一标识和所述目标标识确定所述头文件中声明的库函数与目标函数库中包含的库函数是否匹配;所述目标函数库为当前编译所述目标程序时使用的函数库;
当确定出所述头文件中声明的库函数与目标函数库中包含的库函数不匹配时,则提示程序错误。
2.如权利要求1所述的方法,其特征在于,不同的函数库对应设有不同的标识;所述确定所述头文件中声明的库函数与目标函数库中包含的库函数是否匹配之前,还包括:设置用于标识所述头文件的第一标识,以及设置用于标识初始函数库的第二标识;其中,所述第一标识与所述第二标识关联匹配,所述初始函数库中包含的库函数与所述头文件中声明的库函数匹配;
所述确定所述头文件中声明的库函数与目标函数库中包含的库函数是否匹配,包括:
查找用于标识所述头文件的第一标识;
查找用于标识所述目标函数库的目标标识;
根据与所述第一标识关联匹配的第二标识,判断所述目标标识是否与所述第一标识关联匹配;
当判断结果为否时,则确定出所述头文件中声明的库函数与目标函数库中包含的库函数不匹配。
3.如权利要求2所述的方法,其特征在于,所述设置用于标识所述头文件的第一标识,包括:在所述头文件中定义一个宏,以用于标识所述头文件的版本号。
4.如权利要求3所述的方法,其特征在于,函数库对应的标识通过在所述函数库的实现文件中包含的命名空间下定义一个全局整型变量来设置,以用于标识所述函数库的版本号。
5.如权利要求4所述的方法,其特征在于,所述根据与所述第一标识关联匹配的第二标识,判断所述目标标识是否与所述第一标识关联匹配,包括:
检测所述宏标识的版本号与所述目标函数库中定义的所述全局整型变量标识的版本号是否相同;
当检测结果为否时,则判断出所述目标标识不与所述第一标识关联匹配。
6.如权利要求1-5任一项所述的方法,其特征在于,所述读取目标程序,获取所述目标程序的头文件之后,所述头文件中的内嵌代码在程序main函数执行之前,执行所述确定所述头文件中声明的库函数与目标函数库中包含的库函数是否匹配的步骤。
7.一种程序检测装置,其特征在于,包括:
读取模块,用于读取目标程序;
获取模块,用于获取所述目标程序的头文件,所述头文件中设置有用于标识所述头文件的版本的第一标识,所述头文件中内嵌有用于执行所述头文件和目标函数库的版本一致性检测的构造函数,所述目标函数库中设置有用于标识所述目标函数库的版本的目标标识;
确定模块,用于通过所述构造函数在所述目标程序main函数执行之前自动根据所述第一标识和所述目标标识确定所述头文件中声明的库函数与目标函数库中包含的库函数是否匹配;所述目标函数库为当前编译所述目标程序时使用的函数库;
提示模块,用于当所述确定模块确定出所述头文件中声明的库函数与目标函数库中包含的库函数不匹配时,则提示程序错误。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610584497.5/1.html,转载请声明来源钻瓜专利网。