最近在分析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 退出