Klien/perpustakaan Emacs untuk Protokol Adaptor Debug adalah protokol kabel untuk komunikasi antara klien dan Server Debug. Ini mirip dengan LSP tetapi menyediakan integrasi dengan server debug.
API dianggap tidak stabil hingga rilis 1.0 keluar. Ini diuji terhadap Java, Python, Ruby, Elixir dan LLDB (C/C++/Objective-C/Swift).
Titik masuk utamanya adalah dap-debug
dan dap-debug-edit-template
. Yang pertama meminta template debug terdaftar dan memulai konfigurasi menggunakan nilai default untuk konfigurasi tertentu. Yang terakhir membuat template debug yang dapat dikustomisasi sebelum dijalankan. dap-debug-edit-template
akan menyiapkan deklarasi templat di dalam buffer sementara. Anda harus menjalankan kode ini menggunakan CMx
agar perubahan dapat diterapkan. Anda juga harus menyalin kode ini ke dalam konfigurasi Emacs Anda jika Anda ingin membuatnya tetap ada.
dap-mode juga menyediakan hydra dengan dap-hydra
. Anda dapat memicu hydra secara otomatis ketika program mencapai breakpoint dengan menggunakan kode berikut.
( add-hook 'dap-stopped-hook
( lambda ( arg ) ( call-interactively # 'dap-hydra )))
Anda juga dapat menggunakan alat ini dengan server debug yang di-docker: konfigurasikan dengan file .dir-locals
atau letakkan file konfigurasi .lsp-docker.yml
(gunakan lsp-docker untuk referensi umum). Pada dasarnya Anda memiliki satu fungsi dap-docker-register
yang melakukan semua pekerjaan berat (menemukan template debug asli, menambalnya, mendaftarkan penyedia debug, dll). Fungsi ini memeriksa file konfigurasi atau kembali ke konfigurasi default (yang dapat ditambal menggunakan pendekatan .dir-locals
, perhatikan bahwa konfigurasi default tidak memberikan default yang masuk akal untuk debugging) dan kemudian beroperasi pada kombinasi keduanya. Mekanisme ini sama seperti di lsp-docker
.
Catatan: saat ini Anda tidak dapat menggunakan mode ini ketika menggunakan koneksi jaringan untuk terhubung ke debugger (bagian ini belum diterapkan). Masih ingin berbicara dengan debugger melalui jaringan? Untuk melakukannya, Anda harus melihat patching launch-args
yang dilakukan oleh dap-docker--dockerize-start-file-args
, Anda harus menetapkan nil
ke dap-server-path
sebelum diteruskan lebih jauh ke pembuatan sesi .
Jika Anda ingin tetap menggunakan file konfigurasi, lihat contoh di bawah ini:
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