Emacs elisp 调试技巧总结

最近在分析python-bridge源码,想搞清楚在windows上卡顿的原因,需要仔细分析代码,看了下emacs官方文档,发现对调试写得非常好,常见的技巧都讲到了,结合网上搜到其他大佬的文章,总结了一下。

1 emacs 调试相关的启动参数

-Q 				不加载任何配置
--init-directory 指定init文件路径
--debug-init 		在加载init文件时启用调试器

2 使用debug调试器

触发调试器

M-x toggle-debug-on-error		出现错误时显示栈回溯
(setq debug-on-message "welcome who")        当message匹配正则的时候触发
M-x debug-on-entry				在指定函数入口启动调试器
(setq debug-on-quit t)			当C-g时启动调试器,常用于调试无限循环
(debug)							插入到代码中,执行时触发启动调试器

调试器操作

d 		单步执行
q       退出

3 使用edebug源码调试器

对函数插桩,当执行到函数时会自动启动edebug调试器

edebug-defun		用法类似于C-x C-e
C-h f 				在helpful页面,有启用edebug的按钮

调试操作

空格				单步
q 				退出
9 个赞

有没有关于emacs调试的例子或者示例教程,看文档总搞不会

用了很久emacs了 还没调试过 想学习一下 是类似断点的方式 还是日志的方式啊