CN109885486A - 系统调试装置及方法 - Google Patents

系统调试装置及方法 Download PDF

Info

Publication number
CN109885486A
CN109885486A CN201910062686.XA CN201910062686A CN109885486A CN 109885486 A CN109885486 A CN 109885486A CN 201910062686 A CN201910062686 A CN 201910062686A CN 109885486 A CN109885486 A CN 109885486A
Authority
CN
China
Prior art keywords
debugging
producing line
application system
breakpoint
woven
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
CN201910062686.XA
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.)
Xin Yong Computing Power Information Technology (shanghai) Co Ltd
Original Assignee
Xin Yong Computing Power Information Technology (shanghai) 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 Xin Yong Computing Power Information Technology (shanghai) Co Ltd filed Critical Xin Yong Computing Power Information Technology (shanghai) Co Ltd
Priority to CN201910062686.XA priority Critical patent/CN109885486A/zh
Publication of CN109885486A publication Critical patent/CN109885486A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本公开提供了一种系统调试装置及方法,所述系统调试装置包括:操作模块,调试模块和开关模块;所述系统调试装置及方法的应用过程中不需要修改所述应用系统已有服务的内容,也不需要增加新的服务的工作量,对所述应用系统的原有服务无任何影响。将应用系统的产线业务流量小流量分发或小流量复制获取实时的调试样本,对产线的真实业务流量几乎无影响。可以任意的定义应用系统的原始字节码文件的断点,通过在所述断点中织入可执行插件,实现动态修改所述原始字节码文件,形成所述调试字节码文件并实时生效所述调试字节码文件对所述应用系统进行在线调试,不需要频繁更新所述应用系统,提高了所述应用系统的稳定性。

Description

