一种基于动态快照的软件调试方法技术

技术编号:39321388 阅读:9 留言:0更新日期:2023-11-12 16:01
本发明专利技术提供了软件开发技术领域的一种基于动态快照的软件调试方法,包括:步骤S10、调试界面基于虚拟机列表的选择信号,与目标虚拟机建立连接;步骤S20、将微型Shell服务器注册到目标虚拟机;步骤S30、从微型Shell服务器获取目标虚拟机的监控信息和代码信息并显示于调试界面;步骤S40、设置代码信息的断点信息发送给微型Shell服务器;步骤S50、微型Shell服务器基于断点信息定位软件的代码行,在对应的代码行中植入快照信息记录代码;步骤S60、软件运行过程中,基于快照信息记录代码生成快照文件;步骤S70、调试界面基于快照文件的选择信号进行解析得到快照内容并展示,基于快照内容对软件进行调试。本发明专利技术的优点在于:极大的提升了软件调试的效率以及质量。了软件调试的效率以及质量。了软件调试的效率以及质量。

【技术实现步骤摘要】
一种基于动态快照的软件调试方法


[0001]本专利技术涉及软件开发
,特别指一种基于动态快照的软件调试方法。

技术介绍

[0002]在软件开发过程中,需要不断的对软件进行调试,随着软件越来越复杂和庞大,使得软件的调试变得越来越困难。软件的调试工作需要遵循一系列步骤,以确保能够达到预期的目标,常见的调试方法有单步调试法、断点调试法和跟踪调试法等,这些调试方法存在如下缺点:
[0003]1、需要配合软件运行状态的检查,随着软件操作的复杂度增加,调试的时间也越来越长;2、使用断点和单步执行,跟踪软件运行状态,不仅花费时间和资源多,也对调试过程产生较大的干扰;3、当软件出现非法操作时,常规调试方法无法成功发现问题。
[0004]因此,如何提供一种基于动态快照的软件调试方法,实现提升软件调试的效率以及质量,成为一个亟待解决的技术问题。

技术实现思路

