[发明专利]一种问题追踪的方法、系统、电子设备及存储介质在审
申请号: | 202011435462.8 | 申请日: | 2020-12-10 |
公开(公告)号: | CN112506780A | 公开(公告)日: | 2021-03-16 |
发明(设计)人: | 刘辉 | 申请(专利权)人: | 零氪科技(北京)有限公司;零氪信息技术(北京)有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京知果之信知识产权代理有限公司 11541 | 代理人: | 卜荣丽 |
地址: | 100089 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 问题 追踪 方法 系统 电子设备 存储 介质 | ||
1.一种问题追踪的方法,其特征在于,包括:
遍历软件中所有函数以及所有类;
记录所述的所有函数以及所有类间的调用关系,形成一个树状结构,记作调用树,并记录树状结构中每个节点的输入参数以及输出参数;
将树状结构中每个节点的输入参数传递给所述的所有函数以及所有类,重新运行一次,跟踪其运行过程,完成对树状结构中每个节点的问题追踪。
2.如权利要求1所述的问题追踪的方法,其特征在于,所述记录所述的所有函数以及所有类间的调用关系,形成一个树状结构,并记录树状结构中每个节点的输入参数以及输出参数,步骤如下:
记录当前函数或当前类,作为树状结构的父节点,并记录所述当前函数或当前类的函数名或类名;
当调用所述当前函数或当前类的子函数或子类时,新建所述树状结构的子函数或子类,所述子函数或子类记作子节点;
记录所述子函数或子类的函数名或类名,并将所述子函数或子类作为树状结构的当前节点;
记录当前节点的输入参数以及输出参数。
3.如权利要求2述的问题追踪的方法,其特征在于,所述重新将树状结构中每个节点的输入参数传递给所述的所有函数以及所有类,重新运行一次,跟踪其运行过程,完成对树状结构中每个节点的问题追踪,步骤如下:
重新将当前节点输入参数传递给当前节点,即传递给当前子函数或子类;
重新运行当前子函数或子类,记录返回值或异常;
将当前节点设置为新的父节点,并继续遍历所述新的父节点的子函数或子类;
直到完成所有函数以及所有类,即完成对树状结构中每个节点的问题追踪。
4.如权利要求2所述的问题追踪的方法,其特征在于,所述记录当前节点的输入参数以及输出参数采用pysnooper工具记录输入参数以及输出参数。
5.如权利要求4所述的问题追踪的方法,其特征在于,所述输入参数以及输出参数被记录在调用树上。
6.如权利要求3所述的问题追踪的方法,其特征在于,所述重新运行当前子函数或子类时,若软件中有数据被更改,则在重新运行之前,需要开启deepcopy机制。
7.如权利要求1所述的问题追踪的方法,其特征在于,所述树状结构中每个节点采用pickle序列化,保存在磁盘上。
8.一种问题追踪的系统,其特征在于,采用如权利要求1-7任一项所述的问题追踪的方法,包括:遍历模块、调用树模块以及运行模块;
所述遍历模块、调用书模块以及运行模块依次顺序相连接;
所述遍历模块,用于遍历软件中所有函数以及所有类;
所述调用树模块,用于记录所述的所有函数以及所有类间的调用关系,形成一个树状结构,称为调用树,并记录树状结构中每个节点的输入参数以及输出参数;
所述运行模块,用于重新将树状结构中每个节点的输入参数传递给所述的所有函数以及所有,重新运行一次,跟踪其运行过程,完成对树状结构中每个节点的问题追踪。
9.一种电子设备,其特征在于,所述电子设备包括存储器以及处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序以使计算机设备执行根据权利要求1-7任一项所述的问题追踪的方法。
10.一种可读存储介质,其特征在于,所述可读存储介质中存储有计算机程序指令,所述计算机程序指令被一处理器读取并运行时,执行权利要求1-7任一项所述的问题追踪的方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于零氪科技(北京)有限公司;零氪信息技术(北京)有限公司,未经零氪科技(北京)有限公司;零氪信息技术(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011435462.8/1.html,转载请声明来源钻瓜专利网。