系统调试装置及方法
技术领域
本公开涉及计算机应用技术领域,尤其是涉及一种系统调试装置及方法。
背景技术
随着网络的蓬勃发展,大型分布式系统是现代软件系统普遍方案,而系统运行稳定性又是很多互联网系统追求的目标,故此,一般互联网系统都会采用多种系统环境来保证系统的稳定性。
现有互联网系统一般都分为测试环境、生产环境等,而生产环境是用户访问的环境,所以,生产环境是开发人员不能随意变动或修改的,而且,很多公司都会严格控制上线流程,保证生产环境的系统服务稳定。
目前,系统在产线运行时,经常会遇到的一些各类测试环境不好复现、通过日志也无法准确定位的问题。以前的做法往往是给产线服务打上各类补丁,观察产线的运行时状态,有时候随着问题深入,还需要不停地打补丁,频繁更新产线服务,非常影响产线服务的稳定。目前虽然很多语言开发的系统已经支持通过远程调试的功能,但是这类调试功能会阻断所有请求,这类调试模式不适合在产线进行的。
发明内容
本公开的目的在于提供一种,以解决相关技术中系统在产线运行,对系统进行调试需要不断的更新产线服务,非常影响产线服务的稳定的问题。
根据本公开的第一方面,提供一种系统调试装置,包括:
操作模块,用于对应用系统的产线调试过程进行可视化操作,所述可视化操作包括:定义所述应用系统的原始字节码文件的断点以及根据产线问题选择织入所述断点中的可执行插件;其中,所述应用系统采用支持字节码文件解析的语言编写;
调试模块,包括多个所述可执行插件,设置在所述应用系统的内部,随所述应用系统的启动一起启动,用于将所述根据产线问题选择选出的所述可执行插件织入所述定义的原始字节码文件的断点中,形成调试字节码文件;
开关模块,用于开启或关闭产线调试,在开启产线调试的模式下,对所述应用系统的产线业务流量进行小流量分流或小流量复制,并将所述分流或所述复制的产线业务流量导入所述调试模块。
可选的,所述调试模块通过字节码技术,结合所述应用系统的字节码文件的源码或者反编译字节码文件,将所述选出的所述可执行插件织入所述原始字节码文件的断点中,实现动态修改所述原始字节码文件,形成所述调试字节码文件并实时生效所述调试字节码文件。
可选的,在所述定义的所述断点中,织入各类所述可执行插件,形成所述调试字节码文件。
可选的,所述开关模块通过设置流量比例对所述产线业务流量进行分发,将所述产线业务流量分流至所述调试模块;所述开关模块通过TCPCOPY技术对所述产线业务流量进行小流量复制。
可选的,所述应用系统包括JVM语言开发的业务系统,所述调试模块通过结合断点调试技术和JVM语言提供的基础字节码工具完成在所述断点中织入所述可执行插件。
可选的,所述织入的所述断点包括所述原始字节码文件中方法体的入口。
可选的,织入所述方法体的所述可执行插件通过反射机制,自动获取所述方法体的入参和返回值并将所述入参和所述返回值动态发送到所述操作模块。
可选的,所述调试模块通过直接织入的方式将所述可执行插件织入所述断点中织入。
可选的,所述调试模块还支持远程调试功能。
可选的,所述可执行插件包括日志插件和远程调试插件。
根据本公开的第二方面,提供一种系统调试方法,采用所述系统调试装置包括,
形成一调试组件,将所述调试组件设置在所述应用系统的内部,随所述应用系统的启动一起启动;,所述调试组件包括多个自定义的可执行插件,所述可执行插件用于织入字节码文件的断点中;
开启产线调试模式,将应用系统的产线业务流量进行小流量分流或小流量复制,并将所述分流或所述复制的产线业务流量导入所述调试组件;
定义所述应用系统的原始字节码文件的断点,根据所述应用系统的产线问题选择织入所述断点中的所述可执行插件;其中,所述应用系统采用支持字节码文件解析的语言编写;
将所述选出的所述可执行插件织入所述断点中,形成调试字节码文件,对所述应用系统进行产线调试;以及
所述产线调试完成,关闭所述产线调试模式。
可选的,通过字节码技术,结合所述应用系统的字节码文件的源码或者反编译字节码文件,通过修改所述原始字节码文件实现将所述选出的所述可执行插件织入所述断点中。
可选的,在所述断点中,织入各类可执行插件,形成新的字节码文件。
可选的,根据预先设定的流量比例对所述产线业务流量进行分发,将所述产线业务流量分流至所述调试组件;通过TCPCOPY技术对所述产线业务流量进行所述复制。
可选的,所述织入的所述断点包括所述应用系统的字节码文件中方法体的入口,织入所述方法体的所述可执行插件通过反射机制,自动获取所述方法体的入参和返回值并将所述入参和所述返回值动态发送到可视化界面进行收集和展示。
可选的,通过直接织入的方式将所述可执行插件织入所述断点中。
综上所述,在本公开提供的系统调试装置及方法中,所述系统调试装置包括:操作模块,调试模块和开关模块;操作模块用于对应用系统的产线调试过程进行可视化操作,开关模块用于开启或关闭产线调试,所述调试模块寄生在所述应用系统的内部,包括多个所述可执行插件,在开启产线调试的模式下,对所述应用系统的产线业务流量进行小流量分流或小流量复制,并将所述分流或所述复制的产线业务流量导入所述调试模块,操作模块定义所述应用系统的原始字节码文件的断点以及根据产线问题从所述调试模块中选择织入所述断点中的可执行插件,在所述断点中织入所述可执行插件,形成调试字节码文件,实现对所述应用系统的产线调试。本公开所提供的系统调试装置及方法,所述调试模块能寄生在所述应用系统的内部,即所述调试模块随所述应用系统的移动一起启动,可以让所述应用系统无任何感知,不需要修改所述应用系统已有服务的内容,也不需要增加新的服务的工作量,对所述应用系统的原有服务无任何影响。通过将应用系统的产线业务流量小流量分发或小流量复制获取实时的调试样本,对产线的真实业务流量几乎无影响。可以任意的定义应用系统的原始字节码文件的断点,通过在所述断点中织入可执行插件对所述应用系统进行调试,调试模式开关可控,调试模式关闭后停止对所述应用系统的在线调试,从而实现无需重新发布所述应用系统就能动态对所述应用系统进行调试,不需要频繁更新所述应用系统,提高了所述应用系统的稳定性。提供可视化操作界面,使得调试过程操作高效,调试结果可视化。
附图说明
图1是根据本公开一示例性实施例提供的一种系统调试装置的结构框图;
图2是根据本公开又一示例性实施例提供的一种系统调试装置的的结构框图;
图3是根据本公开一示例性实施例提供的一种系统调试方法的流程图;
其中,11-操作模块,12-调试模块,121-多个可执行插件,13-操作模块,14-应用系统,15-核心应用,16-原始字节码文件,161-字节文件a,162-字节文件b,163-字节文件c,164-字节文件d,17-调试字节码文件,171-新字节文件a,172-字节文件b,173-字节文件c,174-字节文件d。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在本公开实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
如相关技术中所述的,互联网系统在产线运行时,经常会遇到的一些各类测试环境不好复现、通过日志也无法准确定位的问题。以前的做法往往是给产线服务打上各类补丁,观察产线的运行时状态,有时候随着问题深入,还需要不停地打补丁,频繁更新产线服务,非常影响产线服务的稳定。目前虽然很多语言开发的系统已经支持通过远程调试的功能,但是这类调试功能会阻断所有请求,这类调试模式不适合在产线进行的。
为了解决相关技术中存在的问题,本公开提供了一种系统调试装置。
参阅图1,图1是根据本公开一示例性实施例提供的一种系统调试装置的结构框图。如图1所示,所述系统调试装置包括:
操作模块11,用于对应用系统14的产线调试过程进行可视化操作,所述可视化操作包括:定义所述应用系统14的原始字节码文件16的断点以及根据产线问题选择织入所述断点中的可执行插件;其中,所述应用系统14采用支持字节码文件解析的语言编写;
调试模块12,包括多个所述可执行插件121,设置在所述应用系统14的内部,随所述应用系统14的启动一起启动;用于将所述根据产线问题选择选出的所述可执行插件织入所述定义的原始字节码文件16的断点中,形成调试字节码文件17;
开关模块13,用于开启或关闭产线调试,在开启产线调试的模式下,对所述应用系统14的产线业务流量进行小流量分流或小流量复制,并将所述分流或所述复制的产线业务流量导入所述调试模块12。
继续参阅图1,下面将结合具体实施例对所述系统调试装置进行详细的描述。
需要说明的是,本公开实施例所提供的所述系统调试装置可以用于对复杂业务系统的产线调试,具体的,所述系统调试装置在复杂业务系统的产线遇到各类需要动态添加日志、需要进行在线调试时进行使用。
在一个实施例中,所述系统调试装置可以应用于JVM语言开发的业务系统,即所述应用系统14可以为JVM语言开发的业务系统。
进一步的,所述开关模块13可以实现服务网关的功能,用于开启和关闭对所述应用系统14的产线业务流量的分流或复制。具体的,所述开关模块13在开启产线调试的模式下支持调试分流能力和流量复制功能;在一个实施例中,所述开关模块13通过设置流量比例对所述产线业务流量进行分发,将所述产线业务流量分流至所述调试模块12,具体的,所述开关模块13可以通过设置所述应用系统14的核心应用15和所述调试模块12的流量比例对所述产线业务流量小流量分流;所述开关模块13可以通过TCPCOPY技术对所述产线业务流量进行小流量复制。需要说明的是,对所述应用系统14的调试采用调试分流还是流量复制可以根据所述应用系统的服务具体特性进行选择。具体的,所述开关模块13关闭所述产线调试模式之后,则停止对所述应用系统进行产线调试,无需重新发布服务。具体的,关闭产线调试模式之后,用于对所述应用系统进行产线调试的产线业务流量不会被路由到所述调试模块中,则所述产线调试停止。下次如果开启所述产线调试模式,则又会有产线业务流量被路由进入调试模块,可以继续进行所述产线调试。
在一个实施例中,所述操作模块11作为所述系统调试装置的调试console,为所述系统调试装置提供可视化操作界面,所述操作模块11用于控制所述开关模块13和所述调试模块12;具体的,所述操作模块11可以控制所述开关模块13的开启和关闭,所述操作模块11可以定义所述应用系统的原始字节码文件16的断点以及根据产线问题选择织入所述断点中的可执行插件以及控制所述调试模块12将选出的可执行插件织入定义的所述断点中。进一步的,所述操作模块11还用于对系统调试的结果数据进行收集和展示,通过所述操作模块11可以使所述系统调试装置的调试操作高效。可以通过所述操作模块任意定义所述原始字节码文件16的断点。
进一步的,所述调试模块12通过寄生的方式设置在所述应用系统14的内部,且调试模块12与所述应用系统14的核心应用15分开,具体的,所述寄生具体指:当所述应用系统需要支持基于字节码的在线调试时,在所述应用系统启动时,加入所述调试模块,使所述调试模块随所述应用系统的启动一起启动,这个过程可以让所述应用系统14无任何感知,不需要修改所述应用系统14已有服务的内容,也不需要增加新的服务的工作量,对所述应用系统14的原有服务无任何影响。
在一个实施例中,所述调试模块12包括至少一类所述可执行插件。所述调试模块12通过字节码技术,结合所述应用系统14的原始字节码文件16的源码或者反编译字节码文件,将所述选出的所述可执行插件织入所述原始字节码文件的断点中,实现动态修改所述原始字节码文件,形成所述调试字节码文件并实时生效所述调试字节码文件,完成对所述应用系统的部分在线调试的操作。进一步的,在一个实施例中,在所述定义的所述断点中,织入各类所述可执行插件,动态修改所述原始字节码文件形成所述调试字节码文件17并实时生效所述调试字节码文件17,从而实现不用修改、编译、发布代码以及无需重新发布所述应用系统就能对所述应用系统进行在线调试,不需要频繁更新所述应用系统,提高了所述应用系统的稳定性。
进一步的,可以参阅图2,在一个实施例中,所述原始字节码文件16中包括字节文件a161,字节文件b162,字节文件c163以及字节文件d164,所述定义的断点在所述字节文件a161中,则将选出的可执行插件织入定义的所述断点中,形成新字节文件a171,改变了原始字节码文件16的内容,形成调试字节码文件17,所述调试字节码文件17包括:新字节文件a171,字节文件b172,字节文件c173以及字节文件d174。
在一个实施例中,所述应用系统14包括JVM语言开发的业务系统,所述调试模块12通过结合断点调试技术和JVM语言提供的基础字节码工具完成将所述选出的可执行插件织入选择出的所述断点中。
在一个实施例中,所述调试模块12通过直接织入的方式将所述选出的可执行插件织入定义的所述断点中。在一个实施例中,所述可执行插件可以为常用类型的织入插件,则所述调试模块12包括一些常用的织入插件,在对所述应用系统14进行调试时,所述调试模块12可以提供一些常用的织入插件,则在定义的所述断点中织入可执行插件时可以不用动态编辑,直接织入即可,简单快捷。
在一个实施例中,所述织入的所述断点包括所述原始字节码文件16中方法体的入口。进一步的,织入所述方法体的所述可执行插件通过反射机制,自动获取所述方法体的入参和返回值并将所述入参和所述返回值动态发送到所述操作模块,所述操作模块对所述入参和所述返回值进行收集和展示。
在一个实施例中,所述调试模块12还可以支持远程调试功能;所述调试模块12中包括的可执行插件可以包括但不仅仅限于日志插件和远程调试插件。具体的,所述远程调试功能主要应用在对产线业务流量进行复制的场景。
本公开还提供了一种系统调试方法,采用如上述实施例中提供的所述系统调试装置,参阅图3,图3为根据本公开一示例性实施例提供的一种的系统调试方法,如图所示,所述系统调试方法包括以下步骤:
步骤S1:形成一调试组件,将所述调试组件设置在所述应用系统的内部,随所述应用系统的启动一起启动;所述调试组件包括多个可执行插件,所述可执行插件用于织入字节码文件的断点中;
步骤S2:开启产线调试模式,将应用系统的产线业务流量进行小流量分流或小流量复制,并将所述分流或所述复制的产线业务流量导入所述调试组件;
步骤S3:定义所述应用系统的原始字节码文件的断点,根据所述应用系统的产线问题选择织入所述断点中的所述可执行插件;其中,所述应用系统采用支持字节码文件解析的语言编写;
步骤S4:将所述选出的所述可执行插件织入所述断点中,形成调试字节码文件,对所述应用系统进行产线调试;以及
步骤S5:所述产线调试完成,关闭所述产线调试模式。
参阅图1至图3,下面将结合所述系统调试装置和具体实施例对上述步骤进行详细的描述。
在一个实施例中,所述应用系统14可以为JVM语言开发的业务系统,当系统在产线遇到各类需要动态添加日志、需要进行在线调试时使用本公开实施例所提供的系统调试方法。
则使用所述系统调试方法对所述应用系统14的产线问题进行调试的过程具体包括:在步骤S1中,使用多个可以织入字节码文件的断点中可执行插件形成所述调试组件,所述调试模块12包括所述调试组件(即多个可执行插件),将所述调试模块12寄生在所述应用系统14的内部,则同时所述调试组件也寄生在所述应用系统14的内部,可以让所述应用系统14无任何感知。
然后进行步骤S2,所述操作模块11控制所述开关模块13开启产线调试模式,在所述产线调试模式下,对所述应用系统14的产线业务流量进行小流量分流或小流量复制,并将所述分流或所述复制的产线业务流量导入所述调试模块(即所述调试组件)。在一个实施例中,根据预先设定的流量比例将所述产线业务流量小流量导入所述调试组件,具体的,所述预先设定的流量比例包括预先设定的流经所述应用系统14的核心应用15和所述调试模块12的流量比例;通过TCPCOPY技术对所述产线业务流量进行小流量复制。需要说明的是,对所述应用系统14的调试采用调试分流还是流量复制可以根据所述应用系统的服务具体特性进行选择。
接着进行步骤S3,所述产线业务流量导入调试组件之后,可以根据导入的产线业务流量分析出所述应用系统14存在的产线问题,所述操作模块11根据所述产线问题选出需要织入的可执行插件,定义所述原始字节码文件16的断点。
进行步骤S4,所述操作模块11控制所述调试模块12在所述断点中织入选出的所述可执行插件,形成调试字节码文件17,对所述应用系统14进行产线调试,所述操作模块11对所述产线调试的结果进行收集和展示。
关于步骤S4执行操作的具体方式已经在有关该系统的实施例中进行了详细描述,此处将不做详细阐述说明。
所述产线调试完成后,则进行步骤S5,所述操作模块11控制所述开关模块13关闭产线调试模式,停止调试,所述产线调试模式关闭后,所有可执行插件的织入自动失效,无需重新更新应用系统14。
综上所述,在本公开提供的系统调试装置及方法中,所述系统调试装置包括:操作模块,调试模块和开关模块;操作模块用于对应用系统的产线调试过程进行可视化操作,开关模块用于开启或关闭产线调试,所述调试模块包括多个所述可执行插件,设置在所述应用系统的内部,随所述应用系统的启动一起启动。在开启产线调试的模式下,对所述应用系统的产线业务流量进行小流量分流或小流量复制,并将所述分流或所述复制的产线业务流量导入所述调试模块,操作模块定义所述应用系统的原始字节码文件的断点以及根据产线问题从所述调试模块中选择织入所述断点中的可执行插件,在所述断点中织入所述可执行插件,形成调试字节码文件,实现对所述应用系统的产线在线调试。本公开所提供的系统调试装置及方法中所述调试模块能设置在所述应用系统的内部,随所述应用系统的启动一起启动,让所述应用系统无任何感知,在所述系统调试装置及方法的应用过程中不需要修改所述应用系统已有服务的内容,也不需要增加新的服务的工作量,对所述应用系统的原有服务无任何影响。通过将应用系统的产线业务流量小流量分发或小流量复制获取实时的调试样本,对产线的真实业务流量几乎无影响。可以任意的定义应用系统的原始字节码文件的断点,通过在所述断点中织入可执行插件,实现动态修改所述原始字节码文件,形成所述调试字节码文件并实时生效所述调试字节码文件,对所述应用系统进行产线在线调试,调试模式开关可控,调试模式关闭后所有的补丁自动失败,从而实现无需重新发布所述应用系统就能动态对所述应用系统进行调试,不需要频繁更新所述应用系统,提高了所述应用系统的稳定性。提供可视化操作界面,使得调试过程操作高效,调试结果可视化。
上述仅为本公开的优选实施例而已,并不对本公开起到任何限制作用。任何所属技术领域的技术人员,在不脱离本公开的技术方案的范围内,对本公开揭露的技术方案和技术内容做任何形式的等同替换或修改等变动,均属未脱离本公开的技术方案的内容,仍属于本公开的保护范围之内。

Claims (16)

1.一种系统调试装置,其特征在于,包括:
操作模块,用于对应用系统的产线调试过程进行可视化操作,所述可视化操作包括:定义所述应用系统的原始字节码文件的断点以及根据产线问题选择织入所述断点中的可执行插件;其中,所述应用系统采用支持字节码文件解析的语言编写;
调试模块,包括多个所述可执行插件,设置在所述应用系统的内部,随所述应用系统的启动一起启动;用于将所述根据产线问题选择选出的所述可执行插件织入所述定义的原始字节码文件的断点中,形成调试字节码文件;
开关模块,用于开启或关闭产线调试,在开启产线调试的模式下,对所述应用系统的产线业务流量进行小流量分流或小流量复制,并将所述分流或所述复制的产线业务流量导入所述调试模块。
2.如权利要求1所述的系统调试装置,其特征在于,所述调试模块通过字节码技术,结合所述应用系统的字节码文件的源码或者反编译字节码文件,将所述选出的所述可执行插件织入所述原始字节码文件的断点中,实现动态修改所述原始字节码文件,形成所述调试字节码文件并实时生效所述调试字节码文件。
3.如权利要求2所述的系统调试装置,其特征在于,在所述定义的所述断点中,织入各类所述可执行插件,形成所述调试字节码文件。
4.如权利要求1所述的系统调试装置,其特征在于,所述开关模块通过设置流量比例对所述产线业务流量进行分发,将所述产线业务流量分流至所述调试模块;所述开关模块通过TCPCOPY技术对所述产线业务流量进行小流量复制。
5.如权利要求1所述的系统调试装置,其特征在于,所述应用系统包括JVM语言开发的业务系统,所述调试模块通过结合断点调试技术和JVM语言提供的基础字节码工具完成在所述断点中织入所述可执行插件。
6.如权利要求1所述的系统调试装置,其特征在于,所述织入的所述断点包括所述原始字节码文件中方法体的入口。
7.如权利要求6所述的系统调试装置,其特征在于,织入所述方法体的所述可执行插件通过反射机制,自动获取所述方法体的入参和返回值并将所述入参和所述返回值动态发送到所述操作模块。
8.如权利要求1所述的系统调试装置,其特征在于,所述调试模块通过直接织入的方式将所述可执行插件织入所述断点中织入。
9.如权利要求1所述的系统调试装置,其特征在于,所述调试模块还支持远程调试功能。
10.如权利要求1所述的系统调试装置,其特征在于,所述可执行插件包括日志插件和远程调试插件。
11.一种系统调试方法,其特征在于,采用如权利要求1-10中任意一项所述的系统调试装置,包括,
形成一调试组件,将所述调试组件设置在所述应用系统的内部,随所述应用系统的启动一起启动;所述调试组件包括多个自定义的可执行插件,所述可执行插件用于织入字节码文件的断点中;
开启产线调试模式,将应用系统的产线业务流量进行小流量分流或小流量复制,并将所述分流或所述复制的产线业务流量导入所述调试组件;
定义所述应用系统的原始字节码文件的断点,根据所述应用系统的产线问题选择织入所述断点中的所述可执行插件;其中,所述应用系统采用支持字节码文件解析的语言编写;
将所述选出的所述可执行插件织入所述断点中,形成调试字节码文件,对所述应用系统进行产线调试;以及
所述产线调试完成,关闭所述产线调试模式。
12.如权利要求11所述的系统调试装置,其特征在于,通过字节码技术,结合所述应用系统的字节码文件的源码或者反编译字节码文件,通过修改所述原始字节码文件实现将所述选出的所述可执行插件织入所述断点中。
13.如权利要求12所述的系统调试装置,其特征在于,在所述断点中,织入各类可执行插件,形成新的字节码文件。
14.如权利要求11所述的系统调试装置,其特征在于,根据预先设定的流量比例对所述产线业务流量进行分发,将所述产线业务流量分流至所述调试组件;通过TCPCOPY技术对所述产线业务流量进行所述复制。
15.如权利要求11所述的系统调试装置,其特征在于,所述织入的所述断点包括所述应用系统的字节码文件中方法体的入口,织入所述方法体的所述可执行插件通过反射机制,自动获取所述方法体的入参和返回值并将所述入参和所述返回值动态发送到可视化界面进行收集和展示。
16.如权利要求11所述的系统调试装置,其特征在于,通过直接织入的方式将所述可执行插件织入所述断点中。
CN201910062686.XA 2019-01-23 2019-01-23 系统调试装置及方法 Pending CN109885486A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910062686.XA CN109885486A (zh) 2019-01-23 2019-01-23 系统调试装置及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910062686.XA CN109885486A (zh) 2019-01-23 2019-01-23 系统调试装置及方法

