[发明专利]一种JavaScript应用程序生产环境故障追踪和复现方法及存储介质在审
申请号: | 202111393928.7 | 申请日: | 2021-11-23 |
公开(公告)号: | CN114138637A | 公开(公告)日: | 2022-03-04 |
发明(设计)人: | 陈一雄;夏鸣远 | 申请(专利权)人: | 上海绊糖信息科技有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 上海恒慧知识产权代理事务所(特殊普通合伙) 31317 | 代理人: | 张宁展 |
地址: | 200030 上海市*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 javascript 应用程序 生产 环境 故障 追踪 复现 方法 存储 介质 | ||
1.一种JavaScript应用程序生产环境故障追踪和复现方法,其特征在于包括以下步骤:
S1、开发人员使用代码插桩模块在JavaScript应用程序的源代码中插入回调探针;
S2、代码插桩模块将原始的和插桩后的应用程序代码文件、逆插桩映射表文件提交给故障复现模块;
S3、回调探针模块在每个回调函数的注册阶段记录完整的注册函数的栈追踪、在每个回调函数的执行阶段捕获异常并上抛回调函数的栈追踪;
S4、当故障发生时,回调探针模块生成故障报告并上报给故障复现模块;
S5、故障复现模块入库故障报告并对故障报告进行逆插桩和聚类;
S6、开发人员查阅逆插桩和聚类后的故障报告,复现故障、并定位和修复故障。
2.根据权利要求1所述的一种JavaScript应用程序生产环境故障追踪和复现方法,其特征在于所述步骤S1具体包括以下步骤:
S1a、代码插桩模块在JavaScript应用程序代码的头部插入回调探针的定义代码;
S1b、代码插桩模块遍历整个JavaScript应用程序代码语句,找到所有注册函数,在每个注册函数的每个参数处或者右值处插入回调探针;
S1c、代码插桩模块通过基于语法格式的静态类型推导算法去除不必要的回调探针;
S1d、代码插桩模块通过对比JavaScript应用程序原始代码和插桩后代码的抽象语法树结构得到逆插桩映射表。
3.根据权利要求2所述的一种JavaScript应用程序生产环境故障追踪和复现方法,其特征在于所述步骤S3具体包括以下步骤:
S3a、在被插桩的JavaScript应用程序的运行过程中,回调探针模块在每一个回调函数的注册阶段调用“cbWrapper”函数获取和记录注册函数的栈追踪并为回调函数构造一个代理函数“agent”函数;
S3b、回调探针模块在每一个回调函数的执行阶段调用“agent”函数来捕获未被正确处理的异常并获取回调函数的栈追踪。
4.根据权利要求3所述的一种JavaScript应用程序生产环境故障追踪和复现方法,其特征在于所述步骤S3a具体包括以下步骤:
S3a1、回调探针模块在回调注册阶段调用“cbWrapper”函数检查外一层作用域是否存在回调探针,若是则从外一层作用域的回调探针中获取外一层作用域的注册函数栈追踪,若否则缺省地视外一层注册函数栈追踪为空;
S3a2、“cbWrapper”函数获取当前作用域的注册函数栈追踪;
S3a3、“cbWrapper”函数将外一层作用域的注册函数栈追踪与当前作用域的注册函数栈追踪合并以构造出对于当前作用域来说完整的注册函数栈追踪;
S3a4、“cbWrapper”函数构造一个回调函数的代理函数“agent”函数,并将“agent”函数返回给注册函数。
5.根据权利要求4所述的一种JavaScript应用程序生产环境故障追踪和复现方法,其特征在于所述步骤S3b具体包括以下步骤:
S3b1、“agent”函数执行回调函数并捕获回调函数抛出的异常;
S3b2、当有异常产生时,“agent”函数会获取上述S3a中构造的完整的注册函数栈追踪,并将异常连同完整的注册函数栈追踪一起上抛;
S3b3、若异常最终没有被任何上层作用域正确处理,则发生了故障,“agent”函数生成故障报告。
6.根据权利要求5所述的一种JavaScript应用程序生产环境故障追踪和复现方法,其特征在于:所述步骤S4生成的故障报告包含了JavaScript标准调试信息以及步骤S3a中构造的完整的注册函数的栈追踪。
7.根据权利要求6所述的一种JavaScript应用程序生产环境故障追踪和复现方法,其特征在于:所述JavaScript标准调试信息包括异常类型、异常消息和回调函数的栈追踪。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海绊糖信息科技有限公司,未经上海绊糖信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111393928.7/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种梯形太阳电池集成阵
- 下一篇:一种避障方法、装置、设备及存储介质