You are viewing the documentation for the develop branch. The documentation for the release version is here .

Table of Contents

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
Key binding Description
SPC d c continue
SPC d i step in
SPC d o step out
SPC d s next step
SPC d r restart frame
SPC d S f switch frame
SPC d S s switch session
SPC d S t switch thread
SPC d w o goto output buffer if present
SPC d w s list sessions

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

5. References

Author: root

Created: 2021-09-29 Wed 20:46