|
||
---|---|---|
.. | ||
autoload | ||
config.el | ||
doctor.el | ||
packages.el | ||
README.org |
:tools debugger
Description unfold
Introduces a code debugger to Emacs, powered by realgud or dap-mode (LSP).
This document will help you to configure dap-mode Native Debug(GDB/LLDB) as there is still not enough documentation for it.
Maintainers
This module has no dedicated maintainers. Become a maintainer?
Module flags
- +lsp
- Enable support for Debug Adapter Protocol (DAP) debuggers.
Packages
TODO Hacks
🔨 This module's hacks haven't been documented yet. Document them?
TODO Changelog
This module does not have a changelog yet.
TODO Installation
🔨 This module's prerequisites documentation is incomplete. Complete it?
Enable this module in your doom!
block.
Make sure all of these pre-requirements is in your $PATH
:
nodejs
lldb
andlldb-mi
(optional)gdb
(optional), requiresunzip
If you are getting an error like Searching for program no such file or
directory "node"
, then you need nodejs (emacs-lsp/dap-mode#79).
Realgud debuggers
gdb
This is optional if you want to debug with GDB. Install gdb.
You will need unzip
for dap-gdb-lldb-setup
. It downloads a VS-Code extension
and it needs to extract compressed downloaded file.
You need this if you are having "wrong-type-argument stringp nil"
error when
calling dap-gdb-lldb-setup
. See emacs-lsp/dap-mode#313
DAP debuggers
Python
DAP expects ptvsd by default as the Python debugger, but debugpy is recommended. See Configuration.
installing ptvsd:
pip3 install ptvsd --user
install debugpy:
pip3 install debugpy --user
;; in $DOOMDIR/config.el
(after! dap-mode
(setq dap-python-debugger 'debugpy))
C, C++, Rust, Golang
TODO Usage
🔨 This module's usage documentation is incomplete. Complete it?
M-x +debugger/start
M-x +debugger/start-last
M-x +debugger/quit
Realgud
- Call
dap-gdb-lldb-setup
function. - Use
dap-debug-edit-template
to configure debugging settings for your project. Available settings can be inspected here. Calleval-buffer
to save your settings. Don't save the file! - Call
dap-debug
, select a configuration and start debugging.
dap-mode with +lsp
Intuitive and powerful debugging.
- Breakpoints
- REPL
- local variable view: Allows you to browse variables in the current stack frame.
- expressions: Add expressions to either watch variables or generic expressions.
Keybindings
(map! :map dap-mode-map
:leader
:prefix ("d" . "dap")
;; basics
:desc "dap next" "n" #'dap-next
:desc "dap step in" "i" #'dap-step-in
:desc "dap step out" "o" #'dap-step-out
:desc "dap continue" "c" #'dap-continue
:desc "dap hydra" "h" #'dap-hydra
:desc "dap debug restart" "r" #'dap-debug-restart
:desc "dap debug" "s" #'dap-debug
;; debug
:prefix ("dd" . "Debug")
:desc "dap debug recent" "r" #'dap-debug-recent
:desc "dap debug last" "l" #'dap-debug-last
;; eval
:prefix ("de" . "Eval")
:desc "eval" "e" #'dap-eval
:desc "eval region" "r" #'dap-eval-region
:desc "eval thing at point" "s" #'dap-eval-thing-at-point
:desc "add expression" "a" #'dap-ui-expressions-add
:desc "remove expression" "d" #'dap-ui-expressions-remove
:prefix ("db" . "Breakpoint")
:desc "dap breakpoint toggle" "b" #'dap-breakpoint-toggle
:desc "dap breakpoint condition" "c" #'dap-breakpoint-condition
:desc "dap breakpoint hit count" "h" #'dap-breakpoint-hit-condition
:desc "dap breakpoint log message" "l" #'dap-breakpoint-log-message)
TODO Configuration
🔨 This module has no configuration documentation yet. Write some?
Troubleshooting
- There is a known issue with the
+debugger/start
command, which is bound to SPC o d right now. It prints "No debugging session to quit" no matter what.
Frequently asked questions
This module has no FAQs yet. Ask one?
TODO Appendix
🔨 This module has no appendix yet. Write one?