El cliente/biblioteca de Emacs para el protocolo del adaptador de depuración es un protocolo de conexión para la comunicación entre el cliente y el servidor de depuración. Es similar al LSP pero proporciona integración con el servidor de depuración.
La API se considera inestable hasta que salga la versión 1.0. Está probado contra Java, Python, Ruby, Elixir y LLDB (C/C++/Objective-C/Swift).
Los principales puntos de entrada son dap-debug
y dap-debug-edit-template
. El primero solicita una plantilla de depuración registrada e inicia la configuración utilizando los valores predeterminados para esa configuración en particular. Este último crea una plantilla de depuración que se puede personalizar antes de ejecutarla. dap-debug-edit-template
preparará una declaración de plantilla dentro de un búfer temporal. Debe ejecutar este código usando CMx
para que se apliquen los cambios. También debes copiar este código en tu configuración de Emacs si deseas hacerlo persistente.
El modo dap también proporciona una hidra con dap-hydra
. Puede activar automáticamente la hidra cuando el programa llegue a un punto de interrupción utilizando el siguiente código.
( add-hook 'dap-stopped-hook
( lambda ( arg ) ( call-interactively # 'dap-hydra )))
También puede utilizar esta herramienta con servidores de depuración dockerizados: configúrelo con un archivo .dir-locals
o elimine un archivo de configuración .lsp-docker.yml
(use lsp-docker como referencia general). Básicamente, tiene una función dap-docker-register
que realiza todo el trabajo pesado (buscar la plantilla de depuración original, parchearla, registrar un proveedor de depuración, etc.). Esta función examina un archivo de configuración o recurre a la configuración predeterminada (que se puede parchear usando el enfoque .dir-locals
; tenga en cuenta que la configuración predeterminada no proporciona ningún valor predeterminado sensato para la depuración) y luego opera en la combinación de los dos. Este mecanismo es el mismo que en lsp-docker
.
Nota: actualmente no puede usar este modo cuando usa una conexión de red para conectarse a los depuradores (esta parte aún no se ha implementado). ¿Aún quieres hablar con los depuradores a través de la red? Para hacerlo, debe consultar el parche launch-args
realizado por dap-docker--dockerize-start-file-args
, debe asignar de alguna manera nil
a dap-server-path
antes de pasar a la creación de la sesión. .
Si desea ceñirse a un archivo de configuración, eche un vistazo al siguiente ejemplo:
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