CN111209198A - 基于jpda的调试方法、装置、电子设备及存储介质 - Google Patents

基于jpda的调试方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN111209198A
CN111209198A CN201911419429.3A CN201911419429A CN111209198A CN 111209198 A CN111209198 A CN 111209198A CN 201911419429 A CN201911419429 A CN 201911419429A CN 111209198 A CN111209198 A CN 111209198A
Authority
CN
China
Prior art keywords
debugging
time
line number
function information
code line
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201911419429.3A
Other languages
English (en)
Inventor
崔海东
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuba Co Ltd
Original Assignee
Wuba Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wuba Co Ltd filed Critical Wuba Co Ltd
Priority to CN201911419429.3A priority Critical patent/CN111209198A/zh
Publication of CN111209198A publication Critical patent/CN111209198A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3644Software debugging by instrumenting at runtime

Abstract

本发明提供了一种基于JPDA的调试方法、装置、电子设备及存储介质,所述方法包括:初始化快速调试入口;通过所述快速调试入口,获取用户输入需要调试方法的调试类型和关键参数;根据所述调试类型和关键参数,获取调用调试方法对应函数的函数信息,所述函数信息至少包括一种:堆栈信息、成员变量信息和局部变量信息;记录获取的所述函数信息,以及记录利用所述函数信息进行快速调试的流转步骤、时间和代码行数;根据用户输入的所述关键参数,按照时序可视化展示所述流转步骤、时间和代码行数的变化情况,完成快速调试。本发明通过可视化展示的调试运行中变量的变化情况,可以有效的快速定位到调试中的问题;省略了调试工具,提高了调试效率。

Description

