Dape - 调试适配器协议的Emacs客户端
dape Debug Adapter Protocol for Emacs 项目地址: https://gitcode.com/gh_mirrors/da/dape
1. 项目介绍
Dape 是一个针对 Emacs 的调试适配器客户端。它采用了类似于语言服务器协议的调试适配器协议,旨在为编程工具建立一个通用的 API。不同于代码补全等功能,Dape 提供了一个用于调试器的标准化接口。
Dape 支持多种编程语言的调试适配器配置,并且不依赖于 Emacs 核心包之外的其他外部依赖。这使得 Dape 在 Emasc 环境中非常轻量且灵活。
2. 项目快速启动
快速启动 Dape 并开始调试会话,请按照以下步骤操作:
首先,确保你的 Emacs 环境已经配置好,然后执行以下代码来启动 Dape:
(use-package dape
:preface
;; 可以设置前缀快捷键,默认与 `gud` 相同
;;
;; (setq dape-key-prefix "\C-x\C-a")
:hook
;; 退出时保存断点
;;
;; (kill-emacs . dape-breakpoint-save)
;; 启动时加载断点
;;
;; (after-init . dape-breakpoint-load)
:config
;; 为设置断点启用全局鼠标绑定
;;
;; (dape-breakpoint-global-mode)
;; 将信息缓冲区放置在右侧
;;
;; (setq dape-buffer-window-arrangement 'right)
;; 类似于 gud (gdb-mi) 的信息缓冲区
;;
;; (setq dape-buffer-window-arrangement 'gud)
;; 在显示源代码时脉冲高亮行(性能影响)
;;
;; (add-hook 'dape-display-source-hook 'pulse-momentary-highlight-one-line)
;; 显示内联提示
;;
;; (setq dape-inlay-hints t)
;; 在启动时保存缓冲区,对于解释型语言很有用
;;
;; (add-hook 'dape-start-hook (lambda () (save-some-buffers t t)))
;; 构建成功后杀死编译缓冲区
;;
;; (add-hook 'dape-compile-hook 'kill-buffer)
;; 对于使用 Projectile 的用户
;;
;; (setq dape-cwd-function 'projectile-project-root)
)
配置完成后,可以通过以下命令开始调试会话:
M-x dape
在 minibuffer 提示符中,输入一个来自 dape-configs
的调试适配器配置名称。
3. 应用案例和最佳实践
以下是使用 Dape 的一些应用案例和最佳实践:
- 断点管理:使用鼠标点击或在 minibuffer 中输入条件来设置和管理断点。
- 变量探索:通过内置的变量浏览器查看和监视变量值。
- REPL 集成:集成 REPL 来进行交互式调试。
- 内存编辑器:使用
hexl
进行内存编辑。 - 反汇编查看器:查看代码的反汇编。
4. 典型生态项目
Dape 支持多种编程语言的调试适配器,以下是一些典型的生态项目:
- JavaScript:使用 vscode-js-debug。
- Go:使用 dlv。
- C, C++, Rust:使用 GDB 或 codelldb。
- Python:使用 debugpy。
- Dart:使用 flutter。
- Java:使用 JDTLS 和 Java Debug Server 插件。
这些项目都提供了与 Dape 集成的详细说明,可以在各自的官方文档中找到相关配置和启动指南。
dape Debug Adapter Protocol for Emacs 项目地址: https://gitcode.com/gh_mirrors/da/dape
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考