[发明专利]修复函数缺陷的方法、装置及服务器在审
申请号: | 201810210229.6 | 申请日: | 2018-03-14 |
公开(公告)号: | CN108415840A | 公开(公告)日: | 2018-08-17 |
发明(设计)人: | 夏良钊;郑龙日;胡明;包沉浮;韦韬 | 申请(专利权)人: | 百度在线网络技术(北京)有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京市铸成律师事务所 11313 | 代理人: | 王珺;徐瑞红 |
地址: | 100085 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 预设 修复 源码 服务器 调用函数 过滤参数 选择执行 上层 返回 检查 | ||
1.一种修复函数缺陷的方法,适用于该函数的多个版本,其特征在于,所述方法包括:
确定预设缺陷函数;
检查所述预设缺陷函数的参数是否存在异常;
若存在异常,则向所述预设缺陷函数的上层调用函数返回指示异常的信息;
若不存在异常,则执行所述预设缺陷函数。
2.根据权利要求1所述的方法,其特征在于,若不存在异常,则执行所述预设缺陷函数之后,所述方法还包括:
检查所述预设缺陷函数的返回值和/或参数是否存在异常;
若存在异常,则向所述预设缺陷函数的上层调用函数返回指示异常的信息。
3.根据权利要求1或2所述的方法,其特征在于,检查所述预设缺陷函数的参数是否存在异常,包括:
根据内联挂钩方法,将所述预设缺陷函数的预设行代码修改为跳转到调用修复函数的指令;所述修复函数用于检查所述预设缺陷函数的参数,以及返回值和/或参数。
4.根据权利要求1所述的方法,其特征在于,确定预设缺陷函数之后,所述方法还包括:
若所述预设缺陷函数的类型为子函数,且所述子函数在其对应的父函数中被多次调用,则根据所述父函数的索引确定所述子函数在父函数中的位置。
5.根据权利要求1所述的方法,其特征在于,对所述缺陷函数进行修复之前,所述方法还包括:
初始化修复函数,以获得用于存储所述修复函数的存储空间。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当卸载修复函数时,释放用于存储所述修复函数的存储空间。
7.一种修复函数缺陷的方法,适用于该函数的多个版本,其特征在于,所述方法包括:
确定预设缺陷函数;
执行所述预设缺陷函数;
检查所述预设缺陷函数的返回值和/或参数是否存在异常;
若存在异常,则向所述预设缺陷函数的上层调用函数返回指示异常的信息。
8.根据权利要求7所述的方法,其特征在于,检查所述预设缺陷函数的返回值和参数是否存在异常之前,所述方法还包括:
根据内联挂钩方法,将所述预设缺陷函数的预设行代码修改为跳转到调用修复函数的指令;其中,所述修复函数用于检查所述预设缺陷函数的参数和/或返回值。
9.根据权利要求7所述的方法,其特征在于,确定预设缺陷函数之后,所述方法还包括:
若所述预设缺陷函数的类型为子函数,且所述子函数在其对应的父函数中被多次调用,则根据所述父函数的索引确定所述子函数在父函数中的位置。
10.根据权利要求7所述的方法,其特征在于,对所述缺陷函数进行修复之前,所述方法还包括:
初始化所述修复函数,以获得用于存储所述修复函数的存储空间。
11.根据权利要求7所述的方法,其特征在于,对所述缺陷函数进行修复之后,所述方法还包括:
当卸载所述修复函数时,释放用于存储所述数复函数的存储空间。
12.一种修复函数缺陷的装置,适用于该函数的多个版本,其特征在于,所述装置包括:
第一确定位置模块,配置为确定预设缺陷函数;
第一检查模块,配置为检查所述预设缺陷函数的参数是否存在异常;
第一返回异常模块,配置为当所述预设缺陷函数的参数存在异常时,向所述预设缺陷函数的上层调用函数返回指示异常的信息;
执行模块,配置为当所述预设缺陷函数的参数不存在异常时,执行所述预设缺陷函数。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于百度在线网络技术(北京)有限公司,未经百度在线网络技术(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810210229.6/1.html,转载请声明来源钻瓜专利网。