Skip to content

The debug server implementation for Java. It conforms to the debug protocol of Visual Studio Code (DAP, Debugger Adapter Protocol).

License

Notifications You must be signed in to change notification settings

microsoft/java-debug

Folders and files

NameName
Last commit message
Last commit date

Latest commit

c0e8f92 · Aug 28, 2023
Apr 23, 2023
Sep 14, 2017
Apr 22, 2021
Aug 28, 2023
Aug 28, 2023
Aug 28, 2023
Aug 28, 2023
Sep 20, 2017
May 12, 2023
May 20, 2019
Oct 12, 2022
Aug 22, 2018
May 6, 2020
Jun 5, 2023
Oct 19, 2021
Feb 18, 2020
Mar 7, 2023
Sep 8, 2017
Sep 14, 2017
Aug 22, 2018
Aug 28, 2023

Repository files navigation

Java Debug Server for Visual Studio Code

Overview

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.

Features

  • Launch/Attach
  • Breakpoints
  • Exceptions
  • Pause & Continue
  • Step In/Out/Over
  • Variables
  • Callstacks
  • Threads
  • Debug console

Background

The Java Debug Server is the bridge between VSCode and JVM. The implementation is based on JDI (Java Debug Interface). It works with Eclipse JDT Language Server as an add-on to provide debug functionalities.

Repository Structure

  • 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

Installation

Windows:

mvnw.cmd clean install

Linux and macOS:

./mvnw clean install

Usage with eclipse.jdt.ls

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.

License

EPL 1.0, See LICENSE file.

About

The debug server implementation for Java. It conforms to the debug protocol of Visual Studio Code (DAP, Debugger Adapter Protocol).

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published