Клиент/библиотека Emacs для протокола адаптера отладки — это проводной протокол для связи между клиентом и сервером отладки. Он похож на LSP, но обеспечивает интеграцию с сервером отладки.
API считается нестабильным до выхода версии 1.0. Он протестирован на Java, Python, Ruby, Elixir и LLDB (C/C++/Objective-C/Swift).
Основными точками входа являются dap-debug
и dap-debug-edit-template
. Первый запрашивает зарегистрированный шаблон отладки и запускает настройку, используя значения по умолчанию для этой конкретной конфигурации. Последний создает шаблон отладки, который можно настроить перед запуском. dap-debug-edit-template
подготовит объявление шаблона внутри временного буфера. Чтобы изменения вступили в силу, вам следует выполнить этот код с помощью CMx
. Вам также следует скопировать этот код в вашу конфигурацию Emacs, если вы хотите сделать его постоянным.
dap-mode также предоставляет гидру с помощью dap-hydra
. Вы можете автоматически запускать гидру, когда программа достигает точки останова, используя следующий код.
( add-hook 'dap-stopped-hook
( lambda ( arg ) ( call-interactively # 'dap-hydra )))
Вы также можете использовать этот инструмент с док-серверами отладки: настройте его либо с помощью файла .dir-locals
, либо удалите файл конфигурации .lsp-docker.yml
(для общей справки используйте lsp-docker). По сути, у вас есть одна функция dap-docker-register
, которая выполняет всю тяжелую работу (поиск исходного шаблона отладки, его исправление, регистрация поставщика отладки и т. д.). Эта функция проверяет файл конфигурации или возвращается к конфигурации по умолчанию (которую можно исправить с помощью подхода .dir-locals
; обратите внимание, что конфигурация по умолчанию не предоставляет никаких разумных значений по умолчанию для отладки), а затем работает с комбинацией эти двое. Этот механизм такой же, как и в lsp-docker
.
Примечание: в настоящее время вы не можете использовать этот режим при использовании сетевого подключения для подключения к отладчикам (эта часть еще не реализована). Все еще хотите общаться с отладчиками по сети? Для этого вам нужно посмотреть исправление launch-args
выполненное dap-docker--dockerize-start-file-args
, вам нужно каким-то образом назначить nil
для dap-server-path
прежде чем он будет передан дальше в создание сеанса. .
Если вы хотите придерживаться файла конфигурации, взгляните на пример ниже:
lsp :
server :
# 'lsp-docker' fields
mappings :
- source : " /your/host/source/path " # used both by 'lsp-docker' and 'dap-docker'
destination : " /your/local/path/inside/a/container " # used both by 'lsp-docker' and 'dap-docker'
debug :
type : docker # only docker is supported
subtype : image # or 'container'
name : <docker image or container that has the debugger in> # you can omit this field
# in this case the 'lsp-docker' ('server' section) image name is used
enabled : true # you can explicitly disable 'dap-docker' by using 'false'
provider : <your default language debug provider, double quoted string>
template : <your default language debug template, double quoted string>
launch_command : <an explicit command if you want to override a default one provided by the debug provider>
# e.g. if you have installed a debug server in a different directory, not used with 'container' subtype debuggers