本发明专利技术提供了一种基于JPDA的调试方法、装置、电子设备及存储介质,所述方法包括:初始化快速调试入口;通过所述快速调试入口,获取用户输入需要调试方法的调试类型和关键参数;根据所述调试类型和关键参数,获取调用调试方法对应函数的函数信息,所述函数信息至少包括一种:堆栈信息、成员变量信息和局部变量信息;记录获取的所述函数信息,以及记录利用所述函数信息进行快速调试的流转步骤、时间和代码行数;根据用户输入的所述关键参数,按照时序可视化展示所述流转步骤、时间和代码行数的变化情况,完成快速调试。本发明专利技术通过可视化展示的调试运行中变量的变化情况,可以有效的快速定位到调试中的问题;省略了调试工具,提高了调试效率。
【技术实现步骤摘要】
基于JPDA的调试方法、装置、电子设备及存储介质
本专利技术涉及计算机
,特别是涉及一种基于JPDA的调试方法、装置、电子设备及存储介质。
技术介绍
相关技术中,在部署的java应用服务有问题的情况下,通常通过下述方案进行部署态调试和问题定位:第一种方案是,利用字节码织入技术可以动态修改字节码,对java方法进行动态代理,这样可以查看方法的输入参数(简称入参)和返回结果,以达到调试的目的。但是,这种方案,需要对源代码的业务比较有深刻的了解,才能对调试过程中的问题进行定位,并且,第一种方案只能查看方法的入参和返回结果,而不能查看中间过程的局部变量的变化值。第二种方案是,利用javaIDE工具连接到远程应用进行远程调试,但是,对于第二种方案,如果调用javaIDE远程调试方法,则需要阻塞服务运行线程,同时需要断点一步一步进行,这也需要对源代码比较有深刻的了解,才能对调试过程中的问题进行快速定位。由此可知,无论是第一种方案,还是第二种方案,都不能对调试过程中的问题进行快速定位,从而减低了调试的效率。因此,如何进行快速的调试,以及对调试过程中的问题进行快速定位,是目前有待解决的技术问题。
技术实现思路
本专利技术实施例所要解决的技术问题是提供一种基于JPDA的调试方法、装置、电子设备及存储介质方法,以解决现有技术中由于不能对调试中的问题进行快速定位,导致调试效率低的技术问题。相应的,本专利技术实施例还提供了一种XXX装置,用以保证上述方法的实现及应用。为了解决上述问题,本专利技术是通过如下技术方案实现的:第一方面提供一种基于JPDA的调试方法,包括:初始化快速调试入口;通过所述快速调试入口,获取用户输入需要调试方法的调试类型和关键参数;根据所述调试类型和关键参数,获取调用所述调试方法对应函数的函数信息,所述函数信息至少包括一种:堆栈信息、成员变量信息和局部变量信息;记录获取的所述函数信息,以及记录利用所述函数信息进行快速调试的流转步骤、时间和代码行数;根据用户输入的所述关键参数,按照时序可视化展示所述流转步骤、时间和代码行数的变化情况,完成快速调试。可选的,所述快速调试入口为利用JDI创建的一个快速调试入口。可选的,所述方法还包括:根据用户输入的所述关键参数,汇总快速调试的所述流转步骤、时间和代码行数;所述按照时序可视化展示所述流转步骤、时间和代码行数的变化情况,包括:按照时序展示汇总后的所述流转步骤、时间和代码行数的变化情况。可选的,在获取用户输入需要调试方法的调试类型和关键参数后,所述方法还包括:获取用户输入的变量过滤表达式;按照所述变量过滤表达式对记录调用的所述函数信息进行过滤;所述记录利用所述函数信息进行快速调试的流转步骤、时间和代码行数,包括:记录利用过滤后的所述函数信息进行快速调试的流转步骤、时间和代码行数。第二方面提供一种基于JPDA的调试装置,包括:初始化模块,用于初始化快速调试入口;第一获取模块,用于通过所述快速调试入口获取用户输入需要调试方法的调试类型和关键参数;第二获取模块,用于根据所述调试类型和关键参数,获取调用所述调试方法对应的函数的函数信息,所述函数信息至少包括一种:堆栈信息、成员变量信息和局部变量信息;记录模块,用于记录获取的所述调试函数信息,以及记录利用所述调试函数信息进行快速调试的流转步骤、时间和代码行数;可视化模块,用于根据用户输入的所述关键参数,按照时序可视化展示所述流转步骤、时间和代码行数的变化情况,完成快速调试。可选的,所述初始化模块初始化的快速调试入口为利用JDI创建的一个快速调试入口。可选的,所述装置还包括:汇总模块,用于根据用户输入的所述关键参数,汇总快速调试的所述流转步骤、时间和代码行数;所述可视化模块,还用于按照时序可视化展示所述汇总模块汇总后的所述流转步骤、时间和代码行数的变化情况。可选的,所述装置还包括:所述第一获取模块,还用于在获取用户输入需要调试方法的调试类型和关键参数后,获取用户输入的变量过滤表达式;过滤模块,用于按照所述获取模块获取的变量过滤表达式对记录的所述函数信息进行过滤;所述记录模块,还用于记录利用所述过滤模块过滤后的所述函数信息进行快速调试的流转步骤、时间和代码行数。第三方面提供一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述的基于JPDA的调试方法的步骤。第四方面提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述的基于JPDA的调试方法法中的步骤。与现有技术相比,本专利技术实施例包括以下优点:本专利技术实施例中,先通过初始化快速调试入口,获取用户输入需要调试方法的调试类型和关键参数;然后,根据所述调试类型和关键参数,获取调用所述调试方法对应函数的函数信息,所述函数信息至少包括一种:堆栈信息、成员变量信息和局部变量信息;记录获取的所述函数信息,以及记录利用所述函数信息进行快速调试的流转步骤、时间和代码行数;根据用户输入的所述关键参数,按照时序可视化展示所述流转步骤、时间和代码行数的变化情况。本专利技术实施例通过可视化展示的调试运行中变量的变化情况,可以有效的快速定位到调试中的问题。以及利用JPDA底层技术实现调试,省略了调试工具,简化了调试流程,提高了调试效率。也就是说,本专利技术实施例采用CS架构,利用JPDA进行底层技术实现调试。即利用JDI(JavaDebugInterface)实现一个快速调试入口(Client),通过该快速调试入口和java虚拟机进行调试通信,并记录JVM(Java虚拟机)的动态执行过程,对JVM的动态执行过程进行简单过滤(还可以进行正则表达式过滤),以实现快速调试,并可视化展示调试运行过程中的所述流转步骤、时间和代码行数的变化情况,即可视化展示数据链路的追踪,以便于在调试过程中快速定位到问题。由于按时序对调试过程中各变量进行可视化,可以实时查看局部变量的情况,相对于远程调试不需要阻塞用户进程同时也提高了调试效率。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。附图说明图1是本专利技术实施例提供的一种基于JPDA的调试方法的流程图;图2是本专利技术实施例提供的一种基于JPDA的调试装置的结构示意图;图3是本专利技术实施例提供的一种基于JPDA的调试装置的另一结构示意图;图4是本专利技术实施例提供的一种基于JPDA的调试装置的再一结构示意图。具体实施方式为使本专利技术的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本专利技术作进一步详细的说明。请参阅图1,为本专利技术实施例提供的一种基于JPDA的调试方法的流程图,具体可以包括如下本文档来自技高网...
【技术保护点】
1.一种基于JPDA的调试方法,其特征在于,包括:/n初始化快速调试入口;/n通过所述快速调试入口,获取用户输入需要调试方法的调试类型和关键参数;/n根据所述调试类型和关键参数,获取调用所述调试方法对应函数的函数信息,所述函数信息至少包括一种:堆栈信息、成员变量信息和局部变量信息;/n记录获取的所述函数信息,以及记录利用所述函数信息进行快速调试的流转步骤、时间和代码行数;/n根据用户输入的所述关键参数,按照时序可视化展示所述流转步骤、时间和代码行数的变化情况,完成快速调试。/n
【技术特征摘要】
1.一种基于JPDA的调试方法,其特征在于,包括:
初始化快速调试入口;
通过所述快速调试入口,获取用户输入需要调试方法的调试类型和关键参数;
根据所述调试类型和关键参数,获取调用所述调试方法对应函数的函数信息,所述函数信息至少包括一种:堆栈信息、成员变量信息和局部变量信息;
记录获取的所述函数信息,以及记录利用所述函数信息进行快速调试的流转步骤、时间和代码行数;
根据用户输入的所述关键参数,按照时序可视化展示所述流转步骤、时间和代码行数的变化情况,完成快速调试。
2.根据权利要求1所述的方法,其特征在于,所述快速调试入口为利用JDI创建的一个快速调试入口。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
根据用户输入的所述关键参数,汇总快速调试的所述流转步骤、时间和代码行数;
所述按照时序可视化展示所述流转步骤、时间和代码行数的变化情况,包括:按照时序展示汇总后的所述流转步骤、时间和代码行数的变化情况。
4.根据权利要求1或2所述的方法,其特征在于,在获取用户输入需要调试方法的调试类型和关键参数后,所述方法还包括:
获取用户输入的变量过滤表达式;
按照所述变量过滤表达式对记录调用的所述函数信息进行过滤;
所述记录利用所述函数信息进行快速调试的流转步骤、时间和代码行数,包括:
记录利用过滤后的所述函数信息进行快速调试的流转步骤、时间和代码行数。
5.一种基于JPDA的调试装置,其特征在于,包括:
初始化模块,用于初始化快速调试入口;
第一获取模块,用于通过所述快速调试入口获取用户输入需要调试方法的调试类型和关键参数;
第二获取模块,用于根据所述调试类型和关键参数,获取调用所...
【专利技术属性】
技术研发人员:崔海东,
申请(专利权)人:五八有限公司,
类型:发明
国别省市:天津;12
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。