基于JPDA的调试方法、装置、电子设备及存储介质
技术领域
本发明涉及计算机技术领域,特别是涉及一种基于JPDA的调试方法、装置、电子设备及存储介质。
背景技术
相关技术中,在部署的java应用服务有问题的情况下,通常通过下述方案进行部署态调试和问题定位:第一种方案是,利用字节码织入技术可以动态修改字节码,对java方法进行动态代理,这样可以查看方法的输入参数(简称入参)和返回结果,以达到调试的目的。但是,这种方案,需要对源代码的业务比较有深刻的了解,才能对调试过程中的问题进行定位,并且,第一种方案只能查看方法的入参和返回结果,而不能查看中间过程的局部变量的变化值。第二种方案是,利用java IDE工具连接到远程应用进行远程调试,但是,对于第二种方案,如果调用java IDE远程调试方法,则需要阻塞服务运行线程,同时需要断点一步一步进行,这也需要对源代码比较有深刻的了解,才能对调试过程中的问题进行快速定位。
由此可知,无论是第一种方案,还是第二种方案,都不能对调试过程中的问题进行快速定位,从而减低了调试的效率。因此,如何进行快速的调试,以及对调试过程中的问题进行快速定位,是目前有待解决的技术问题。
发明内容
本发明实施例所要解决的技术问题是提供一种基于JPDA的调试方法、装置、电子设备及存储介质方法,以解决现有技术中由于不能对调试中的问题进行快速定位,导致调试效率低的技术问题。
相应的,本发明实施例还提供了一种XXX装置,用以保证上述方法的实现及应用。
为了解决上述问题,本发明是通过如下技术方案实现的:
第一方面提供一种基于JPDA的调试方法,包括:
初始化快速调试入口;
通过所述快速调试入口,获取用户输入需要调试方法的调试类型和关键参数;
根据所述调试类型和关键参数,获取调用所述调试方法对应函数的函数信息,所述函数信息至少包括一种:堆栈信息、成员变量信息和局部变量信息;
记录获取的所述函数信息,以及记录利用所述函数信息进行快速调试的流转步骤、时间和代码行数;
根据用户输入的所述关键参数,按照时序可视化展示所述流转步骤、时间和代码行数的变化情况,完成快速调试。
可选的,所述快速调试入口为利用JDI创建的一个快速调试入口。
可选的,所述方法还包括:根据用户输入的所述关键参数,汇总快速调试的所述流转步骤、时间和代码行数;
所述按照时序可视化展示所述流转步骤、时间和代码行数的变化情况,包括:按照时序展示汇总后的所述流转步骤、时间和代码行数的变化情况。
可选的,在获取用户输入需要调试方法的调试类型和关键参数后,所述方法还包括:
获取用户输入的变量过滤表达式;
按照所述变量过滤表达式对记录调用的所述函数信息进行过滤;
所述记录利用所述函数信息进行快速调试的流转步骤、时间和代码行数,包括:
记录利用过滤后的所述函数信息进行快速调试的流转步骤、时间和代码行数。
第二方面提供一种基于JPDA的调试装置,包括:
初始化模块,用于初始化快速调试入口;
第一获取模块,用于通过所述快速调试入口获取用户输入需要调试方法的调试类型和关键参数;
第二获取模块,用于根据所述调试类型和关键参数,获取调用所述调试方法对应的函数的函数信息,所述函数信息至少包括一种:堆栈信息、成员变量信息和局部变量信息;
记录模块,用于记录获取的所述调试函数信息,以及记录利用所述调试函数信息进行快速调试的流转步骤、时间和代码行数;
可视化模块,用于根据用户输入的所述关键参数,按照时序可视化展示所述流转步骤、时间和代码行数的变化情况,完成快速调试。
可选的,所述初始化模块初始化的快速调试入口为利用JDI创建的一个快速调试入口。
可选的,所述装置还包括:
汇总模块,用于根据用户输入的所述关键参数,汇总快速调试的所述流转步骤、时间和代码行数;
所述可视化模块,还用于按照时序可视化展示所述汇总模块汇总后的所述流转步骤、时间和代码行数的变化情况。
可选的,所述装置还包括:
所述第一获取模块,还用于在获取用户输入需要调试方法的调试类型和关键参数后,获取用户输入的变量过滤表达式;
过滤模块,用于按照所述获取模块获取的变量过滤表达式对记录的所述函数信息进行过滤;
所述记录模块,还用于记录利用所述过滤模块过滤后的所述函数信息进行快速调试的流转步骤、时间和代码行数。
第三方面提供一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述的基于JPDA的调试方法的步骤。
第四方面提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述的基于JPDA的调试方法法中的步骤。
与现有技术相比,本发明实施例包括以下优点:
本发明实施例中,先通过初始化快速调试入口,获取用户输入需要调试方法的调试类型和关键参数;然后,根据所述调试类型和关键参数,获取调用所述调试方法对应函数的函数信息,所述函数信息至少包括一种:堆栈信息、成员变量信息和局部变量信息;记录获取的所述函数信息,以及记录利用所述函数信息进行快速调试的流转步骤、时间和代码行数;根据用户输入的所述关键参数,按照时序可视化展示所述流转步骤、时间和代码行数的变化情况。本发明实施例通过可视化展示的调试运行中变量的变化情况,可以有效的快速定位到调试中的问题。以及利用JPDA底层技术实现调试,省略了调试工具,简化了调试流程,提高了调试效率。也就是说,本发明实施例采用CS架构,利用JPDA进行底层技术实现调试。即利用JDI(Java Debug Interface)实现一个快速调试入口(Client),通过该快速调试入口和java虚拟机进行调试通信,并记录JVM(Java虚拟机)的动态执行过程,对JVM的动态执行过程进行简单过滤(还可以进行正则表达式过滤),以实现快速调试,并可视化展示调试运行过程中的所述流转步骤、时间和代码行数的变化情况,即可视化展示数据链路的追踪,以便于在调试过程中快速定位到问题。由于按时序对调试过程中各变量进行可视化,可以实时查看局部变量的情况,相对于远程调试不需要阻塞用户进程同时也提高了调试效率。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
图1是本发明实施例提供的一种基于JPDA的调试方法的流程图;
图2是本发明实施例提供的一种基于JPDA的调试装置的结构示意图;
图3是本发明实施例提供的一种基于JPDA的调试装置的另一结构示意图;
图4是本发明实施例提供的一种基于JPDA的调试装置的再一结构示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
请参阅图1,为本发明实施例提供的一种基于JPDA的调试方法的流程图,具体可以包括如下步骤:
步骤101:初始化快速调试入口;
步骤102:获取用户输入需要调试方法的调试类型和关键参数;
步骤103:根据所述调试类型和关键参数,调用对应的调试函数信息,所述调试函数信息至少包括堆栈信息、成员变量信息和局部变量信息中的一种;
步骤104:记录调用的所述调试函数信息,以及记录利用所述调试函数信息进行快速调试的流转步骤、时间和代码行数;
步骤105:根据用户输入的所述关键参数,按照时序可视化展示所述流转步骤、时间和代码行数的变化情况,完成快速调试。
本发明实施例提供的页面埋点数据的可视化方法,可以应用于移动终端、服务器、客户端等,在此不作限制,其实施设备可以是智能手机,笔记本电脑、平板电脑等电子设备,在此也不作限制。
下面结合图1,对本发明实施例提供的页面埋点数据的可视化方法的具体实施步骤进行详细说明。
首先,执行步骤101,初始化快速调试入口;
该步骤中,服务器先利用JDI(Java Debug Interface)按照用户指令创建的一个快速调试入口,然后,初始化该快速调试入口,比如快速调试入口的参数归零等。其中,JDI是JPDA三层模块中最高层的接口,定义了调试器(Debugger)所需要的一些调试接口,其中,JPDA(Java platform debugger architecture)是java平台调试架构的简称,由java虚拟机后端和调试平台前端组成。java虚拟机提供了java调试功能;而调试平台通过调试交互协议向java虚拟机请求服务,以对在虚拟机中运行的程序进行调试。
其次,执行步骤102,获取用户输入需要调试方法的调试类型和关键参数;
该步骤中,在用户通过初始化窗口输入需要调试方法的调试类型和关键参数,即服务器(或调试平台前端)获取用户输入需要调试方法的调试类型和关键参数。
其中,本实施例中,调试类型可以分为浅度调试和深度调试,所述浅度调试:只输出调试方法的相关信息,不输出方法内的二次调用输出;所述深度调试:不仅输出调试方法的相关信息,还要同时输出方法的二次调用输出。
关键参数:包括是否输出变量的中间过程;变量过滤表达式,是否输出成员变量等。当然,在实际应用过程中,还可以包括其他参数,本实施例不做限制。
再次,执行步骤103,根据所述调试类型和关键参数,获取调用所述调试方法对应函数的函数信息,所述函数信息至少包括一种:堆栈信息、成员变量信息和局部变量信息;
该步骤中,服务器根据调试类型和关键参数,调用java虚拟机上所述调试方法对应的函数,其中,调用的函数,可以包括至少一种:堆栈函数,成员变量函数和局部变量函数,当然,本实施例以这三中函数为例,在实际应用中,并不限于此。然后,记录调用所述函数的函数信息,所述函数信息至少包括一种:堆栈函数,成员变量函数和局部变量函数。
再次,执行步骤104,记录获取的所述函数信息,以及记录利用所述函数信息进行快速调试的流转步骤、时间和代码行数;
该步骤中,服务器记录获取的所述函数信息,所述函数信息至少包括一种:堆栈函数,成员变量函数和局部变量函数。以及记录利用所述函数信息进行快速调试的流转步骤、时间和代码行数。也就是记录java虚拟机进行调试通信并记录JVM(Java虚拟机)的动态执行过程。比如包括:快速调试的流转步骤、时间和代码行数等。
最后,执行步骤105,根据用户输入的所述关键参数,按照时序可视化展示所述流转步骤、时间和代码行数的变化情况,完成快速调试。
该步骤中,服务器根据用户输入的所述关键参数,按照时间的先后顺序可视化展示所述流转步骤、时间和代码行数的变化情况。其中,可视化展示的方式,可以通过流程图的方式展示,但是在是应用中,并不限于此,可以通过其他的可视化方式来展示,本实施例不做限制。
本发明实施例中,先通过初始化快速调试入口,获取用户输入需要调试方法的调试类型和关键参数;然后,根据所述调试类型和关键参数,获取调用所述调试方法对应函数的函数信息,所述函数信息至少包括一种:堆栈信息、成员变量信息和局部变量信息;记录获取的所述函数信息,以及记录利用所述函数信息进行快速调试的流转步骤、时间和代码行数;根据用户输入的所述关键参数,按照时序可视化展示所述流转步骤、时间和代码行数的变化情况。本发明实施例通过可视化展示的调试运行中变量的变化情况,可以有效的快速定位到调试中的问题,以及利用JPDA底层技术实现调试,省略了调试工具,简化了调试流程,提高了调试效率。
也就是说,本发明实施例采用CS架构,利用JPDA进行底层技术实现调试。即利用JDI(Java Debug Interface)实现一个快速调试入口(Client),通过该快速调试入口和java虚拟机进行调试通信,并记录JVM(Java虚拟机)的动态执行过程,对JVM的动态执行过程进行简单过滤(还可以进行正则表达式过滤),以实现快速调试,并可视化展示调试运行过程中的所述流转步骤、时间和代码行数的变化情况,即可视化展示数据链路的追踪,以便于在调试过程中快速定位到问题。由于按时序对调试过程中各变量进行可视化,可以实时查看局部变量的情况,相对于远程调试不需要阻塞用户进程同时也提高了调试效率。
可选的,在另一实施例中,该实施例在上述实施例的基础上,所述方法还可以包括:根据用户输入的所述关键参数,汇总快速调试的所述流转步骤、时间和代码行数;
所述按照时序可视化展示所述流转步骤、时间和代码行数的变化情况,包括:按照时序可视化展示汇总后的所述流转步骤、时间和代码行数的变化情况。
本发明实施例中,服务器可以根据用户输入的所述关键参数,汇总快速调试的所述流转步骤、时间和代码行数,以便于按照时序快速的可视化展示调试过程中汇总的变量,从而简化了调试流程,提高了调试效率。
可选的,在另一实施例中,该实施例在上述实施例的基础上,所述方法还可以包括:,在获取用户输入需要调试方法的调试类型和关键参数后,所述方法还包括:获取用户输入的变量过滤表达式;其中,所述变量过滤表达式可以是正则表达式等。
按照所述变量过滤表达式对记录调用的所述函数信息进行过滤;
所述利用所述函数信息进行快速调试的流转步骤、时间和代码行数,包括:利用过滤后的所述函数信息进行快速调试的流转步骤、时间和代码行数。
本发明实施例中,如果用户通过快速调试入口输入了调试类型、关键参数和变量过滤表达式,那么,在服务器记录调用的函数信息后,系统会自动按照所述变量过滤表达式对记录调用的所述函数信息进行过滤,来进一步优化调试过程中变量的显示,从而提高调试效率。
本发明实施例采用上述技术方案进行调试和debug的情况下,至少可以带来以下有益效果:1)调试者可以不用充分了解代码逻辑,即可以快速的定位到调试过程的问题所在,而不用通过点对点的debug来定位问题;2)对于线上问题的定位可以摆脱打印日志重新部署的不便,节约了调试时间,提高了调试效率;3)对于字节码动态织入技术不能查看局部变量的情况,而本发明对调试过程中的变化的变化,进行可视化展示,从而可以实时查看调试过程中所有变量的变化情况;4)相对于远程调试不需要阻塞用户进程同时,即提高了调试效率。
比如,将应用部署到一个服务器上,在服务器运行有问题时,需要对该服务器进行问题排查,如果采用现有的技术,只能查询到输入参数和返回参数,而采用本发明所述技术方案,不但可以看到输入参数和返回参数,还可以看到中间变量的变化情况,根据中间变量的变化情况,可以快速的定位到问题的所在。由于本发明实施例所述技术方案对于远程调试不需要阻塞用户进程,同时也提高了调试效率。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
请参阅图2,为本发明实施例提供的一种基于JPDA的调试装置的结构示意图,具体可以包括如下模块:初始化模块201,第一获取模块202,第二获取模块203,记录模块204和可视化模块205,其中,
所述初始化模块201,用于初始化快速调试入口;
所述第一获取模块202,用于通过所述快速调试入口获取用户输入需要调试方法的调试类型和关键参数;
所述第二获取模块203,用于根据所述调试类型和关键参数,获取调用所述调试方法对应的函数的函数信息,所述函数信息至少包括一种:堆栈信息、成员变量信息和局部变量信息;
所述记录模块204,用于记录获取的所述调试函数信息,以及记录利用所述调试函数信息进行快速调试的流转步骤、时间和代码行数;
所述可视化模块205,用于根据用户输入的所述关键参数,按照时序可视化展示所述流转步骤、时间和代码行数的变化情况,完成快速调试。
可选的,在另一实施例中,该实施例在上述实施例的基础上,所述初始化模块初始化的快速调试入口为利用JDI创建的一个快速调试入口。
可选的,在另一实施例中,该实施例在上述实施例的基础上,所述装置还可以包括:汇总模块301,其结构示意图如图3所示,其中,
所述汇总模块301,用于根据用户输入的所述关键参数,汇总快速调试的所述流转步骤、时间和代码行数;
所述可视化模块205,还用于按照时序可视化展示所述汇总模块301汇总后的所述流转步骤、时间和代码行数的变化情况。
可选的,在另一实施例中,该实施例在上述实施例的基础上,所述装置还可以包括:过滤模块401,其结构示意图如图4所示,其中,
所述第一获取模块201,还用于在获取用户输入需要调试方法的调试类型和关键参数后,获取用户输入的变量过滤表达式;
所述过滤模块401,用于按照所述第一获取模块201获取的变量过滤表达式对记录的所述函数信息进行过滤;
所述记录模块204,还用于记录利用所述过滤模块401过滤后的所述函数信息进行快速调试的流转步骤、时间和代码行数。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
可选的,本发明实施例还提供一种电子设备,包括处理器,存储器,存储在存储器上并可在所述处理器上运行的计算机程序,该计算机程序被处理器执行时实现上述基于JPDA的调试方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述基于JPDA的调试方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(RandomAccess Memory,简称RAM)、磁碟或者光盘等。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种基于JPDA的调试方法、装置、电子设备和存储介质,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (10)

