[发明专利]一种脚本错误的处理方法、装置、设备及存储介质在审
申请号: | 202210178711.2 | 申请日: | 2022-02-25 |
公开(公告)号: | CN114661290A | 公开(公告)日: | 2022-06-24 |
发明(设计)人: | 谢雪彦;田娟 | 申请(专利权)人: | 深圳前海微众银行股份有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F8/53;G06F11/32;G06F11/36 |
代理公司: | 北京派特恩知识产权代理有限公司 11270 | 代理人: | 崔晓岚;浦彩华 |
地址: | 518052 广东省深圳市*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 脚本 错误 处理 方法 装置 设备 存储 介质 | ||
1.一种脚本错误的处理方法,其特征在于,包括:
获取可执行代码在运行过程中发生错误时的报错行列号;其中,所述可执行代码是由经过源映射处理的混淆源码生成的;
获取针对所述错误进行梯度诊断得到的错误类型;
基于所述混淆源码转换得到的抽象语法树和散列表生成原始语法树;其中,所述散列表存储有未混淆的源码的函数方法名与所述混淆源码的函数方法名的对应关系,以及所述未混淆的源码的参数名与所述混淆源码的参数名的对应关系;
基于所述错误类型、所述报错行列号和所述原始语法树,在所述混淆源码对应的所述未混淆的源码中定位所述错误的发生位置,并输出针对所述错误的修复建议。
2.根据权利要求1中所述的方法,其特征在于,所述基于所述混淆源码转换得到的抽象语法树和散列表生成原始语法树,包括:
循环遍历语法树及散列表,将抽象语法树中的一个表达式节点中对象的对象名与所述散列表中的键进行比对;
若所述对象名与所述散列表中的一个键相同,则将所述一个表达式节点中的所述对象名重置为散列表中对应于所述一个键的值,在所述一个表达式节点中将计算属性的标识参数由第一参数改为第二参数;
若所述对象名与所述一个键不同,将所述对象名与所述散列表中的另一个键进行比对,直至所有表达式节点中的计算属性的标识参数由所述第一参数改为第二参数,得到所述原始语法树。
3.根据权利要求1或2所述的方法,其特征在于,所述基于所述错误类型、所述报错行列号和所述原始语法树,在所述混淆源码对应的所述未混淆的源码中定位所述错误的发生位置,包括:
若所述错误类型属于引用类型错误或者类型错误,则将所述原始语法树转为所述未混淆的源码;
基于所述报错行列号在所述未混淆的源码中定位所述错误的发生位置。
4.根据权利要求1所述的方法,其特征在于,所述基于所述错误类型、所述报错行列号和所述原始语法树,在所述混淆源码对应的所述未混淆的源码中定位所述错误的发生位置,包括:
若所述错误类型属于范围错误,则获取软件开发工具包基于所述报错行列号捕获的所述错误的发生位置的调用栈信息;
基于所述调用栈信息和所述原始语法树,得到原始调用栈;其中,所述原始调用栈为缓存有所述未混淆的源码中定位的所述错误的发生位置的数组。
5.根据权利要求4所述的方法,其特征在于,所述基于所述调用栈信息和所述原始语法树,得到原始调用栈,包括:
将所述调用栈信息转换为第一数组,并删除所述第一数组的第一项;
遍历所述第一数组并正则匹配每一项内容,取出调用栈中的满足匹配条件的调用函数名,得到第二数组;
遍历所述原始语法树将一个表达式节点的对象的对象名与所述第二数组中的每一项进行循环比对;
若所述对象名与所述第二数组中的一项相同,则将所述一个表达式节点缓存;
将循环比对找到的所有表达式节点缓存为第三数组;其中,所述所有表达式节点的对象名与所述第二数组中的一项相同;
循环遍历所述散列表与所述第三数组,将所述第三数组中表达式节点中对象的对象名替换为所述散列表中匹配到键对应的值,得到原始调用栈;其中,所述原始调用栈为缓存有替换后的表达式节点的数组。
6.根据权利要求1所述的方法,其特征在于,所述获取针对所述错误进行梯度诊断得到的错误类型,包括:
对所述错误对应的事件处理函数的函数类型进行分析,将符合预设类型的事件处理函数采集/上报的错误归类为一级错误;
对所述一级错误进行关键字正则匹配,并将所述一级错误归类至五种二级错误中对应的一种;
针对归类后的每一二级错误调用三级错误配置表,并查找所述三级错误配置表中与所述归类后的每一二级错误匹配的三级错误规则;
在所述三级错误配置表中确定与所述三级错误规则具有映射关系的所述错误类型。
7.根据权利要求6所述的方法,其特征在于,所述输出针对所述错误的修复建议,包括:
在修复建议配置表中查找与所述三级错误规则匹配的修复建议,并输出所述修复建议。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳前海微众银行股份有限公司,未经深圳前海微众银行股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210178711.2/1.html,转载请声明来源钻瓜专利网。