Browse Prior Art Database

Common debug protocol for Java and .NET applications

IP.com Disclosure Number: IPCOM000031309D
Original Publication Date: 2004-Sep-21
Included in the Prior Art Database: 2004-Sep-21
Document File: 3 page(s) / 194K

Publishing Venue

IBM

Abstract

Disclosed is a program which enables the use of existing Java* interactive debuggers and integrated development environments for postmortem debugging of Java applications as well as debugging of Microsoft**.NET applications. Since the functionality provided by postmortem debuggers is similar to that of interactive debuggers, existing debugger front-ends already incorporate the required user interface. The proposed architecture enables the use of existing Java debuggers for postmortem debugging of Java applications without modifying the debugger front-end. The proposed common debug protocol also enables the use of Java debuggers for debugging Java applications running under .NET, thus providing a unified debugging environment for both Java and .NET.

This text was extracted from a PDF file.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 53% of the total text.

Page 1 of 3

Common debug protocol for Java and .NET applications

The Java* platform debug architecture (JPDA) [1] defined by Sun is a three-tier model aimed at providing a common debug architecture to enable tools developers to create debuggers that run portably across different platforms and Java virtual machine (JVM) implementations. JPDA consists of a Java virtual machine debug interface (JVMDI) implemented by the debugger back-end, Java debug interface (JDI) used by the debugger front-end, and a Java debug wire protocol (JDWP) used to communicate between the front-end and the back-end. This architecture has made it possible for multiple vendors to develop Java debugger front-ends, for example Eclipse and jdb, which work with all Java virtual machines that support JDWP, either using JVMDI or by directly implementing JDWP. But JDWP is only used at development time for interactive debugging of Java applications using JVMs which generate the necessary events to support debugging.

    Since the functionality provided by postmortem debuggers and interactive debuggers are very similar, debuggers for traditional languages like C (eg. gdb) provide integrated support for both postmortem and interactive debugging. Due to lack of support for postmortem debugging in Java virtual machines, there is currently no standardized protocol for postmortem debugging of Java applications, and hence existing Java debuggers cannot be used for postmortem debugging.

    With an increasing number of applications targeted at both Java and Microsoft**.NET, it would be extremely useful for Java developers to be able to use familiar development environments like Eclipse to develop Java applications which are executed on both Java virtual machines and on .NET. While both source-level and bytecode translators exist for migration of Java code to .NET, tools like debuggers targeted at Java do not work with .NET, requiring developers to switch development environments to build and debug applications on Java and
.NET.

    The proposed common debug protocol extends JDWP to enable postmortem debugging of Java applications, and to support debugging of Java applications translated to execute on .NET. In both these cases, JDWP protocol used for interactive debugging provides a large subset of functions necessary to support the new environment, and hence existing Java debugger front-ends already provide an ideal platform that can be extended to address the new functionality required. The common debug protocol provides the ability to choose a subset of JDWP functions that are supported by the back-end, and also the ability to add new functions for each new environment. The JDWP capabilities command has been extended to query the back-end to determine whether a particular environment is supported.

Page 2 of 3...