A Debug Workflow in Emacs

使用 Doom Emacs 时有经常查看、学习、掌握某些命令、函数的用法的需求,也因此需要对某个函数进行单步调试的方法或工作流。

  1. 在对应的函数上启动 +emacs-lisp/edebug-instrument-defun-on 以打开调试;
  2. M-x 执行目标调试函数或者在 ielm 执行需要调试的函数,以 edebug-mode 进入调试函数代码体并暂停;
  3. 如果在 evil-mode normal 模式,最好 C-z 以进入 emacs-mode
  4. 断点操作:光标跳到一个位置执行 b 会对光标最近的 S-expression1 做断点操作;
  5. 回归当前断点/where:执行 w 回到当前断点处,也就是程序当前停的地方;
  6. 浏览下一断点: B 跳到下一个断点,持续 B 在该轮 edebug-mode 的下一个断点进行跳转;
  7. continue 到下一断点: c 对应 edebug-continue-mode
  8. emacs-mode 下,使用 SPC 来进行 step 操作,对应 edebug-step-mode
  9. 在对应的函数上启动 +emacs-lisp/edebug-instrument-defun-off 以取消调试;