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

To register dap-mode key bindings in a supported layer, the layer must register itself using the variable spacemacs--dap-supported-modes.

For instance the java layer:

(defun java/pre-init-dap-mode ()
  (add-to-list 'spacemacs--dap-supported-modes 'java-mode))

See the java layer for further example on how to setup correctly dap-mode.

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 m d debug
SPC m d b breakpoints
SPC m d d launching
SPC m d e eval
SPC m d I inspect
SPC m d l debug windows
SPC m d S context switching
SPC m 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 m d A abandon all process
SPC m d a abandon current session
SPC m d d d start debugging
SPC m d d e edit debug template
SPC m d d l debug last configuration
SPC m d d r debug recent configuration

4.4 Breakpoints

Key binding Description
SPC m d b b toggle a breakpoint
SPC m d b c change breakpoint condition
SPC m d b l change breakpoint log condition
SPC m d b h change breakpoint hit count
SPC m d b a add a breakpoint
SPC m d b d delete a breakpoint
SPC m d b D clear all breakpoints
SPC m d w b list breakpoints
Key binding Description
SPC m d c continue
SPC m d i step in
SPC m d o step out
SPC m d s next step
SPC m d r restart frame
SPC m d S f switch frame
SPC m d S s switch session
SPC m d S t switch thread
SPC m d w o goto output buffer if present
SPC m d w s list sessions

4.6 Evaluation and REPL

Key binding Description
SPC m d '_ Run debug REPL
SPC m d e e eval
SPC m d e r eval region
SPC m d e t eval value at point

4.7 Inspection

Key binding Description
SPC m d I i inspect
SPC m d I r inspect region
SPC m d I t inspect value at point
SPC m d v inspect value at point
SPC m d w l list local variables
SPC m d T m toggle mouse support for value inspection

5 References

Author: root

Created: 2019-11-10 Sun 14:17