DAP layer
Table of ContentsClose
1. Description
Experimental integrated visual debugger using Debug Adapter Protocol.
Debug Adapter Protocol is a wire protocol for communication between client and Debug Server. It similar to the LSP but providers integration with debug server.
1.1. Features:
Fully featured IDE-like debugger providing:
- Launch/Attach
- Breakpoints
- Exceptions
- Pause & Continue
- Step In/Out/Over
- Callstacks
- Threads
- Multiple simultaneous debug sessions
- Evaluating statements
- Debug/Run configurations
- Debug REPL
2. Layer installation
To use this configuration layer, add it to your ~/.spacemacs
. You will need to
add dap
to the existing dotspacemacs-configuration-layers
list in this
file.
3. Configuration
3.1. DAP configuration in supported layers
By default dap
layer registers global key binding defined under SPC d
. If you
want to have debug bindings under major mode leader you may do the following:
For instance the java
layer:
(defun java/pre-init-dap-mode () (when (eq java-backend 'lsp) (add-to-list 'spacemacs--dap-supported-modes 'java-mode)) (add-hook 'java-mode-local-vars-hook #'spacemacs//java-setup-dap))
See the java
layer for further example on how to setup dap-mode
correctly
3.2. Variables
Variable name | Default | Description |
---|---|---|
dap-enable-mouse-support |
t | Enable/disable mouse support |
4. Key bindings
4.1. Declared prefixes
The following prefixes have been declared:
prefix | name |
---|---|
SPC d |
debug |
SPC d b |
breakpoints |
SPC d d |
debugging |
SPC d e |
eval |
SPC d I |
inspect |
SPC d w |
debug windows |
SPC d S |
context switching |
SPC d T |
toggles |
4.2. Transient state
Most of the DAP functions can be easily repeated using the built-in DAP
transient state which can be initiate with SPC m d .
.
Key binding | Description |
---|---|
SPC m d . |
debug transient state |
4.3. Start/Stop
Key binding | Description |
---|---|
SPC d A |
abandon all process |
SPC d a |
abandon current session |
SPC d d d |
start debugging |
SPC d d e |
edit debug template |
SPC d d l |
debug last configuration |
SPC d d r |
debug recent configuration |
4.4. Breakpoints
Key binding | Description |
---|---|
SPC d b b |
toggle a breakpoint |
SPC d b c |
change breakpoint condition |
SPC d b l |
change breakpoint log condition |
SPC d b h |
change breakpoint hit count |
SPC d b a |
add a breakpoint |
SPC d b d |
delete a breakpoint |
SPC d b D |
clear all breakpoints |
SPC d w b |
list breakpoints |
4.6. Evaluation and REPL
Key binding | Description |
---|---|
SPC d '_ |
Run debug REPL |
SPC d e e |
eval |
SPC d e r |
eval region |
SPC d e t |
eval value at point |
4.7. Inspection
Key binding | Description |
---|---|
SPC d I i |
inspect |
SPC d I r |
inspect region |
SPC d I t |
inspect value at point |
SPC d v |
inspect value at point |
SPC d w l |
list local variables |
SPC d T m |
toggle mouse support for value inspection |