CN110032426A - A kind of method that can be debugged in real time online, system and storage medium - Google Patents

A kind of method that can be debugged in real time online, system and storage medium Download PDF

Info

Publication number
CN110032426A
CN110032426A CN201910284356.5A CN201910284356A CN110032426A CN 110032426 A CN110032426 A CN 110032426A CN 201910284356 A CN201910284356 A CN 201910284356A CN 110032426 A CN110032426 A CN 110032426A
Authority
CN
China
Prior art keywords
virtual machine
debugging
debug
event
user
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
CN201910284356.5A
Other languages
Chinese (zh)
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.)
Zhejiang Xunmeng Technology Co Ltd
Original Assignee
Zhejiang Xunmeng Technology 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 Zhejiang Xunmeng Technology Co Ltd filed Critical Zhejiang Xunmeng Technology Co Ltd
Priority to CN201910284356.5A priority Critical patent/CN110032426A/en
Publication of CN110032426A publication Critical patent/CN110032426A/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/541Client-server

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Method, system and the storage medium that one kind of the present invention can debug in real time online.A kind of method that can be debugged in real time online realizes that the debugging system uses B/S framework based on debugging system, method includes the following steps: user's interaction end and server-side are established and communicated to connect;User's interaction end obtains the debugging instruction comprising needing debugging code information that tuner provides, and is subsequently sent to server-side;The source code segment that server-side selected target machine and needs are debugged, establishes connection with the virtual machine of selected target machine;When the source code segment for needing to debug on target virtual machine executes, virtual machine can be in operation by triggering a breakpoint event when specified debugging event, and event is pushed to debugger;Debugger according to tuner's instruction execution single-step debug, until meet it is preset disconnect condition after, disconnect the connection of target virtual machine.Environment on debugging breakpoints line may be implemented in the present invention, the stacked data of thread on real time inspection line.

Description

