IP Library Granted Patent US 6,986,124
Granted Patent B1
US 6,986,124 · App. 09/540,576 · Granted Jan 10, 2006

Debugger protocol generator

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 6,986,124
App. No.
09/540,576
Granted
Jan 10, 2006
Kind
B1
Abstract

A method for automatically generating front-end code and back-end code that are both compatible with a specification, such as the JDWP communication protocol. First, a detailed protocol specification is written that contains a description of a communication protocol between the front-end code and the back-end code. The detailed specification is then input into a code generator that parses the specification. The front-end code is then automatically generated from the formal specification, and may be written in a first computer language such as the Java™ programming language. The code generator then generates the back-end code, which may be written in a second computer language such as C.

Claims (26)

1. A method of providing a debugging environment in a computing environment that includes first and second virtual machines, the method comprising:

inputting a formal specification written in a debugging specification language into a program code generator, the formal specification defining a high level debugging communication protocol for communication between the first and second virtual machines;

parsing the formal specification using the program code generator;

automatically generating a front-end debugger program portion from the formal specification based on the parsing of the formal specification, the front-end debugger program running on a first virtual machine, the front-end debugger program portion corresponding to a platform independent programming language which provides a high level debugging interface which can be accessed by a debugger application operating on a first virtual machine;

automatically generating a back-end debugger program code portion from the formal specification based on the parsing of the formal specification, the back-end debugger program code portion implementing a virtual machine debugging interface which provides the capability to control and communicate with a second virtual machine, the back-end debugger program code portion corresponding to a platform-specific programming language; and

wherein the front-end debugger program portion and the back-end debugger program code that are generated from the formal specification are compatible with each other and comply with the formal specification, thereby implementing the high-level communication protocol between the first and second virtual machines.

2. A method as recited in claim 1 , wherein the front-end processing module operates to send events that are generated in the second virtual machine to the front-end debugger program portion via the back-end debugger program code portion.

3. A method as recited in claim 2 , wherein the front-end processing module performs one or more of the following operations:

read and parse events from the back-end debugger code portion;

convert the events from a first format into a second format which is compatible with the front end debugger code portion; and

queue the events.

4. A method as recited in claim 2 , wherein the front-end processing module further performs operations related to requests made through the front-end debugger program by the debugger application program.

5. A method as recited in claim 2 , wherein the front-end processing module further performs one or more of the following operations:

write formatted requests;

send the formatted requests to the back-end debugger code portion;

associate at least one reply with the formatted requests;

read and parse the at least one reply;

deliver the at least one reply to an appropriate requester.

6. A method as recited in claim 5 , wherein the back-end processing module performs operations related to event processing and request processing.

7. A method as recited in claim 6 , wherein the event processing operations performed by the back-end processing module includes sending an event which was generated through the virtual machine debugging interface to the front-end debugging portion.

8. A method as recited in claim 7 , wherein the request processing operations performed by the back-end processing module include one or more of the following operations:

reading and parsing formatted requests from the front-end debugger program portion;

forwarding the requests to the back-end debugger program code portion;

sending the reply to the requests to the front-end debugger program portion.

9. A method as recited in claim 1 , wherein the back-end processing module performs operations related to event processing and request processing.

10. A method as recited in claim 1 , wherein the front-end debugger program portion includes a class which is used by the front-end debugger program portion to send and receive information over the debugging communication protocol.

Assignments (1)
MERGER AND CHANGE OF NAME Recorded Dec 14, 2015
From: ORACLE USA, INC.; SUN MICROSYSTEMS, INC.; ORACLE AMERICA, INC.
To: ORACLE AMERICA, INC.
Reel/Frame 037280/0188 →