[0005]本专利技术要解决的技术问题,在于提供一种基于动态快照的软件调试方法,实现提升软件调试的效率以及质量。
[0006]本专利技术是这样实现的:一种基于动态快照的软件调试方法,包括如下步骤:
[0007]步骤S10、调试界面实时显示服务发现器搜索的虚拟机列表,基于所述虚拟机列表的选择信号,与运行有基于java语言开发的软件的目标虚拟机建立连接;
[0008]步骤S20、通过探针技术将微型Shell服务器动态注册到所述目标虚拟机;
[0009]步骤S30、通过监控信息收集器从所述微型Shell服务器获取目标虚拟机的监控信息,通过代码信息收集器从所述微型Shell服务器获取软件的代码信息,并通过所述调试界面显示监控信息以及代码信息;
[0010]步骤S40、在所述调试界面中,设置所述代码信息的断点信息并发送给微型Shell服务器;
[0011]步骤S50、微型Shell服务器基于所述断点信息定位软件的代码行,在对应的所述代码行中植入快照信息记录代码;
[0012]步骤S60、软件运行过程中,基于所述快照信息记录代码自动生成快照文件;
[0013]步骤S70、所述调试界面基于目标虚拟机的选择信号展示对应的快照文件,基于所述快照文件的选择信号进行解析得到快照内容并进行展示,基于所述快照内容对软件进行调试。
[0014]进一步的,所述步骤S10中,所述与运行有基于java语言开发的软件的目标虚拟机建立连接具体为:
[0015]通过JDK提供了JPS命令获取目标虚拟机的PID参数,基于所述PID参数与运行有基于java语言开发的软件的目标虚拟机建立连接。
[0016]进一步的,所述步骤S20中,所述微型Shell服务器中内置一至少包括添加断点、删除断点、查询调试进程中的快照信息、查询断点下的快照信息、查询指定类下的断点信息、查询活跃的调试进程、退出调试进程的命令集。
[0017]进一步的,所述步骤S30中,所述监控信息至少包括CPU使用率、内存使用率、堆内存使用率、线程状态、GC信息以及类加载器信息。
[0018]进一步的,所述步骤S40具体为:
[0019]在所述调试界面中,通过搜索类名以设置所述代码信息的断点信息,将所述断点信息以命令的方式发送给微型Shell服务器。
[0020]进一步的,所述步骤S40还包括:
[0021]在发送所述断点信息前,先校验所述目标虚拟机中是否存在微型Shell服务器,若不存在,则在所述目标虚拟机中自动重新注册微型Shell服务器。
[0022]进一步的,所述步骤S50具体为:
[0023]微型Shell服务器基于所述断点信息匹配类,进而定位软件的代码行,通过ASM技术在对应的所述代码行中植入快照信息记录代码。
[0024]进一步的,所述步骤S50中,所述快照信息记录代码为轻量级代码。
[0025]进一步的,所述步骤S70中,所述快照内容包括若干个断点内容,各所述断点内容至少包括断点所在类、断点所在行、断点行之上的局部变量信息、类的成员变量值以及类的静态变量值。
[0026]进一步的,所述步骤S70中,所述快照文件在调试界面中以快照文件列表的形式进行展示。
[0027]本专利技术的优点在于:
[0028]通过调试界面显示服务发现器搜索的虚拟机列表,基于虚拟机列表的选择信号与运行有软件的目标虚拟机建立连接,并通过探针技术将微型Shell服务器动态注册到目标虚拟机中,使目标虚拟机拥有快照记录功能,无需重启目标虚拟机的软件,让用户毫无感知;接着分别通过监控信息收集器和代码信息收集器从微型Shell服务器获取目标虚拟机的监控信息、软件的代码信息,并通过调试界面进行显示;在调试界面中设置代码信息的断点信息发送给微型Shell服务器,微型Shell服务器基于断点信息定位软件的代码行以植入快照信息记录代码,软件运行过程中基于快照信息记录代码自动生成快照文件,最后调试界面基于目标虚拟机的选择信号展示对应的快照文件,基于快照文件的选择信号进行解析得到快照内容并进行展示,基于快照内容对软件进行调试;即先在目标虚拟机中注册微型Shell服务器以使目标虚拟机拥有快照记录功能,再通过代码信息收集器从微型Shell服务器获取代码信息,接着通过调试界面设置代码信息的断点信息发送给微型Shell服务器,微型Shell服务器基于断点信息植入快照信息记录代码,以在软件运行过程中自动生成快照文件,并通过调试界面展示快照内容和监控信息以进行调试,即通过调试界面简单操作后即可自动获取并展示快照内容和监控信息,而快照内容至少包括断点所在类、断点所在行、断点行之上的局部变量信息、类的成员变量值以及类的静态变量值,监控信息至少包括CPU使用率、内存使用率、堆内存使用率、线程状态、GC信息以及类加载器信息,基于快照内容和监控信息可快速发现非法操作,最终极大的提升了软件调试的效率以及质量。
附图说明
[0029]下面参照附图结合实施例对本专利技术作进一步的说明。
[0030]图1是本专利技术一种基于动态快照的软件调试方法的流程图。
具体实施方式
[0031]本申请实施例中的技术方案,总体思路如下:先在目标虚拟机中注册微型Shell服务器以使目标虚拟机拥有快照记录功能,再从微型Shell服务器获取软件的代码信息以设置断点信息,微型Shell服务器基于断点信息植入快照信息记录代码,以在软件运行过程中自动生成快照文件,并通过调试界面展示至少包括断点所在类、断点所在行、断点行之上的局部变量信息、类的成员变量值以及类的静态变量值的快照内容,至少包括CPU使用率、内存使用率、堆内存使用率、线程状态、GC信息以及类加载器信息的监控信息,基于快照内容和监控信息进行调试,即通过调试界面简单操作后即可自动获取并展示快照内容和监控信息,基于快照内容和监控信息可快速发现非法操作,进而提升软件调试的效率以及质量。
[0032]请参照图1所示,本专利技术一种基于动态快照的软件调试方法的较佳实施例,包括如下步骤:
[00本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于动态快照的软件调试方法,其特征在于:包括如下步骤:步骤S10、调试界面实时显示服务发现器搜索的虚拟机列表,基于所述虚拟机列表的选择信号,与运行有基于java语言开发的软件的目标虚拟机建立连接;步骤S20、通过探针技术将微型Shel l服务器动态注册到所述目标虚拟机;步骤S30、通过监控信息收集器从所述微型Shel l服务器获取目标虚拟机的监控信息,通过代码信息收集器从所述微型Shel l服务器获取软件的代码信息,并通过所述调试界面显示监控信息以及代码信息;步骤S40、在所述调试界面中,设置所述代码信息的断点信息并发送给微型Shel l服务器;步骤S50、微型Shel l服务器基于所述断点信息定位软件的代码行,在对应的所述代码行中植入快照信息记录代码;步骤S60、软件运行过程中,基于所述快照信息记录代码自动生成快照文件;步骤S70、所述调试界面基于目标虚拟机的选择信号展示对应的快照文件,基于所述快照文件的选择信号进行解析得到快照内容并进行展示,基于所述快照内容对软件进行调试。2.如权利要求1所述的一种基于动态快照的软件调试方法,其特征在于:所述步骤S10中,所述与运行有基于java语言开发的软件的目标虚拟机建立连接具体为:通过JDK提供了JPS命令获取目标虚拟机的PID参数,基于所述PID参数与运行有基于java语言开发的软件的目标虚拟机建立连接。3.如权利要求1所述的一种基于动态快照的软件调试方法,其特征在于:所述步骤S20中,所述微型Shel l服务器中内置一至少包括添加断点、删除断点、查询调试进程中的快照信息、查询断点下的快照信息、查询指定类下的...

【专利技术属性】
技术研发人员:杨辉黄家昌林鑫
申请(专利权)人:福建亿能达信息技术股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1