Skip to content

yssource/dap-mode

Repository files navigation

Emacs client/library for Debug Adapter Protocol (alpha)

https://travis-ci.org/yyoncho/dap-mode.svg?branch=master https://coveralls.io/repos/github/yyoncho/dap-mode/badge.svg?branch=master

Debug Adapter Protocol is a wire protocol for communication between client and Debug Server. It similar to the LSP.

Screenshot

screenshots/MultiSession.png

Features

  • Launch/Attach
  • Breakpoints
  • Exceptions
  • Pause & Continue
  • Step In/Out/Over
  • Callstacks
  • Threads
  • Multiple simultaneous debug sessions
  • Evaluating statements
  • Debug/Run configurations

Debugger commands

CommandDescriptionKeybindings
dap-toggle-breakpointToggle java breakpoint at line
dap-evalEval string
dap-eval-regionEval region string
dap-eval-dwimEval symbol at point
dap-step-inDebug step in
dap-step-outDebug step out
dap-nextDebug next
dap-continueDebug continue
dap-disconnectCancel current debug session
dap-switch-stack-frameSwitch active stack frame
dap-switch-threadSwitch active thread
dap-switch-sessionSwitch active session
dap-debug-configuration-addAdd new debug/run configuration
dap-debug-configuration-run-lastDebug previous configuration
dap-debug-configuration-debug-recentRun previous configuration

Sessions

CommandDescriptionKeybindings
dap-ui-session-listList current debug sessions

Sessions view [WIP]

CommandDescriptionKeybindings
dap-ui-session-removeRemove terminated session from the list of running sessions
dap-ui-session-disconnectTerminate the session under cursor
dap-ui-session-thread-stopstop thread at point
dap-ui-session-thread-killKill thread at point
dap-ui-session-selectSelect object at point<return>
dap-ui-session-toggle-nodeToggle node expand state<tab>
dap-ui-session-evalEval statement in current contexte

Configuration

Java

Installation

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")))

Commands

CommandDescription
dap-java-debugDebug java
dap-java-runRun Java debug process
dap-java-attachAttach to running java process

Extending DAP with new Debug servers [TBD]

Links

Troubleshooting

If you notice a bug, open an issue on Github Issues

What’s next

  • Breakpoints list
  • Watches
  • Value inspector
  • Locals
  • Debug console

About

Debug Adapter Protocol for Emacs

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Emacs Lisp 91.5%
  • Gherkin 8.2%
  • Other 0.3%