Debug Adapter Protocol is a wire protocol for communication between client and Debug Server. It similar to the LSP.
- Launch/Attach
- Breakpoints
- Exceptions
- Pause & Continue
- Step In/Out/Over
- Callstacks
- Threads
- Multiple simultaneous debug sessions
- Evaluating statements
- Debug/Run configurations
Command | Description | Keybindings |
---|---|---|
dap-toggle-breakpoint | Toggle java breakpoint at line | |
dap-eval | Eval string | |
dap-eval-region | Eval region string | |
dap-eval-dwim | Eval symbol at point | |
dap-step-in | Debug step in | |
dap-step-out | Debug step out | |
dap-next | Debug next | |
dap-continue | Debug continue | |
dap-disconnect | Cancel current debug session | |
dap-switch-stack-frame | Switch active stack frame | |
dap-switch-thread | Switch active thread | |
dap-switch-session | Switch active session | |
dap-debug-configuration-add | Add new debug/run configuration | |
dap-debug-configuration-run-last | Debug previous configuration | |
dap-debug-configuration-debug-recent | Run previous configuration |
Command | Description | Keybindings |
---|---|---|
dap-ui-session-list | List current debug sessions |
Command | Description | Keybindings |
---|---|---|
dap-ui-session-remove | Remove terminated session from the list of running sessions | |
dap-ui-session-disconnect | Terminate the session under cursor | |
dap-ui-session-thread-stop | stop thread at point | |
dap-ui-session-thread-kill | Kill thread at point | |
dap-ui-session-select | Select object at point | <return> |
dap-ui-session-toggle-node | Toggle node expand state | <tab> |
dap-ui-session-eval | Eval statement in current context | e |
Make sure that you have properly installed and configured LSP Java. Download
latest version of Debug Java from Maven Central and put it in
.emacs.d/eclipse.jdt.ls/plugins
. On linux you can do that by running the
following command:
mkdir -p ~/.emacs.d/eclipse.jdt.ls/plugins/
mvn dependency:get -DrepoUrl=https://mvnrepository.com/repos/central -DgroupId=com.microsoft.java -DartifactId=com.microsoft.java.debug.plugin -Dversion=0.9.0
cp ~/.m2/repository/com/microsoft/java/com.microsoft.java.debug.plugin/0.9.0/com.microsoft.java.debug.plugin-0.9.0.jar ~/.emacs.d/eclipse.jdt.ls/plugins/com.microsoft.java.debug.plugin-0.9.0.jar
Then add the following settings in your emacs config file:
(add-to-list 'lsp-java-bundles (expand-file-name
(locate-user-emacs-file
"eclipse.jdt.ls/plugins/com.microsoft.java.debug.plugin-0.9.0.jar")))
Command | Description |
---|---|
dap-java-debug | Debug java |
dap-java-run | Run Java debug process |
dap-java-attach | Attach to running java process |
If you notice a bug, open an issue on Github Issues
- Breakpoints list
- Watches
- Value inspector
- Locals
- Debug console