[发明专利]一种问题追踪的方法、系统、电子设备及存储介质在审
申请号: | 202011435462.8 | 申请日: | 2020-12-10 |
公开(公告)号: | CN112506780A | 公开(公告)日: | 2021-03-16 |
发明(设计)人: | 刘辉 | 申请(专利权)人: | 零氪科技(北京)有限公司;零氪信息技术(北京)有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京知果之信知识产权代理有限公司 11541 | 代理人: | 卜荣丽 |
地址: | 100089 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 问题 追踪 方法 系统 电子设备 存储 介质 | ||
本申请公开了一种问题追踪的方法、系统、电子设备及存储介质。所述方法包括:遍历软件中所有函数以及所有类;记录所述的所有函数以及所有类间的调用关系,形成一个树状结构,记作调用树,并记录树状结构中每个节点的输入参数以及输出参数;将树状结构中每个节点的输入参数传递给所述的所有函数以及所有类,重新运行一次,跟踪其运行过程,完成对树状结构中每个节点的问题追踪。所述系统包括:遍历模块、调用树模块以及运行模块。本申请加快了初步定位问题的步骤,并使得单个函数之内问题的追踪复现变得简单易行,解决了相关技术中当处理流程很长时很难进行问题追踪的难题。
技术领域
本申请涉及检测技术领域,具体而言,涉及一种问题追踪的方法、系统、电子设备及存储介质。
背景技术
目前,python语言比较流行的编程语言。在处理深层嵌套数据结构的场景python也有应用,然而其排错和调试不可避免,却也更加不易。比如处理上百万份病历的场景:每一份病历包含的信息繁多,都是相对复杂的,常常用多层嵌套的结构表示,而病历的处理结果、中间过程,也都是复杂的结构。假如发现最终的结果异常,处理流程很长,很难定位问题的根源在哪一步骤。
在python标准库中有trace工具以及第三方开源的pysnooper工具,用于问题追踪,然而,Trace工具的缺点在于,虽然记录了程序的跳转、但是没有记录变量的值以及数据,这对于debug来说是不够用的,因为调试和排查问题时最关键的是查看数据和变量的值,检查某个中间变量是否不符合预期,或者某个数据是否已经发生错误,Trace工具不能提供帮助。第三方工具pysnooper和标准的trace工具不同,着重点在于记录单个函数内部的变量、数据的变化细节,而不是调用情况。其典型的使用方法为:用装饰器装饰某个目标函数,把它指定为要追踪的函数。运行软件之后,会打印出该函数之中各变量的详细变化,对于调试单个函数非常有用,然而其局限在于只关注单独的一个或者几个函数,而不是打印所有的行跳转。
针对相关技术中当处理流程很长时很难进行问题追踪的问题,目前尚未提出有效的解决方案。
发明内容
本申请的主要目的在于提供一种问题追踪的方法、系统、电子设备及存储介质,以解决相关技术中当处理流程很长时很难进行问题追踪的问题。
为了实现上述目的,第一方面,本申请提供了一种问题追踪的方法,步骤如下:
遍历软件中所有函数以及所有类;
记录所述的所有函数以及所有类间的调用关系,形成一个树状结构,记作调用树,并记录树状结构中每个节点的输入参数以及输出参数;
重新将树状结构中每个节点的输入参数传递给所述的所有函数以及所有类,重新运行一次,跟踪其运行过程,完成对树状结构中每个节点的问题追踪。
所述记录所述的所有函数以及所有类间的调用关系,形成一个树状结构,并记录树状结构中每个节点的输入参数以及输出参数,步骤如下:
记录当前函数或当前类,作为树状结构的父节点,并记录所述当前函数或当前类的函数名或类名;
当调用所述当前函数或当前类的子函数或子类时,新建所述树状结构的子函数或子类,所述子函数或子类记作子节点;
记录所述子函数或子类的函数名或类名,并将所述子函数或子类作为树状结构的当前节点;
记录当前节点的输入参数以及输出参数。
所述重新将树状结构中每个节点的输入参数传递给所述的所有函数以及所有类,重新运行一次,跟踪其运行过程,完成对树状结构中每个节点的问题追踪,步骤如下:
重新将当前节点输入参数传递给当前节点,即传递给当前子函数或子类;
重新运行当前子函数或子类,记录返回值或异常;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于零氪科技(北京)有限公司;零氪信息技术(北京)有限公司,未经零氪科技(北京)有限公司;零氪信息技术(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011435462.8/2.html,转载请声明来源钻瓜专利网。