A kind of method that can be debugged in real time online, system and storage medium
Technical field
The present invention relates to software debugging fields, more particularly to a kind of method that can be debugged in real time online, system and storage to be situated between Matter.
Background technique
The execution of each step of program be it is controllable, can be executed by single step, setting breakpoint etc. controls the fortune of program Row rhythm, and in each pause, the occurrence of the currently active variable can be checked, so as to carry out failure row to program It looks into.
Debugging tool is provided in the prior art to debug program, debugging tool generally uses in the exploitation joint debugging stage, So as to some bug that the completion code stage can't find, but the debugging tool carried in developing instrument at present, such as Eclipse, IDEA, Jbuilder etc. are localization debugging tool, can only generally be debugged in exploitation environment.Pass through exploitation It can be only done some debugging efforts in local development process when IDE tool major part, and part is inside test environment Some intranet environments debugging when bug is repaired, environment is had no idea direct Debug by developing instrument on line.
The remote complicated scene that can be simulated with test environment of actual motion scene on line, when exploitation test job is completed simultaneously After online implementing, system problem, the efficiency of positioning system problem can only be just judged by log behavior, data-base recording etc. It is low.
The prior art also provides the tool-Btrace that debugging can be monitored to program on line, its working principle is that logical Instrument+asm is crossed to carry out dynamic enhancing to the class class in the java program being currently running, is dynamically answered to target With the bytecode injection tracking code of program.But Btrace has the following problems: 1, the bytecode injected after exiting can be always Retain, until restarting, undeservedly may cause JVM using BTrace and collapse;2, do not have interface, can only log can check; 3, it can not do and inject for specific particular request, the section AOP is global.
Summary of the invention
To solve the above-mentioned problems, the purpose of the present invention is to provide the method that one kind can debug in real time online, this method Debugger can be enable to understand the state of target virtual machine in time, so as to realize environment on debugging breakpoints line, real time inspection The stacked data of thread on line allows tuner faster more specific can understand the actual cause to go wrong on line.
In order to achieve the above purpose, the present invention provides the method that one kind can debug in real time online, this method is based on adjusting Test system realizes that the debugging system uses B/S framework, including user's interaction end, server-side and mesh equipped with web browser Mark machine, the virtual machine on-line operation target program of target machine;
Method includes the following steps:
User's interaction end and server-side, which are established, to be communicated to connect;
User's interaction end obtains the debugging instruction comprising needing debugging code information that tuner provides, and is subsequently sent to service End;
The debugging instruction selected target machine and the source code segment for needing to debug that server-side is sent according to user's interaction end, with The virtual machine of selected target machine establishes connection, obtains the control to virtual machine;
Debugger is set according to the breakpoint setup information that tuner provides, then will want received debugging event and be sent to The virtual machine of target machine, it is described to want received debugging event according to breakpoint setup information determination;
When target virtual machine, which receives the source code segment that external request triggering needs to debug, to be executed, virtual machine can run By triggering a breakpoint event when specified debugging event, and event is pushed to debugger;
The event from target virtual machine of monitoring once listens to breakpoint event and meets current debugging condition, and front is worked as in hang-up Journey, debugger obtains the data in thread stack, and returns to user's interaction end, for rendering interface, so that tuner is clear Understand all data in current thread;
Debugger can create a single-step debug monitor simultaneously, the single-step debug event issued for monitoring tuner; And original breakpoint event monitor is emptied, other requests on clearance target virtual machine code snippet prevent business on line to be blocked Plug;
Debugger according to tuner's instruction execution single-step debug, until meet it is preset disconnect condition after, disconnect mesh Mark the connection of virtual machine;
Wherein, debugger includes two important objects: breakpoint event access monitor and virtual machine connection manager, breakpoint Event access monitor monitors the breakpoint event for carrying out self virtualizing machine;Virtual machine connection manager establishes virtual machine connection and to connection It is managed.Dummy connector specifically includes that creation connection to the management of connection, follow-up uid, sid acquirement connection, checks target Whether the connection of machine is being debugged by other tuners.
Wherein, user's interaction end provides user interface, for providing debugging instruction input interface, breakpoint event setting Information operating area, selected source code segment and debugging result display area etc., wherein each operating area and display area can It is shared with existing, for debugging result display area, can show different information in the same area by switching realization.
User's interaction end is communicated with server-side, and the virtual machine of target machine is arranged to adjustable state, server-side and mesh The virtual machine communication of machine is marked, user's interaction end obtains by virtual machine on the direct line of server-side transfer and controls some area The execution step and implementation procedure of block code quickly check problem in position line;Using browser as the operation interface of tuner, Debugging process is graphical, promotes the efficiency solved the problems, such as.And pass through single-step debug monitor and breakpoint event access monitor Cooperation it is real now into debugging when let pass and request on other lines, be performed normally other requests on line can.
Preferably, user's interaction end and server-side, which are established, communicates to connect, comprising:
The connection request for currently logining user's proposition is authenticated based on the auth method of token, if certification is lost It loses, the channel between the short chain active user interaction end of server-side active and server-side.
System realizes that the safety of system can be ensured by carrying out further certification to tuner's identity based on B/S framework.
Preferably, user's interaction end and server-side are based on WebSocket agreement and communicate, user's interaction end with Server-side establish communication connection the step of include:
Channel is initialized, after the browser of user's interaction end issues connection request, channel link success;
Handshake authentication operation is carried out after the successful connection of channel, the authority of certification is currently logined user and signed and issued when logging in Token, if authentification failure, the short chain current channel of server-side active;
After certification passes through, the event message for the specified type that user's interaction end to be received such as server-side issues.
WebSocket can provide full-duplex bi-directional communication in an independent lasting connection, and Websocket only needs One time HTTP shakes hands, and establishes connection after shaking hands successfully, communication efficiency can be improved using WebSocket agreement, and can be in one's hands The hand stage carries out tuner's authentication.
Preferably, the debugging instruction selected target machine and need to debug that server-side is sent according to user's interaction end Source code segment, the debugging instruction includes the code file name for needing the entry name debugged and needs to debug, comprising:
The project for needing to debug is set, the IP of machine where project and debugging port;
The IP of machine where being identified project according to specified project, selects to the target machine in requisition for debugging;
Corresponding source code segment on line is transferred from the virtual machine of target machine according to code file name and returns to user's friendship Mutually end.
Setting needs the project debugged before entering debugging, including the ip of machine where setting project and debugging end Mouthful, which can realize that specific set content provides in configuration file by loading configuration file.
According to the above method, tuner, which only needs to input in user's interaction end, needs the entry name debugged that can position project institute Machine, according to tuner input name of code can return to corresponding source code segment in the respective interface of user's interaction end It has been shown that, it is convenient for the user to operate.
Preferably, the virtual machine with selected target machine establishes connection, obtains the control to virtual machine, Include:
Virtual machine manager is obtained after establishing connection;
Management is established to ensure that same tuner's synchronization can only call a target void to the connection result of virtual machine Quasi- machine, same target virtual machine synchronization can only be debugged by a tuner.
Wherein, virtual machine manager is the existing virtual suite of system installation, can generally be used VirtualMachineManager。
Preferably, the breakpoint setup information setting debugger provided according to tuner, comprising:
Server-side calculates the line number of the source code segment adjustable of current selected and returns to user's interaction end, then waits Breakpoint event from user's interaction end, breakpoint event include breakpoint setup information;
After server-side receives breakpoint event, unique debugger is distributed for current tuner;
The actual conditions for including by breakpoint setup information are arranged to breakpoint event access monitor.
Preferably, the virtual machine received debugging event will be wanted be sent to target machine, it is specific real Now include: the specified interface that is provided by debugger the class file name debugged of needs specified in breakpoint setup information and specifically Breakpoint line number notifies target virtual machine.
Preferably, judgement listens to whether breakpoint event meets filter condition, comprising:
Debugger obtain come self virtualizing machine breakpoint event after, according to the filtered fields for including in breakpoint setup information whether Judge whether to need to filter brush choosing for sky;
If filtered fields are sky, directly hang up current thread and enter debugging;
If filtered fields are not sky, the variable on all thread stacks is traversed, with the filtering for including in breakpoint setup information Field value and the entitled filter condition of filtered fields judge whether clearance current thread, when filtering field name matches and mistake with variable name When filter field value is matched with variate-value, hangs up current thread and enter debugging.
Since debugging meeting hang lives thread, while stack data on line can be extracted, influence the circulation of function.Entering debugging It is preceding to judge whether breakpoint event meets filter condition, breakpoint can be done for some request, other all requests of letting pass guarantee line Top broken-point debugging is Online Debug to effective thread, and there will not be influence in performance.It is preferred that adopting needle with the aforedescribed process Be that filter condition realizes accurate breakpoint to parameter variable values, only when filtering field name is matched with variable name and filtered fields value and Just enter debugging when variate-value matches.
The present invention also provides the system that can debug in real time online of one kind, which uses B/S framework, including equipped with User's interaction end, server-side and the target machine of web browser, the virtual machine on-line operation target program of target machine, this is System executes the method that as above described in any item one kind can debug in real time online.
Method in the present invention realizes that therefore, the present invention also provides a kind of storage medium, storages by computer program Computer program is stored on medium, program is executed by processor realization, and as above described in any item one kind can debug in real time online Method.
The method have the advantages that: user's interaction end is communicated with server-side, and the virtual machine of target machine is set It is set to adjustable state, server-side is communicated with the virtual machine of target machine, and user's interaction end passes through the direct line of server-side transfer Upper virtual machine obtains and controls the execution step and implementation procedure of some block code, quickly checks problem in position line;With clear Look at operation interface of the device as tuner, debugging process is graphical, promotes the efficiency solved the problems, such as.
The system and storage medium that above-mentioned one kind can debug in real time online, due to executing the above method, it is same have with Upper advantage.
Detailed description of the invention
Fig. 1 is the architecture diagram of debugging system in the present invention.
Fig. 2 is the interactive interface that user's interaction end provides in the present invention.
Fig. 3 is that the specific data of variable in selected code region show result.
Fig. 4 is the overall flow of debugging services in the present invention.
Fig. 5 is to establish the process that debugger is connect with virtual machine in the present invention.
Fig. 6 is setting breakpoint and single-step debug process in the present invention.
Specific embodiment
For the sake of clarity, illustrate the definition for the specific word or phrase that the present invention uses first.
Online Debug System, debugging system on line;
JPDA (Java Platform Debugger Architecture) is the contracting of Java platform debugging architecture Write, JPDA is mainly made of three parts: Java Virtual Machine tool interface (JVMTI), Java debug wire protocol JDWP (Java Debug Wire Protocol) and Java debugging interface (JDI);
Java debugs wire protocol (JDWP), communicates interaction protocol, defines transmitting between debugger and debugged program and disappears The format of breath;
JDI (Java Debug Interface), is interface top in tri- layers of module of JPDA, defines debugger (Debugger) some debugging interfaces required for;
WebSocket is a kind of long interconnection technique that can be created by Js, is generally used for browser end, is different from The place of HTTP is that data not only can be sent to server-side by browser, can also be by server active push to browsing Device.Essence is a kind of application layer protocol, and the full-duplex bi-directional communication persistently connected may be implemented;
Target virtual machine (target vm), debugged virtual machine run the program it is desirable that debugging thereon;Base In the debugging system of JDWP protocol realization, target virtual machine is loaded with Agent JDWP on startup to have debugging function Energy;
VirtualMachineManager, virtual machine connection manager are that the VirtualMachine class based on JDI is realized Tool-class, for create target machine connection, inquire some uid or whether target machine ip debugger state, target machine be debugged Fair state.
Debugger (debugger) sends commands to obtain shape when target vm is run to running target vm The execution of state and control program.
BreakpointEvent, breakpoint event are the included tool-class of JDI, Jie of debugger and the transmission of target machine event Matter.
DebuggerMap, for storing the different debugging connection of multiple tuners, each connection is also referred to as in the text here One debugger.
The preferred embodiment of this patent is described in further detail with reference to the accompanying drawing.
A kind of method that can be debugged in real time online is present embodiments provided, this method is realized based on debugging system, this implementation The adjustment method of example is executed in JAVA platform.As shown in Figure 1, debugging system uses B/S framework, including equipped with web browser User's interaction end, server-side and target machine, the virtual machine on-line operation target program of target machine.
It needs to do some initialization operations in advance before entering debugging, comprising:
The project for needing to debug is set, the ip comprising machine where project and debugging port;
The starting of destination service container increases Agent JDWP, by increasing order line-Xdebug- on starting script Xnoagent-Djava.compiler=NONE-Xrunjdwp:transport=dt_socke t, server=y, suspend =n, address=$ { port }, so that destination service has adjustable ability;Destination service container in the present embodiment Refer to target virtual machine;
Project source code is placed on the designated position of Debug service arrangement machine.Debug service arrangement machine herein is just It is that server for disposing debugger, Communications service.
User's interaction end provides browser and server-side establishes connection, using browser as the operation interface of tuner, originally The interactive interface that user's interaction end provides in embodiment is as shown in Fig. 2, include target machine selection region, operating space and code area Domain.The address ip of machine is defeated where target machine selection region provides the input frame for needing the project name of selection and the project Enter frame.First setting needs the project debugged before entering debugging, ip and debugging port including machine where project.Right Answer input frame input need the entry name debugged can in the ip of machine where the corresponding input frame display project in the address machine ip, It is also possible to input the project run on the machine in column behind the address ip, provides project when running multiple projects on the machine List.The input frame can be using text input or drop-down selection input.
Code region provides code display window to show the line number of selected source code snippet and code, and can be straight It connects and adds breakpoint before the line number of the area code, and mark the code being currently executing.Code region can be by browsing Device loads eclipse or dracula plug-in unit and realizes.And choosing code region variable to carry out formulation operation to it can show currently The specific data of variable show that result is as shown in Figure 3.In the present embodiment, limit double click code region show variable with Show the specific data of current variable.
Operating area is provided for inputting the input frame and filtered fields input frame that need the code file name debugged, mistake Filtering field includes variable name and variate-value.Operating area also provides the region as the result is shown for showing the debugging result returned, In the present embodiment Three models: print, scope and watch can be shown in region as the result is shown;It is shown under print mode every The specific log of one step movement;The real time datas such as variable on current thread stack are shown under scope mode;It is used under watch mode Active observation is done to the variable or thread of special attention, multiple variables can be added simultaneously.
User's interaction end and server-side, which are established, to be communicated to connect, and debugging user is distributed unitedly by administrator, tuner log at Capable of emitting connection request after function.The login mode of debugging user can be using user name password login, can also pass through client Two-dimensional code scanning certification is held to log in.
In order to ensure the user of request connection has permission, guarantee system safety, using the authentication side based on token Method authenticates the connection request for currently logining user's proposition, if authentification failure, server-side actively short chain active user interaction Channel between end and server-side prevents the user for not having debugging permission from transferring project source code.
In the present embodiment, user's interaction end is based on WebSocket agreement with server-side and communicates, user's interaction end and clothes The step of communicating to connect is established at business end
Channel is initialized, after the browser of user's interaction end issues connection request, channel link success;
Handshake authentication operation is carried out after the successful connection of channel, the authority of certification is currently logined user and signed and issued when logging in Token, if authentification failure, the short chain current channel of server-side active;
After certification passes through, the event message for the specified type that user's interaction end to be received such as server-side issues.
In embodiment, the event message for the specified type that user's interaction end issues includes two kinds, and one is users Connection event is closed, is also plain text class instruction message;Close event generally can should user actively close browser, or Person's network disconnects and occurs;Instruction message can be divided into connecting virtual machine message, breakpoint setup message, single-step debug message, check Variable data message, document breaking point line number message.
WebSocket can provide full-duplex bi-directional communication in an independent lasting connection, and Websocket only needs One time HTTP shakes hands, and establishes connection after shaking hands successfully, communication efficiency can be improved using WebSocket agreement, and can be in one's hands The hand stage carries out tuner's authentication.
User's interaction end and server-side can enter debugging services after establishing connection, debugging services the following steps are included:
User's interaction end obtains the debugging instruction comprising needing debugging code information that tuner provides, and is subsequently sent to service End;
The debugging instruction selected target machine and the source code segment for needing to debug that server-side is sent according to user's interaction end, with The virtual machine of selected target machine establishes connection, obtains the control to virtual machine;
Debugger is set according to the breakpoint setup information that tuner provides, then will want received debugging event and be sent to The virtual machine of target machine, it is described to want received debugging event according to breakpoint setup information determination;
When target virtual machine, which receives the source code segment that external request triggering needs to debug, to be executed, virtual machine can run By triggering a breakpoint event when specified debugging event, and event is pushed to debugger;
The event from target virtual machine of monitoring is hung up current once listening to breakpoint event meets current debugging condition Thread, and return to thread stack data and give user's interaction end;
Debugger according to tuner's instruction execution single-step debug, until meet it is preset disconnect condition after, disconnect mesh Mark the connection of virtual machine.
In above-mentioned steps:
User's interaction end obtains the debugging instruction comprising needing debugging code information that tuner provides, and is subsequently sent to service End;
The debugging instruction selected target machine and the source code segment for needing to debug that server-side is sent according to user's interaction end;
In two steps, that is, corresponding diagram 4:
Selection project;
Determine target machine ip and debugging port;
Class file information is set;
The operation of this several step.It is prepared by these steps for connecting virtual machine.
The debugging instruction comprising needing debugging code information that tuner provides is obtained to user's interaction end, is subsequently sent to take It is engaged in being explained the step for end as follows:
In the present embodiment, the i.e. selected entry name of the debugging instruction comprising needing debugging code information, corresponding mesh The code file name that the target machine and needs that mark machine ip, selected needs are debugged are debugged.
The specific implementation of the step includes:
The project for needing to debug is set, the ip of machine where project and debugging port;
The ip of machine where being identified project according to specified project, selects to the target machine in requisition for debugging;
Corresponding source code segment on line is transferred from the virtual machine of target machine according to code file name and returns to user's friendship Mutually end.
Setting needs the project debugged before entering debugging, including the ip of machine where setting project and debugging end Mouthful, which can realize that specific set content provides in configuration file by loading configuration file.
The debugging instruction selected target machine that server-side is sent according to user's interaction end and the source code segment for being needed to debug, The step for establishing connection with the virtual machine of selected target machine, obtaining the control to virtual machine be explained as Under:
Target machine ip and debugging port can determine by previous step, then establish virtual machine and connect and pass through virtual machine Manager VirtualMachineManager is safeguarded, to obtain the control to target virtual machine. VirtualMachineManager virtual machine connection manager is the tool-class that the VirtualMachine class based on JDI is realized. Start-up and Adjustment connection in the step corresponding diagram 4, virtual machine manager obtain virtual machine control by JDWP-Handshake.
Target virtual machine is firstly the need of starting JDWP agency, and Agent is loaded in the starting of JVM virtual machine, at this time Java class does not all load;A whole set of function of JVMIT can be used come detection management virtual machine by Agent;When server-side After debugging services and target virtual machine management are shaken hands, server-side can be communicated by JDWP agreement with target virtual machine ?.
After the completion of connection, debugger and target virtual machine can carry out two-way communication.Operate in the tune of server-side Examination service can convert user's operation to debug command, and order is sent to the virtual of front end operational objective program by connection On machine;Then, target virtual machine makes corresponding operation according to the order of receiving, and the result of debugging is sent back to server-side end Debugging services;Result is formatted data back again and feeds back to use by visible data information to user's interaction end by debugging services Family.
The work for establishing virtual machine connection transfers to virtual machine connection manager to complete, and can inform after connection creates successfully User's alternation of bed connection result information.Definition VMConnector in the present embodiment as virtual machine connection manager, VMConnector is customized tool-class, is the tool-class that the VirtualMachine class based on JDI is realized, for creating Some uid or the whether debugged fair state of target machine ip debugger state, target machine are inquired in target machine connection.
Server-side ensures that the foundation management of virtual machine, same tuner's synchronization can only call a destination virtual Machine, same target virtual machine synchronization can only be debugged by a tuner.In embodiment, server-side is equipped with connection manager Debugging connection between server-side and virtual machine is managed, in store user uid in connection manager, for uniquely distinguishing The sid of link information, the temporal information of ip, port and last operation is connected to distinguish connection.Establish debugger and virtual machine The process of connection is with reference to shown in attached drawing 5:
Server-side sends specified IP:PORT, and common sense connects the port Attach Debug;
Judge whether successful connection, the reason of connection failure then returns to connection failure;
If creating successful connection, this connection is given to virtual machine connection manager management;
Virtual machine connection manager safeguards the link information currently normally debugged, and follow-up uid/sid/ip/port comes only One distinguishes a debugger.
Before establishing virtual machine connection, it is also necessary to determine the source code segment for needing to debug, be specified according in debugging instruction The code file name debugged of needs can determine the source code segment that needs are debugged.Setting class file in the step corresponding diagram 4 The step for information.
Debugger is arranged to the breakpoint setup information provided according to tuner, then will want received debugging event and send It is described to want received debugging event the step for progress is determined according to the breakpoint setup information to the virtual machine of target machine It illustrates as follows:
After tuner chooses debugging target machine and debugging source code, server-side can calculate current source code segment adjustable Line number return to client layer, breakpoint can be arranged on breakpoint row in tuner.
After receiving the breakpoint event instruction that user's interaction end sends over, system is logged according to current server-side first The uid and sid of person from obtain a debugger;Debugger includes two important objects: breakpoint event access monitor and virtual Machine connection manager;Breakpoint event access monitor monitors the breakpoint event for carrying out self virtualizing machine, and virtual machine connection manager is established Virtual machine is connected and is managed to connection.Definition VMConnector in the present embodiment realizes virtual machine connection manager function Can, VMConnector is customized tool-class, is the tool-class that the VirtualMachine class based on JDI is realized, for creating Target machine connection is built, some uid or the whether debugged fair state of target machine ip debugger state, target machine are inquired.This implementation BreakPointVisitor is defined in example and realizes breakpoint event access monitor function, and BreakPointVisitor is customized Tool-class, be the tool for handling breakpoint event between debugger and target machine, carry out self virtualizing machine for handling and return Breakpoint event.
Button can be set in the interactive interface of user's interaction end in embodiment, send breakpoint thing by clicking the button Part instruction.
For breakpoint event by tuner's active transmission, tuner selects the engineering for needing to debug, selection target machine IP, code text The breakpoint line number of part and setting, the company's of click debug button can disposably establish connection, by JDI EventRequestManager encapsulation code information, breakpoint line number, filter condition are sent to target machine.
Obtain debugger process are as follows: first from DebuggerMap specify sid obtain, if there is directly return, If there is no then one debugger of creation, and it is put into DebuggerMap.
DebuggerMap is customized debugger management tool, and DebuggerMap stores all tuners and adjusting The virtual machine connection (also referred to as debugging connection) of examination, is eventually called by virtual machine manager, arrives according to sid, uid are available. A signified debugger (debugger) in each corresponding text of debugging connection.
The breakpoint setup information that tuner provides include need debug class file name, breakpoint line number, filtered fields name and Filtered fields value, server-side are arranged onto breakpoint event access monitor after receiving breakpoint setup information.The present invention In condition setting is filtered to debugger, using in breakpoint setup information filtered fields name and filtered fields value as filtering rod Part.After setting up the condition of debugger, by EventRequestManager (event request manager) debugging Class name and specific breakpoint line number notify target virtual machine, and the breakpoint row of this class file is passed through in virtual machine meeting program operation Number when trigger a breakpoint event, and debugger is transferred to by JDWP.EventRequestManager is the included class of JDI, After virtual machine link creation by event request manager create breakpoint request (BreakpointRequest, this It is the included class of JDI), by sending out a target machine after setting class file information, line number and filter condition.In some embodiments In, it can be not provided with filter condition, only setting needs the class file name debugged and breakpoint line number as asking into breakpoint event It asks, the filtered fields of corresponding debugger can empty.The step for, that is, respective figure 4 in send virtual machine want received debugging The step for event.
Then following steps are executed: monitoring the event from target virtual machine, meets currently once listening to breakpoint event Debugging condition hangs up current thread, and returns to thread stack data and give user's interaction end.The step for respective figure 4 in it is following Several steps: debugging services monitor the event from virtual machine manager, and the appointment codes of external request triggering target virtual machine are held Row, target virtual machine send event data to debugging services, after being matched to respective conditions, hang up thread and obtain thread stack number According to giving user service end.
When target machine operation code goes to specified file and specified line number, virtual machine generates one BreakPointEvent event, and event is pushed to debugger, breakpoint event access monitor can intercept this thread. Wherein BreakPointEvent event, that is, breakpoint event is the tool-class carried in JDK.Breakpoint event is in the generation for executing its position It generates before code, when reaching the position for meeting the breakpoint request currently enabled, the event set comprising such example is added to In the event queue of virtual machine.
It is illustrated in conjunction with specific steps of the attached drawing 6 to above-mentioned breakpoint setup, the step is in debugger and target virtual machine Between execute, comprising:
A virtual machine connection manager is obtained according to uid, sid, and creates corresponding debugger;
Debugger sends breakpoint event information to target virtual machine, notifies target virtual machine that handle when dependent event currently occurs Event returns to debugger;
The breakpoint condition of client layer is stored in debugger, breakpoint condition herein refer to need debug filename, Breakpoint line number and filter condition;
User triggers code operation or the program of internal system behavior automatic trigger target virtual machine is run to corresponding line number;
Program runs to the corresponding line number of code and generates corresponding event active transmission to debugger.
Client layer described herein, that is, previously described user interaction end, or can directly be called for user's interaction end.
Then debugger is according to tuner's instruction execution single-step debug, until meet it is preset disconnect condition after, break Open the connection of target virtual machine.Following steps in the step respective figure 4: after being matched to respective conditions, hanging up thread, and Thread stack data are obtained to client layer;According to the single-step debug of tuner's instruction execution, restore thread, repetition the 8th, 9 steps, until jumping Out, primary debugging is completed, is disconnected.
It is illustrated in conjunction with detailed process of the attached drawing 6 to single-step debug:
S5, debugging services hang up thread, judge whether to meet debugging item after receiving and carrying out the time of target virtual machine Part, the condition that meets then obtains thread information, and returns to client layer;
S6, debugger send single step event and control target virtual machine code to virtual machine and execute down, and single when occurring Debugger can be transmitted to after step event;
S7, the program of target virtual machine runs to the corresponding line number generation single step event of code, and actively debugger is sent in promotion;
S8 repeats S5-S7, to complete the step of debugger executes operation to every a line of code, and obtains each The thread information of operating status is debugged to user;
VMConnector is disconnected after completing debugging, and clears up locality connection manager and discharges current debugger, completes one Secondary debugging.
In above-mentioned S5, after qualified request thread is monitored device matching, current thread can be suspended.Pass through JDK Included Thread.suspend () method executes.
By JDWP agreement, get by target machine be transmitted through Lai data.Debugger obtains in thread stack StackFrame information, the inside contain the type and value of object in current thread, instance variable, method variable;
Whether debugger selects after obtaining all these data it is first determined whether to make filtering brush, be empty according to filtered fields Judge, if filtered fields be not it is empty, traverse the variable on all thread stacks, compare field name it is as variable name identical and Whether the two value is consistent to determine whether the current thread that let pass.Current key just actually enters tune when matching with value In examination, while starting a single-step debug monitor, the single-step debug event for occurring in monitoring system;And it empties original disconnected Monitor is put to discharge the interception of other requests, it is ensured that other request threads can be normally carried out without blocking on line.This implementation The function that StepVisitor realizes single-step debug monitor is defined in example, StepVisitor is customized tool-class, a step The process that one step trace routine executes, returning to the downward movement of each step all can be implementing result.
Debugging services can be user's interaction end be transmitted at this time after data format obtained, and the follow-up of user's interaction end has Volume data renders the interface of scope and watch;
A later static scene is successfully monitored the above are breakpoint, is held down when tuner needs to control program continuation There are two types of selections for row: 1) continuing to execute next line code.2) current thread is jumped out.
It can choose click " in next step (F9) " or " jumping out thread (F10) ".The two movements can all trigger one StepEvent event, only the type inside event is different;StepEvent event refers to that single step executes event.
System can place an event object after being connected to this instruction in the queue queue of interior deposit receipt step time, StepVisitor can monitor this queue in real time, once the type that discovery has event to come in first to judge event, if it is jumping out Thread events are fairly simple, restore thread Thread.resume (), and delete all monitors in current link, notify This debug of client layer terminates.
If it is the event that performs the next step, restore thread Thread.resume (), deletes all monitoring in current link Device, and a single-step debug monitor (StepVisitor) is played again at once, monitor the single step event of target machine.
After thread restores, destination virtual chance executes line code down, and sends StepEvent to debugger, adjusts Examination device hangs up current thread after receiving the event at once, while the logic of thread stacks data is obtained before repeating, Relevant information is forwarded to client layer.
Circulation performs the next step event, can control program a line a line and executes down, tuner can see every a line The stacked data of thread after executing, to complete the debug process requested on entire line.
Disconnect debugging target virtual machine is connected with two ways:
Pass through tuner's active transmission Disconnect event;
After debugger receives disconnected event i.e. Disconnect event, delete again first all in debugging connection Event discharges Virtual Machine Manager, disconnects, and corresponding debugger inside last time DebuggerMap.
Client layer is notified to disconnect debugging task and complete.
System recycling;
Connection manager task monitors all debugging connections in real time, does not have when in connection 10 minutes of a debugger Any operation can also recycle automatically, and to prevent, tuner from forgetting to execute or network problem causes this debugging connection can not be normal Release.
The present invention mainly apply and give birth to thus by scene, and commissioning staff can be convenient the destination service that selection needs to debug, and lead to It crosses particular filter condition only to debug specified user's request, does not influence function and performance on line, and can quickly position solution Problem on line.By debugging services transfer, virtual machine on tieline obtains and controls the execution step of some block code With implementation procedure, problem in position line is quickly checked;Using browser as the operation interface of commissioning staff, debugging process figure Change, promotes the efficiency solved the problems, such as.It supports the above tuner of hundred people on-line debugging simultaneously, does not interfere with each other;Support request filtering, it can Filter condition is arranged: key/value precisely intercepts the request for needing to debug, avoids causing other users on line unrelated It influences.