1.一种基于JPDA的调试方法,其特征在于,包括:
初始化快速调试入口;
通过所述快速调试入口,获取用户输入需要调试方法的调试类型和关键参数;
根据所述调试类型和关键参数,获取调用所述调试方法对应函数的函数信息,所述函数信息至少包括一种:堆栈信息、成员变量信息和局部变量信息;
记录获取的所述函数信息,以及记录利用所述函数信息进行快速调试的流转步骤、时间和代码行数;
根据用户输入的所述关键参数,按照时序可视化展示所述流转步骤、时间和代码行数的变化情况,完成快速调试。
2.根据权利要求1所述的方法,其特征在于,所述快速调试入口为利用JDI创建的一个快速调试入口。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
根据用户输入的所述关键参数,汇总快速调试的所述流转步骤、时间和代码行数;
所述按照时序可视化展示所述流转步骤、时间和代码行数的变化情况,包括:按照时序展示汇总后的所述流转步骤、时间和代码行数的变化情况。
4.根据权利要求1或2所述的方法,其特征在于,在获取用户输入需要调试方法的调试类型和关键参数后,所述方法还包括:
获取用户输入的变量过滤表达式;
按照所述变量过滤表达式对记录调用的所述函数信息进行过滤;
所述记录利用所述函数信息进行快速调试的流转步骤、时间和代码行数,包括:
记录利用过滤后的所述函数信息进行快速调试的流转步骤、时间和代码行数。
5.一种基于JPDA的调试装置,其特征在于,包括:
初始化模块,用于初始化快速调试入口;
第一获取模块,用于通过所述快速调试入口获取用户输入需要调试方法的调试类型和关键参数;
第二获取模块,用于根据所述调试类型和关键参数,获取调用所述调试方法对应的函数的函数信息,所述函数信息至少包括一种:堆栈信息、成员变量信息和局部变量信息;
记录模块,用于记录获取的所述调试函数信息,以及记录利用所述调试函数信息进行快速调试的流转步骤、时间和代码行数;
可视化模块,用于根据用户输入的所述关键参数,按照时序可视化展示所述流转步骤、时间和代码行数的变化情况,完成快速调试。
6.根据权利要求5所述的装置,其特征在于,所述初始化模块初始化的快速调试入口为利用JDI创建的一个快速调试入口。
7.根据权利要求5或6所述的装置,其特征在于,所述装置还包括:
汇总模块,用于根据用户输入的所述关键参数,汇总快速调试的所述流转步骤、时间和代码行数;
所述可视化模块,还用于按照时序可视化展示所述汇总模块汇总后的所述流转步骤、时间和代码行数的变化情况。
8.根据权利要求5或6所述的装置,其特征在于,所述装置还包括:
所述第一获取模块,还用于在获取用户输入需要调试方法的调试类型和关键参数后,获取用户输入的变量过滤表达式;
过滤模块,用于按照所述获取模块获取的变量过滤表达式对记录的所述函数信息进行过滤;
所述记录模块,还用于记录利用所述过滤模块过滤后的所述函数信息进行快速调试的流转步骤、时间和代码行数。
9.一种电子设备,其特征在于,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如权利要求1至4中任一项所述的基于JPDA的调试方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至4中任一项所述的基于JPDA的调试方法法中的步骤。
CN201911419429.3A 2019-12-31 2019-12-31 基于jpda的调试方法、装置、电子设备及存储介质 Pending CN111209198A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911419429.3A CN111209198A (zh) 2019-12-31 2019-12-31 基于jpda的调试方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911419429.3A CN111209198A (zh) 2019-12-31 2019-12-31 基于jpda的调试方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
CN111209198A true CN111209198A (zh) 2020-05-29