Publications (1)

Publication Number Publication Date
CN109885486A true CN109885486A (zh) 2019-06-14

Family

ID=66926506

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910062686.XA Pending CN109885486A (zh) 2019-01-23 2019-01-23 系统调试装置及方法

Country Status (1)

Country Link
CN (1) CN109885486A (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020053043A1 (en) * 2000-10-27 2002-05-02 Friedman George E. Enterprise test system having program flow recording and playback
CN105808266A (zh) * 2016-03-29 2016-07-27 广州华多网络科技有限公司 代码运行方法及装置
CN106201893A (zh) * 2016-07-21 2016-12-07 恒宝股份有限公司 一种Java字节码调试器及调试方法
CN106201745A (zh) * 2016-07-08 2016-12-07 深圳中兴网信科技有限公司 应用程序的远程调试方法、远程调试系统和终端
CN106610854A (zh) * 2015-10-26 2017-05-03 阿里巴巴集团控股有限公司 一种模型更新方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020053043A1 (en) * 2000-10-27 2002-05-02 Friedman George E. Enterprise test system having program flow recording and playback
CN106610854A (zh) * 2015-10-26 2017-05-03 阿里巴巴集团控股有限公司 一种模型更新方法及装置
CN105808266A (zh) * 2016-03-29 2016-07-27 广州华多网络科技有限公司 代码运行方法及装置
CN106201745A (zh) * 2016-07-08 2016-12-07 深圳中兴网信科技有限公司 应用程序的远程调试方法、远程调试系统和终端
CN106201893A (zh) * 2016-07-21 2016-12-07 恒宝股份有限公司 一种Java字节码调试器及调试方法

Similar Documents

Publication Publication Date Title
US8453136B1 (en) Change tracking and incremental synchronization of EDA design and technology data
CN105373469B (zh) 一种基于接口的软件自动化测试系统和方法
CN105260191B (zh) 一种基于配置的测试程序与操作员界面数据交互方法
CN108038013A (zh) 分布式性能测试方法及装置与计算机可读存储介质
CN107729228A (zh) 接口测试方法、装置、存储介质和处理器
CN103246770A (zh) 一种基于活动图模型的系统行为仿真方法
CN105302719A (zh) 一种变异测试方法及装置
CN109189384A (zh) 一种代码的复用方法及装置
CN106033388A (zh) 测试用例库管理方法及系统
CN110297637A (zh) 全平台客户端软件适用的资源文件热重载开发工具及方法
CN103984554B (zh) 软件设计文档的生成方法及装置
CN100407663C (zh) 一种电信智能业务的通用测试系统及方法
CN109542444A (zh) Java应用的监控方法、装置、服务器和存储介质
CN102929853A (zh) 基于Excel表单关联的DCS项目数据生成系统和方法
CN106096159A (zh) 一种云平台下的分布式系统行为仿真分析系统的实现方法
CN109885486A (zh) 系统调试装置及方法
CN109857654A (zh) 一种自动生成测试用例的时序流程图的方法、装置及系统
CN109710513A (zh) 一种用于cbtc系统自动化测试的引擎
CN108694043A (zh) 页面装修方法和系统
CN110135797A (zh) 产品设计模板管理方法、网络终端和具有存储功能的装置
Tikhonov et al. Towards industrial application of model-driven platform-independent PLC programming using UML
CN105930154A (zh) 网络操作系统中建立并使用设备硬件模型的方法及装置
CN116107867A (zh) 数据测试链路确定方法、交互方法、测试数据方法及系统
CN104298517B (zh) 一种软件更新方法及系统
Cisco Overview

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
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20190614