Claims (10)

1. the method that one kind can debug in real time online, which is characterized in that this method is based on debugging system realization, the debugging system Using B/S framework, including user's interaction end, server-side and target machine equipped with web browser, the virtual machine of target machine On-line operation target program;
Method includes the following steps:
User's interaction end and server-side, which are established, to be communicated to connect;
User's interaction end obtains the debugging instruction comprising needing debugging code information that tuner provides, and is subsequently sent to server-side;
Debugging instruction selected target machine that server-side is sent according to user's interaction end and the source code segment for needing to debug, and it is selected The virtual machine of target machine establish connection, obtain the control to virtual machine;
Debugger is set according to the breakpoint setup information that tuner provides, then will want received debugging event and be sent to target The virtual machine of machine, it is described to want received debugging event according to breakpoint setup information determination;
When the source code segment for needing to debug on target virtual machine is performed, virtual machine can be when operation be by specified debugging event A breakpoint event is triggered, and event is pushed to debugger;
The event from target virtual machine of monitoring once listens to breakpoint event and meets current debugging condition, hangs up current thread, Debugger obtains the data in thread stack, and returns to user's interaction end;
Debugger can create a single-step debug monitor simultaneously, the single-step debug event issued for monitoring tuner;And it is clear Empty original breakpoint event monitor, other requests on clearance target virtual machine code snippet;
Debugger according to tuner's instruction execution single-step debug, until meet it is preset disconnect condition after, it is empty to disconnect target The connection of quasi- machine;
Wherein, debugger includes two important objects: breakpoint event access monitor and virtual machine connection manager, breakpoint event Access monitor monitors the breakpoint event for carrying out self virtualizing machine;Virtual machine connection manager is established virtual machine connection and is carried out to connection Management.
2. the method that one kind according to claim 1 can debug in real time online, which is characterized in that user's interaction end with Server-side establishes communication connection, comprising:
The connection request for currently logining user's proposition is authenticated based on the auth method of token, if authentification failure, clothes The channel being engaged between the short chain active user interaction end of end active and server-side.
3. the method that one kind according to claim 2 can debug in real time online, which is characterized in that user's interaction end and service End group is communicated in WebSocket agreement, and user's interaction end establishes the step of communicating to connect with server-side and includes:
Channel is initialized, after the browser of user's interaction end issues connection request, channel link success;
Handshake authentication operation is carried out after the successful connection of channel, the authority of certification is currently logined user and signed and issued when logging in Token, if authentification failure, the short chain current channel of server-side active;
After certification passes through, the event message for the specified type that user's interaction end to be received such as server-side issues.
4. the method that one kind according to claim 1 can debug in real time online, which is characterized in that server-side is handed over according to user The debugging instruction selected target machine and the source code segment for needing to debug that mutually end is sent, the debugging instruction include needing to debug Entry name and the code file name for needing to debug, comprising:
The project for needing to debug is set, the IP of machine where project and debugging port;
The IP of machine where being identified project according to specified project, selects to the target machine in requisition for debugging;
Corresponding source code segment on line is transferred from the virtual machine of target machine according to code file name and returns to user's interaction end.
5. the method that one kind according to claim 1 can debug in real time online, which is characterized in that with selected target machine Virtual machine establish connection, obtain the control to virtual machine, comprising:
Virtual machine connection manager is obtained after establishing connection;
The connection result of virtual machine is established and is managed to ensure that same tuner's synchronization can only call a target virtual machine, Same target virtual machine synchronization can only be debugged by a tuner.
6. the method that one kind according to claim 1 can debug in real time online, which is characterized in that described to be given according to tuner Debugger is arranged in breakpoint setup information out, comprising:
Server-side calculates the line number of the source code segment adjustable of current selected and returns to user's interaction end, then waits and coming from The breakpoint event of user's interaction end, breakpoint event include breakpoint setup information;
After server-side receives breakpoint event, unique debugger is distributed for current tuner;
The actual conditions for including by breakpoint setup information are arranged to breakpoint event access monitor.
7. the method that one kind according to claim 6 can debug in real time online, which is characterized in that it is described will want it is received Debugging event is sent to the virtual machine of target machine, and specific implementation includes: the specified interface by debugger offer breakpoint The class file name and specific breakpoint line number notice target virtual machine that the needs specified in setting information are debugged.
8. the method that one kind according to claim 1 can debug in real time online, which is characterized in that judgement listens to breakpoint thing Whether part meets filter condition, comprising:
It whether is empty in breakpoint setup information according to the filtered fields for including after debugger acquisition carrys out the breakpoint event of self virtualizing machine Judge whether to need to filter brush choosing;
If filtered fields are sky, directly hang up current thread and enter debugging;
If filtered fields are not sky, the variable on all thread stacks is traversed, with the filtered fields for including in breakpoint setup information Value and the entitled filter condition of filtered fields judge whether clearance current thread, when filtering field name is matched with variable name and filters word When segment value is matched with variate-value, hangs up current thread and enter debugging.
9. the system that one kind can debug in real time online, which is characterized in that the system uses B/S framework, including equipped with web-browsing User's interaction end, server-side and the target machine of device, the virtual machine on-line operation target program of target machine, the system execute such as The method that one kind of any of claims 1-8 can debug in real time online.
10. a kind of storage medium, computer program is stored on storage medium, program is executed by processor realization such as claim The method that one kind described in any one of 1-8 can debug in real time online.
CN201910284356.5A 2019-04-10 2019-04-10 A kind of method that can be debugged in real time online, system and storage medium Pending CN110032426A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910284356.5A CN110032426A (en) 2019-04-10 2019-04-10 A kind of method that can be debugged in real time online, system and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910284356.5A CN110032426A (en) 2019-04-10 2019-04-10 A kind of method that can be debugged in real time online, system and storage medium

Publications (1)

Publication Number Publication Date
CN110032426A true CN110032426A (en) 2019-07-19

Family

ID=67237863

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910284356.5A Pending CN110032426A (en) 2019-04-10 2019-04-10 A kind of method that can be debugged in real time online, system and storage medium

Country Status (1)

Country Link
CN (1) CN110032426A (en)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111209198A (en) * 2019-12-31 2020-05-29 五八有限公司 Debugging method and device based on JPDA, electronic equipment and storage medium
CN111338961A (en) * 2020-02-28 2020-06-26 北京小米移动软件有限公司 Application debugging method and device, electronic equipment and storage medium
CN111752845A (en) * 2020-06-30 2020-10-09 江苏恒宝智能系统技术有限公司 Debugging tool and debugging method and system thereof
CN111930472A (en) * 2020-08-19 2020-11-13 曙光信息产业(北京)有限公司 Code debugging method and device, electronic equipment and storage medium
CN112099906A (en) * 2020-08-26 2020-12-18 福建摩尔软件有限公司 Java code remote debugging method, device, system, equipment and medium
CN112256570A (en) * 2020-10-19 2021-01-22 网易(杭州)网络有限公司 Remote debugging method, device, equipment and storage medium
CN112527639A (en) * 2020-12-02 2021-03-19 平安医疗健康管理股份有限公司 Remote debugging method and device in production environment, computer equipment and storage medium
CN113434428A (en) * 2021-07-06 2021-09-24 中国银行股份有限公司 Online debugging method and device
CN114996166A (en) * 2022-08-02 2022-09-02 杭州高达软件系统股份有限公司 Code online debugging method, system and storage medium
CN115794313A (en) * 2022-12-26 2023-03-14 科东(广州)软件科技有限公司 Virtual machine debugging method, system, electronic equipment and storage medium
CN116383014A (en) * 2023-06-02 2023-07-04 北京集度科技有限公司 Monitoring computer, software debugging method, software debugging system, medium and product
CN117472784A (en) * 2023-12-25 2024-01-30 图灵人工智能研究院(南京)有限公司 Browser-based Serverless code online debugging method
CN117762889A (en) * 2024-02-20 2024-03-26 成都融见软件科技有限公司 Same-file multi-window state synchronization method, electronic equipment and medium

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150046908A1 (en) * 2013-08-07 2015-02-12 Raytheon Company System and method for hypervisor breakpoints
CN107948317A (en) * 2017-12-26 2018-04-20 金蝶软件(中国)有限公司 Adjustment method, device, storage medium and the computer equipment of Distributed Services
CN109344065A (en) * 2018-09-27 2019-02-15 迈普通信技术股份有限公司 Remote debugging method, debugging server and target machine

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150046908A1 (en) * 2013-08-07 2015-02-12 Raytheon Company System and method for hypervisor breakpoints
CN107948317A (en) * 2017-12-26 2018-04-20 金蝶软件(中国)有限公司 Adjustment method, device, storage medium and the computer equipment of Distributed Services
CN109344065A (en) * 2018-09-27 2019-02-15 迈普通信技术股份有限公司 Remote debugging method, debugging server and target machine

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
李孟辉: "基于Web的云开发平台的研究与实现", 《中国优秀硕士论文全文数据库信息科技辑》 *

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111209198A (en) * 2019-12-31 2020-05-29 五八有限公司 Debugging method and device based on JPDA, electronic equipment and storage medium
CN111338961A (en) * 2020-02-28 2020-06-26 北京小米移动软件有限公司 Application debugging method and device, electronic equipment and storage medium
CN111338961B (en) * 2020-02-28 2023-10-20 北京小米移动软件有限公司 Application debugging method and device, electronic equipment and storage medium
CN111752845A (en) * 2020-06-30 2020-10-09 江苏恒宝智能系统技术有限公司 Debugging tool and debugging method and system thereof
CN111930472A (en) * 2020-08-19 2020-11-13 曙光信息产业(北京)有限公司 Code debugging method and device, electronic equipment and storage medium
CN111930472B (en) * 2020-08-19 2023-03-28 曙光信息产业(北京)有限公司 Code debugging method and device, electronic equipment and storage medium
CN112099906A (en) * 2020-08-26 2020-12-18 福建摩尔软件有限公司 Java code remote debugging method, device, system, equipment and medium
CN112099906B (en) * 2020-08-26 2024-05-03 摩尔元数(福建)科技有限公司 Java code remote debugging method, device, system, equipment and medium
CN112256570A (en) * 2020-10-19 2021-01-22 网易(杭州)网络有限公司 Remote debugging method, device, equipment and storage medium
CN112256570B (en) * 2020-10-19 2023-08-11 网易(杭州)网络有限公司 Remote debugging method, device, equipment and storage medium
CN112527639A (en) * 2020-12-02 2021-03-19 平安医疗健康管理股份有限公司 Remote debugging method and device in production environment, computer equipment and storage medium
CN113434428A (en) * 2021-07-06 2021-09-24 中国银行股份有限公司 Online debugging method and device
CN114996166B (en) * 2022-08-02 2022-10-21 杭州高达软件系统股份有限公司 Code online debugging method, system and storage medium
CN114996166A (en) * 2022-08-02 2022-09-02 杭州高达软件系统股份有限公司 Code online debugging method, system and storage medium
CN115794313A (en) * 2022-12-26 2023-03-14 科东(广州)软件科技有限公司 Virtual machine debugging method, system, electronic equipment and storage medium
CN115794313B (en) * 2022-12-26 2024-04-09 科东(广州)软件科技有限公司 Virtual machine debugging method, system, electronic device and storage medium
CN116383014A (en) * 2023-06-02 2023-07-04 北京集度科技有限公司 Monitoring computer, software debugging method, software debugging system, medium and product
CN117472784A (en) * 2023-12-25 2024-01-30 图灵人工智能研究院(南京)有限公司 Browser-based Serverless code online debugging method
CN117472784B (en) * 2023-12-25 2024-03-19 图灵人工智能研究院(南京)有限公司 Browser-based Serverless code online debugging method
CN117762889A (en) * 2024-02-20 2024-03-26 成都融见软件科技有限公司 Same-file multi-window state synchronization method, electronic equipment and medium
CN117762889B (en) * 2024-02-20 2024-04-19 成都融见软件科技有限公司 Same-file multi-window state synchronization method, electronic equipment and medium