Family

ID=70784995

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911419429.3A Pending CN111209198A (zh) 2019-12-31 2019-12-31 基于jpda的调试方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN111209198A (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060206879A1 (en) * 2005-03-10 2006-09-14 Harold Batteram Java program method invocation display
CN102495802A (zh) * 2011-12-26 2012-06-13 华为技术有限公司 测试软件系统的方法和装置以及计算机系统
US20140258985A1 (en) * 2013-03-07 2014-09-11 Oracle International Corporation Debugger With Method Restart Capability
CN109783342A (zh) * 2017-11-10 2019-05-21 华为技术有限公司 脚本调试方法、设备及计算机存储介质
CN110032426A (zh) * 2019-04-10 2019-07-19 浙江讯盟科技有限公司 一种可在线实时调试的方法、系统及存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060206879A1 (en) * 2005-03-10 2006-09-14 Harold Batteram Java program method invocation display
CN102495802A (zh) * 2011-12-26 2012-06-13 华为技术有限公司 测试软件系统的方法和装置以及计算机系统
US20140258985A1 (en) * 2013-03-07 2014-09-11 Oracle International Corporation Debugger With Method Restart Capability
CN109783342A (zh) * 2017-11-10 2019-05-21 华为技术有限公司 脚本调试方法、设备及计算机存储介质
CN110032426A (zh) * 2019-04-10 2019-07-19 浙江讯盟科技有限公司 一种可在线实时调试的方法、系统及存储介质

Similar Documents

Publication Publication Date Title
US7975262B2 (en) Error tracing with context history
US10360004B2 (en) Using dynamic information to refine control flow graphs
CN104346148A (zh) 获取程序性能消耗信息的方法、装置及系统
CN113268243B (zh) 内存预测方法及装置、存储介质、电子设备
CN105354498A (zh) 一种注册表的操作方法和相关装置及设备
CN110597704B (zh) 应用程序的压力测试方法、装置、服务器和介质
CN107807844B (zh) 交通测试场景的生成方法、装置及计算机可读存储介质
CN113434396A (zh) 接口测试方法、装置、设备、存储介质及程序产品
CN109684177A (zh) 信息反馈方法及装置
CN106681852B (zh) 一种浏览器兼容性的调整方法及装置
CN111090821B (zh) 一种实现动态网页的方法、装置、电子设备及存储介质
CN112181845A (zh) 一种接口测试方法及装置
CN111209198A (zh) 基于jpda的调试方法、装置、电子设备及存储介质
CN116360787A (zh) 表格代码自动生成方法、装置、电子设备及存储介质
CN107766230A (zh) 一种基于配置文件进行测试的方法与设备
CN112131092A (zh) 页面调试方法和装置
CN110968500A (zh) 一种测试用例的执行方法及装置
CN115344490A (zh) 一种测试软件产品的方法、装置、存储介质及电子设备
CN111124378B (zh) 代码生成方法和装置
CN113051178A (zh) 测试数据构造方法、装置、设备及介质
CN114371866A (zh) 业务系统的版本重构测试方法、装置和设备
CN107506299B (zh) 一种代码分析方法及终端设备
CN111949516A (zh) 页面测试方法、装置及电子设备
CN114490368B (zh) 一种过滤自定义Python脚本函数调用堆栈的方法
CN111401020A (zh) 一种界面加载方法、系统和计算设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination