CN110647468A - 对代码进行监控的方法、装置以及存储介质 - Google Patents
对代码进行监控的方法、装置以及存储介质 Download PDFInfo
- Publication number
- CN110647468A CN110647468A CN201910901466.1A CN201910901466A CN110647468A CN 110647468 A CN110647468 A CN 110647468A CN 201910901466 A CN201910901466 A CN 201910901466A CN 110647468 A CN110647468 A CN 110647468A
- Authority
- CN
- China
- Prior art keywords
- class
- code
- monitoring
- loading
- loader
- 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
Links
- 238000012544 monitoring process Methods 0.000 title claims abstract description 220
- 238000000034 method Methods 0.000 title claims abstract description 55
- 230000003068 static effect Effects 0.000 claims description 23
- 238000012545 processing Methods 0.000 claims description 13
- 230000000694 effects Effects 0.000 abstract description 14
- 230000002159 abnormal effect Effects 0.000 abstract description 12
- 230000002411 adverse Effects 0.000 description 9
- 238000009825 accumulation Methods 0.000 description 8
- 230000007774 longterm Effects 0.000 description 8
- 230000008859 change Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000005034 decoration Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 208000003443 Unconsciousness Diseases 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3636—Software debugging by tracing the execution of the program
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3051—Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Computer Hardware Design (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种对代码进行监控的方法、装置以及存储介质。其中,该方法包括:访问预先设置的类库,其中类库包括用于对代码进行监控的代码监控类;加载代码监控类;以及通过加载的代码监控类,对代码进行监控。使得在具有对代码进行监控需要的情况下,系统通过加载相应的代码监控类,就可以对需要监控的代码进行监控,一旦发现代码异常,系统可以提示相关的工作人员对异常代码进行及时的修改。从而,达到了可以通过预先设置的类库中的代码监控类,对代码进行监控的技术效果。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种对代码进行监控的方法、装置以及存储介质。
背景技术
高质量的代码都具备可读性,可维护性和可变更性这三个特征。目前信息化建设的浪潮中,面向对象的大型系统应用越来越广泛,逐渐被应用到教育、交通、医疗、政府等各个行业,在当今社会中发挥的作用也越来越重要,与此同时,系统本身也变得越来越庞大,越来越复杂。
这些大型系统应用的质量由代码的质量直接决定。当复杂而庞大的源代码发生变化时,只依赖开发人员来进行代码质量的监控已变得力不从心,日积月累会给系统带来不良影响,进而导致系统整体代码质量的下降。
针对上述的现有技术中存在的当复杂而庞大的源代码发生变化时,只依赖开发人员来进行代码质量的监控已变得力不从心,日积月累会给系统带来不良影响,进而导致系统整体代码质量下降的技术问题,目前尚未提出有效的解决方案。
发明内容
本公开的实施例提供了一种对代码进行监控的方法、装置以及存储介质,以至少解决现有技术中存在的当复杂而庞大的源代码发生变化时,只依赖开发人员来进行代码质量的监控已变得力不从心,日积月累会给系统带来不良影响,进而导致系统整体代码质量的下降的技术问题。
根据本公开实施例的一个方面,提供了一种对代码进行监控的方法,包括:访问预先设置的类库,其中类库包括用于对代码进行监控的代码监控类;加载代码监控类;以及通过加载的代码监控类,对代码进行监控。
根据本公开实施例的另一个方面,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时由处理器执行以上任意一项所述的方法。
根据本公开实施例的另一个方面,还提供了一种对代码进行监控的装置,包括:访问模块,用于访问预先设置的类库,其中类库包括用于对代码进行监控的代码监控类;加载模块,用于加载代码监控类;以及监控模块,用于通过加载的代码监控类,对代码进行监控。
根据本公开实施例的另一个方面,还提供了一种对代码进行监控的装置,包括:处理器;以及存储器,与处理器连接,用于为处理器提供处理以下处理步骤的指令:访问预先设置的类库,其中类库包括用于对代码进行监控的代码监控类;加载代码监控类;以及通过加载的代码监控类,对代码进行监控。
在本公开实施例中,首先访问预先设置的类库,然后加载与代码对应的代码监控类,并通过加载的代码监控类,对代码进行监控。使得在具有对代码进行监控需要的情况下,系统通过加载相应的代码监控类,就可以对需要监控的代码进行监控,一旦发现代码异常,系统可以提示相关的工作人员对异常代码进行及时的修改。从而,达到了可以通过预先设置的类库中的代码监控类,对代码进行监控的技术效果。进而解决了现有技术中存在的当复杂而庞大的源代码发生变化时,只依赖开发人员来进行代码质量的监控已变得力不从心,日积月累会给系统带来不良影响,进而导致系统整体代码质量下降的技术问题。
附图说明
此处所说明的附图用来提供对本公开的进一步理解,构成本申请的一部分,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。在附图中:
图1是用于实现根据本公开实施例1所述的方法的计算设备的硬件结构框图;
图2是根据本公开实施例1所述的对代码进行监控的示意图;
图3是根据本公开实施例1的第一个方面所述的对代码进行监控的方法的流程示意图;
图4是根据本公开实施例2所述的对代码进行监控的装置的示意图;以及
图5是根据本公开实施例3所述的对代码进行监控的装置的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本公开的技术方案,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本公开一部分的实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本公开保护的范围。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
根据本实施例,还提供了一种对代码进行监控的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本实施例所提供的方法实施例可以在移动终端、计算机终端、服务器或者类似的计算设备中执行。图1示出了一种用于实现对代码进行监控的方法的计算设备的硬件结构框图。如图1所示,计算设备可以包括一个或多个处理器(处理器可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器、以及用于通信功能的传输装置。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算设备还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
应当注意到的是上述一个或多个处理器和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算设备中的其他元件中的任意一个内。如本公开实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
存储器可用于存储应用软件的软件程序以及模块,如本公开实施例中的对代码进行监控的方法对应的程序指令/数据存储装置,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用程序的对代码进行监控的方法。存储器可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至计算设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算设备的通信供应商提供的无线网络。在一个实例中,传输装置包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与计算设备的用户界面进行交互。
此处需要说明的是,在一些可选实施例中,上述图1所示的计算设备可以包括硬件元件(包括电路)、软件元件(包括存储在计算机可读介质上的计算机代码)、或硬件元件和软件元件两者的结合。应当指出的是,图1仅为特定具体实例的一个实例,并且旨在示出可存在于上述计算设备中的部件的类型。
图2是根据本实施例所述的对代码进行监控的系统的示意图。参照图2所示,系统中设置一个类库和一个代码库,其中该类库包括多个对代码库中的代码(代码1~代码n)进行监控的代码监控类(代码监控类1~代码监控类n)。
在上述运行环境下,根据本实施例的第一个方面,提供了一种对代码进行监控的方法,该方法由图2中所示的代码监控类实现。图3示出了该方法的流程示意图,参考图3所示,该方法包括:
S302:访问预先设置的类库,其中类库包括用于对代码进行监控的代码监控类;
S304:加载代码监控类;以及
S306:通过加载的代码监控类,对代码进行监控。
正如前面背景技术中所述的,现有的技术中存在的当复杂而庞大的源代码发生变化时,只依赖开发人员来进行代码质量的监控已变得力不从心,日积月累会给系统带来不良影响,进而导致系统整体代码质量的下降。
针对上述背景技术中存在的问题,本实施例提供的一种对代码进行监控的方法。具体地,参考图2所示,系统在具有对代码(例如,代码1)进行监控需求的情况下,首先访问预先设置的类库,其中类库包括用于对代码进行监控的代码监控类。然后加载与代码1对应的代码监控类(即,代码监控类1),并通过加载的代码监控类1,对代码1进行监控。使得在具有对代码进行监控需要的情况下,系统通过加载相应的代码监控类,就可以对需要监控的代码进行监控,一旦发现代码异常,系统可以提示相关的工作人员对异常代码进行及时的修改。从而,达到了可以通过预先设置的类库中的代码监控类,对代码进行监控的技术效果。进而解决了现有技术中存在的当复杂而庞大的源代码发生变化时,只依赖开发人员来进行代码质量的监控已变得力不从心,日积月累会给系统带来不良影响,进而导致系统整体代码质量下降的技术问题。
可选地,加载代码监控类的操作,包括:根据代码监控类,确定用于加载代码监控类的第一类加载器;确定作为第一类加载器的父类的第二类加载器;以及通过第二类加载器,加载代码监控类,对代码进行监控。
具体地,在加载代码监控类的过程中,需要确定用于加载代码监控类的第一类加载器。此时,第一类加载器会收到代码监控类的加载请求,由于第一类加载器不会自己加载代码监控类,而是把这个加载请求委派给父类加载器(即,第二类加载器)去完成。因此,在确定第一加载器之后,还需要确定第一类加载器的第二类加载器。然后,通过第一加载器的父类加载器(第二类加载器),加载代码监控类,对代码进行监控。通过这种方式,能够有效的使用代码监控类对代码进行监控。
可选地,加载代码监控类的操作,还包括:在第二类加载器不能加载代码监控类的情况下,通过第一类加载器加载代码监控类。
具体地,加载代码监控类时,可能会发生第一类加载器的父类加载器(第二类加载器)无法加载代码监控类的情况。此时,需要通过第一类加载器加载代码监控类。因此,即使无法通过第一类加载器的父类加载器(第二类加载器)无法加载代码监控类的情况下,还可以通过第一类加载器加载代码监控类,从而保障了能够成功加载到所需要的代码监控类。
可选地,加载代码监控类的操作,还包括:获取代码监控类的类文件的二进制字节流;将类文件中的静态数据结构转化为方法区内的数据结构;以及生成代码监控类的类对象,用于访问方法区的数据结构的入口。
具体地,加载代码监控类的过程首先需要获取代码监控类的类文件的二进制字节流。然后将类文件中的静态数据结构转化为方法区的数据结构,最后生成一个代码监控类的类对象,用于访问方法区的数据结构的入口。通过这种方式,保障了能够成功加载代码监控类,进而有效的使用所加载的代码监控类对代码进行监控。
可选地,通过加载的代码监控类,对代码进行监控的操作,包括:针对代码监控类中的静态变量分配存储空间;以及对静态变量进行初始化,并且对代码进行监控。
具体地,在加载代码监控类的过程中,还需要针对代码监控类中的静态变量分配存储空间,即链接代码监控类。在完成链接之后,对该静态变量进行初始化。通过这种方式,保障了能够成功加载代码监控类,进而有效的使用所加载的代码监控类对代码进行监控。
可选地,针对代码监控类中的静态变量分配存储空间的操作,还包括:校验代码监控类生成的字节码是否正确;将存储空间分配给静态变量;以及将与代码监控类相关的常量池内的符号引用替换为直接引用。
具体地,针对代码监控类中的静态变量分配存储空间(链接代码监控类)的过程,可以包括:首先需要进行检验操作,即检验代码监控类生成的字节码是否正确。在完成校验操作之后,进行准备操作,即将存储空间分配给静态变量。最后进行解析操作,即将与代码监控类相关的常量池内的符号引用替换为直接引用。从而,保障了能够成功链接代码监控类。
此外,参考图1所示,根据本实施例的第二个方面,提供了一种存储介质。存储介质包括存储的程序,其中,在所述程序运行时由处理器执行以上任意一项所述的方法。
从而根据本实施例,首先访问预先设置的类库,然后加载与代码对应的代码监控类,并通过加载的代码监控类,对代码进行监控。使得在具有对代码进行监控需要的情况下,系统通过加载相应的代码监控类,就可以对需要监控的代码进行监控,一旦发现代码异常,系统可以提示相关的工作人员对异常代码及时进行修改。从而,达到了可以通过预先设置的类库中的代码监控类,对代码进行监控的技术效果。进而解决了现有技术中存在的当复杂而庞大的源代码发生变化时,只依赖开发人员来进行代码质量的监控已变得力不从心,日积月累会给系统带来不良影响,进而导致系统整体代码质量下降的技术问题。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例2
图4示出了根据本实施例所述的对代码进行监控的装置400,该装置400与根据实施例1的第一个方面所述的方法相对应。参考图4所示,该装置400包括:访问模块410,用于访问预先设置的类库,其中类库包括用于对代码进行监控的代码监控类;加载模块420,用于加载代码监控类;以及监控模块430,用于通过加载的代码监控类,对代码进行监控。
可选地,加载模块420,包括:第一确定子模块,用于根据代码监控类,确定用于加载代码监控类的第一类加载器;第二确定子模块,用于确定作为第一类加载器的父类的第二类加载器;以及第一加载子模块,用于通过第二类加载器,加载代码监控类,对代码进行监控。
可选地,加载模块420,还包括:第二加载子模块,用于在第二类加载器不能加载代码监控类的情况下,通过第一类加载器加载代码监控类。
可选地,加载模块420,还包括:获取子模块,用于获取代码监控类的类文件的二进制字节流;转化子模块,用于将类文件中的静态数据结构转化为方法区内的数据结构;以及生成子模块,用于生成代码监控类的类对象,用于访问方法区的数据结构的入口。
可选地,监控模块430,包括:分配子模块,用于针对代码监控类中的静态变量分配存储空间;以及初始化子模块,用于对静态变量进行初始化,并且对代码进行监控。
可选地,分配子模块,还包括:检验单元,用于校验代码监控类生成的字节码是否正确;分配单元,用于将存储空间分配给静态变量;以及替换单元,用于将与代码监控类相关的常量池内的符号引用替换为直接引用。
从而根据本实施例,通过对代码进行监控的装置400,首先访问预先设置的类库,然后加载与代码对应的代码监控类,并通过加载的代码监控类,对代码进行监控。使得在具有对代码进行监控需要的情况下,装置400通过加载相应的代码监控类,就可以对需要监控的代码进行监控,一旦发现代码异常,装置400可以提示相关的工作人员对异常代码进行及时的修改。从而,达到了可以通过预先设置的类库中的代码监控类,对代码进行监控的技术效果。进而解决了现有技术中存在的当复杂而庞大的源代码发生变化时,只依赖开发人员来进行代码质量的监控已变得力不从心,日积月累会给系统带来不良影响,进而导致系统整体代码质量下降的技术问题。
实施例3
图5示出了根据本实施例所述的代码进行监控的装置500,该装置500与根据实施例1的第一个方面所述的方法相对应。参考图5所示,该装置500包括:处理器510;以及存储器520,与处理器510连接,用于为处理器510提供处理以下处理步骤的指令:访问预先设置的类库,其中类库包括用于对代码进行监控的代码监控类;加载代码监控类;以及通过加载的代码监控类,对代码进行监控。
可选地,加载代码监控类的操作,包括:根据代码监控类,确定用于加载代码监控类的第一类加载器;确定作为第一类加载器的父类的第二类加载器;以及通过第二类加载器,加载代码监控类,对代码进行监控。
可选地,加载代码监控类的操作,还包括:在第二类加载器不能加载代码监控类的情况下,通过第一类加载器加载代码监控类。
可选地,加载代码监控类的操作,还包括:获取代码监控类的类文件的二进制字节流;将类文件中的静态数据结构转化为方法区内的数据结构;以及生成代码监控类的类对象,用于访问方法区的数据结构的入口。
可选地,通过加载的代码监控类,对代码进行监控的操作,包括:针对代码监控类中的静态变量分配存储空间;以及对静态变量进行初始化,并且对代码进行监控。
可选地,针对代码监控类中的静态变量分配存储空间的操作,还包括:校验代码监控类生成的字节码是否正确;将存储空间分配给静态变量;以及将与代码监控类相关的常量池内的符号引用替换为直接引用。
从而根据本实施例,通过对代码进行监控的装置500,首先访问预先设置的类库,然后加载与代码对应的代码监控类,并通过加载的代码监控类,对代码进行监控。使得在具有对代码进行监控需要的情况下,装置500通过加载相应的代码监控类,就可以对需要监控的代码进行监控,一旦发现代码异常,装置500可以提示相关的工作人员对异常代码进行及时的修改。从而,达到了可以通过预先设置的类库中的代码监控类,对代码进行监控的技术效果。进而解决了现有技术中存在的当复杂而庞大的源代码发生变化时,只依赖开发人员来进行代码质量的监控已变得力不从心,日积月累会给系统带来不良影响,进而导致系统整体代码质量下降的技术问题。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种对代码进行监控的方法,其特征在于,包括:
访问预先设置的类库,其中所述类库包括用于对代码进行监控的代码监控类;
加载所述代码监控类;以及
通过加载的所述代码监控类,对所述代码进行监控。
2.根据权利要求1所述的方法,其特征在于,加载所述代码监控类的操作,包括:
根据所述代码监控类,确定用于加载所述代码监控类的第一类加载器;
确定作为所述第一类加载器的父类的第二类加载器;以及
通过所述第二类加载器,加载所述代码监控类,对所述代码进行监控。
3.根据权利要求2所述的方法,其特征在于,加载所述代码监控类的操作,还包括:
在所述第二类加载器不能加载所述代码监控类的情况下,通过所述第一类加载器加载所述代码监控类。
4.根据权利要求2所述的方法,其特征在于,加载所述代码监控类的操作,还包括:
获取所述代码监控类的类文件的二进制字节流;
将所述类文件中的静态数据结构转化为方法区内的数据结构;以及
生成所述代码监控类的类对象,用于访问所述方法区的数据结构的入口。
5.根据权利要求1所述的方法,其特征在于,通过加载的所述代码监控类,对所述代码进行监控的操作,包括:
针对所述代码监控类中的静态变量分配存储空间;以及
对所述静态变量进行初始化,并且对所述代码进行监控。
6.根据权利要求5所述的方法,其特征在于,针对所述代码监控类中的静态变量分配存储空间的操作,还包括:
校验所述代码监控类生成的字节码是否正确;
将所述存储空间分配给所述静态变量;以及
将与所述代码监控类相关的常量池内的符号引用替换为直接引用。
7.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时由处理器执行权利要求1至6中任意一项所述的方法。
8.一种对代码进行监控的装置,其特征在于,包括:
访问模块,用于访问预先设置的类库,其中所述类库包括用于对代码进行监控的代码监控类;
加载模块,用于加载所述代码监控类;以及
监控模块,用于通过加载的所述代码监控类,对所述代码进行监控。
9.根据权利要求8所述的装置,其特征在于,所述加载模块,包括:
第一确定子模块,用于根据所述代码监控类,确定用于加载所述代码监控类的第一类加载器;
第二确定子模块,用于确定作为所述第一类加载器的父类的第二类加载器;以及
第一加载子模块,用于通过所述第二类加载器,加载所述代码监控类,对所述代码进行监控。
10.一种对代码进行监控的装置,其特征在于,包括:
处理器;以及
存储器,与所述处理器连接,用于为所述处理器提供处理以下处理步骤的指令:
访问预先设置的类库,其中所述类库包括用于对代码进行监控的代码监控类;
加载所述代码监控类;以及
通过加载的所述代码监控类,对所述代码进行监控。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910901466.1A CN110647468A (zh) | 2019-09-23 | 2019-09-23 | 对代码进行监控的方法、装置以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910901466.1A CN110647468A (zh) | 2019-09-23 | 2019-09-23 | 对代码进行监控的方法、装置以及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110647468A true CN110647468A (zh) | 2020-01-03 |
Family
ID=68992465
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910901466.1A Pending CN110647468A (zh) | 2019-09-23 | 2019-09-23 | 对代码进行监控的方法、装置以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110647468A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102831043A (zh) * | 2011-06-17 | 2012-12-19 | 阿里巴巴集团控股有限公司 | 应用程序监控方法和装置 |
US20150278515A1 (en) * | 2014-03-27 | 2015-10-01 | International Business Machines Corporation | Monitoring an application in a process virtual machine |
CN106897609A (zh) * | 2015-12-17 | 2017-06-27 | 北京奇虎科技有限公司 | 一种对动态加载的应用程序进行监控的方法及装置 |
CN109471768A (zh) * | 2017-09-08 | 2019-03-15 | 阿里巴巴集团控股有限公司 | 业务问题的监控方法、装置以及电子设备 |
CN109710299A (zh) * | 2018-12-14 | 2019-05-03 | 平安普惠企业管理有限公司 | 一种开源类库监控方法、装置、设备及计算机存储介质 |
-
2019
- 2019-09-23 CN CN201910901466.1A patent/CN110647468A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102831043A (zh) * | 2011-06-17 | 2012-12-19 | 阿里巴巴集团控股有限公司 | 应用程序监控方法和装置 |
US20150278515A1 (en) * | 2014-03-27 | 2015-10-01 | International Business Machines Corporation | Monitoring an application in a process virtual machine |
CN106897609A (zh) * | 2015-12-17 | 2017-06-27 | 北京奇虎科技有限公司 | 一种对动态加载的应用程序进行监控的方法及装置 |
CN109471768A (zh) * | 2017-09-08 | 2019-03-15 | 阿里巴巴集团控股有限公司 | 业务问题的监控方法、装置以及电子设备 |
CN109710299A (zh) * | 2018-12-14 | 2019-05-03 | 平安普惠企业管理有限公司 | 一种开源类库监控方法、装置、设备及计算机存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110688146A (zh) | 对监控系统进行动态配置的方法、装置以及存储介质 | |
CN110989487B (zh) | 工业服务器的plc初始化方法、装置及可读存储介质 | |
CN113296871A (zh) | 容器组实例的处理方法、设备及系统 | |
WO2017166448A1 (zh) | 内核漏洞修复方法和装置 | |
CN114691390A (zh) | 用户态程序的处理方法和装置、存储介质及处理器 | |
CN111782210A (zh) | 页面管理方法、装置、电子设备及计算机可读介质 | |
CN113885971A (zh) | 一种基于自适应平台系统的状态管理方法及装置 | |
CN108255549B (zh) | 服务器程序可视化控制方法和装置 | |
CN109697166B (zh) | 一种测试数据准备方法及相关装置 | |
CN110647468A (zh) | 对代码进行监控的方法、装置以及存储介质 | |
CN110597717A (zh) | 代码测试方法、装置以及存储介质 | |
CN115268969A (zh) | 安卓系统升级方法及装置、终端设备 | |
CN113709188B (zh) | 会话控制信息处理方法、装置、系统和存储介质 | |
CN114296939A (zh) | 应用程序的处理方法、装置、存储介质、处理器及设备 | |
CN110609781A (zh) | 接口测试方法、装置以及存储介质 | |
CN112306843A (zh) | 一种测试方法、装置以及存储介质 | |
CN110609701A (zh) | 提供服务的方法、装置和存储介质 | |
CN107402896B (zh) | 计算设备间桥接的方法、装置及系统 | |
CN111427550A (zh) | 一种对象创建方法、终端装置及存储介质 | |
CN110633188A (zh) | 暂停对应用程序的代码进行拦截和监控的方法以及装置 | |
CN110597574A (zh) | 账户的匹配方法、装置以及存储介质 | |
CN114594999A (zh) | 发布文件的方法、装置、存储介质及系统 | |
CN110858201A (zh) | 数据处理方法及系统、处理器、存储介质 | |
CN112328139B (zh) | 显示方法、装置以及存储介质 | |
CN113055250B (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200103 |
|
RJ01 | Rejection of invention patent application after publication |