Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
JSDT/Debug
JSDT Debug | |
Website | |
Download | |
Community | |
Mailing List • Forums • IRC • mattermost | |
Issues | |
Open • Help Wanted • Bug Day | |
Contribute | |
Browse Source • Project Set File |
The JSDT debug project brings a variety of JavaScript debugging support to the JSDT using a common UI and communicating using a common protocol - JavaScript Debug Interface (JSDI). The common interface for the debugger emulates that of the platform and JDT debugger to allow a smooth transition and ease of use for the JSDT debugger.
Currently we have debugging support for Rhino and an incubation version of Crossfire / Firebug support.
Contents
Bundles
The entire JSDT debugger is comprised of several bundles:
- org.eclipse.wst.jsdt.debug.core - contains the JSDI specification an debug model elements.
- org.eclipse.wst.jsdt.debug.crossfire (incubation) - contains a Crossfire implementation of the debugger.
- org.eclipse.wst.jsdt.debug.rhino - contains a Rhino implementation of the debugger.
- org.eclipse.wst.jsdt.debug.rhino.debugger - contains the Rhino debug hooks to connect to the Rhino interpreter.
- org.eclipse.wst.jsdt.debug.ui - contains the shared UI presentation for the debugger implementations.
- org.eclipse.wst.jsdt.debug.core.tests - contains related test cases for the debug core.
- org.eclipse.wst.jsdt.debug.rhino.tests - contains Rhino specific tests.
Planning
Development
Rhino Debug Wire Protocol
To provide support for the Rhino interpreter, we had to create both sides of the coin - the debugger and the client. To facilitate communication between the debugger and the client we created an adapted version of v8 (JSON-based) packet communication. The complete specification for the RDWP can be found here.
JavaScript Debug Interface (JSDI)
The JSDI is used to provide a common way for our models and UI to communicate with a variety of debugger back-ends - write one UI + model and provide additional debuggers.