Emacs Lisp程序单步调试(五)

emacs运行过程中有时候会报错,这时我们需要对其进行debug(调试)。

打开调试开关

执行M-x toggle-debug-on-error打开debug开关,这样当emacs出错的时候会进入debug模式。

调试

例如,我们有以下程序,这里xyz是个未定义的函数:

(defun aborn/debug-demo ()
  "debug demo function"
  (interactive)
  (let ((a "a")
        (b "value b")
        (c 1))
    (debug)
    (message "middle")
    (setq c (+ 1 c))
    (xyz "a")
    (message "ggg")
    ))

常用命令

当处于debug模式时,最常用的调试命令如下:
c 退出当前debug中断,继续执行直到遇到下一个error或debug点时才再次进入debug模式;
d 单步执行,会进入函数内部;
e 求值,结果将会显示在minibuffer里;
R 与上面的e命令一样,不过它会将求值结果保存在*Debugger-record*这个buffer里;
q 退出debug,程序交由最上层的emacs接管。

调试过程

  • 在(debug)这句处,进入debug模式
    这时,我们执行命令e,对c这个变量进行求值,结果是1

    求值
  • 这时我们执行d表示一步步往下走,就走到(message "middle")这句里

一步步往下走
  • 继续按d往下走
    这时,执行(setq c (+ 1 c))

    函数求值
    执行完后,对c这个变量求值发现其值已经变成2
    �新值
  • 然后我们按c命令,到下一个debug点,发现报void-function的错误:


(void-function xyz)
下一个debug点
  • 最后,按q命令,退出debug。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值