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 |