The Java Debug Server is an implementation of Visual Studio Code (VSCode) Debug Protocol. It can be used in Visual Studio Code to debug Java programs.
- Launch/Attach
- Breakpoints
- Exceptions
- Pause & Continue
- Step In/Out/Over
- Variables
- Callstacks
- Threads
- Debug console
The Java Debug Server is the bridge between VSCode and JVM. The implementation is based o 861A n JDI (Java Debug Interface). It works with Eclipse JDT Language Server as an add-on to provide debug functionalities.
- com.microsoft.java.debug.core - the core logic of the debug server
- com.microsoft.java.debug.plugin - wraps the debug server into an Eclipse plugin to work with Eclipse JDT Language Server
mvnw.cmd clean install
./mvnw clean install
To use java-debug as a jdt.ls plugin, an LSP client has to launch jdt.ls with initializationOptions that contain the path to the built java-debug jar within a bundles array:
{
"initializationOptions": {
"bundles": [
"path/to/microsoft/java-debug/com.microsoft.java.debug.plugin/target/com.microsoft.java.debug.plugin-<version>.jar"
]
}
}
Editor extensions like vscode-java take care of this.
Once eclipse.jdt.ls launched, the client can send a Command to the server to start a debug session:
{
"command": "vscode.java.startDebugSession"
}
The response to this request will contain a port number on which the debug adapter is listening, and to which a client implementing the debug-adapter protocol can connect to.
EPL 1.0, See LICENSE file.