Similar Documents

Publication Publication Date Title
CN110032426A (en) A kind of method that can be debugged in real time online, system and storage medium
US8972945B2 (en) Collaborative software debugging in a distributed system with client-specific access control
CN110162977B (en) Android vehicle-mounted terminal system vulnerability detection system and method
US8990775B2 (en) Collaborative software debugging in a distributed system with dynamically displayed chat sessions
CN104536899B (en) A kind of software deployment and its maintaining method based on Intelligent cluster
US8756577B2 (en) Collaborative software debugging in a distributed system with private debug sessions
US20120102460A1 (en) Collaborative Software Debugging In A Distributed System With Client-Specific Dynamic Breakpoints
EP3992800B1 (en) Program test method and apparatus, computer device, and storage medium
CN104375938B (en) The dynamic behaviour monitoring method and system of Android application program
US20120084758A1 (en) Collaborative Software Debugging In A Distributed System With Client-Specific Variable Evaluation
CN112840326A (en) Test engine for automated operations management
US8656360B2 (en) Collaborative software debugging in a distributed system with execution resumption on consensus
US9411709B2 (en) Collaborative software debugging in a distributed system with client-specific event alerts
US20120278790A1 (en) Collaborative Software Debugging In A Distributed System With Real-Time Variable Modification Indicators
CN110035088A (en) Method and apparatus based on RPA remote control operation system automated log on
US20120151452A1 (en) Remote debugging of server side code without blocking or high-level privileges
US20120102466A1 (en) Collaborative Software Debugging In A Distributed System With Graphic Representation Of Source Code Ownership Assignments
US20120102463A1 (en) Collaborative Software Debugging In A Distributed System With Multi-Member Variable Expansion
JP2001195284A (en) Frame work system and method for testing performance of server
US8850397B2 (en) Collaborative software debugging in a distributed system with client-specific display of local variables
US20120102459A1 (en) Collaborative Software Debugging In A Distributed System With Stacked Event Group Management
US20120102464A1 (en) Collaborative Software Debugging In A Distributed System With Collaborative Step Over Operation
CN104239797B (en) Active defense method and device
US8739127B2 (en) Collaborative software debugging in a distributed system with symbol locking
US20120272218A1 (en) Collaborative Software Debugging In A Distributed System With Stacked Run-To-Cursor Commands

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20190719