emacs+slime+sbcl 单步调试

(defun next (x y) (/ (+ x y) 2))
(defun square (x) (* x x))


(defun sqrt-r(a b x)
  (declare (optimize
            (debug 3)
            (speed 0)
            (space 0)
            (compilation-speed 0)
            (safety 3)))
  (format t "~A ~A ~A~%" a b x)
  (let ((nex (next a b)))
    (new-if (< (- b a) 0.00001)
             nex
             (if (> (square nex) x)
                 (sqrt-r a nex x)
                 (sqrt-r nex b x)))))

(defun new-if (predicate then-clause else-clause)
  (cond (predicate then-clause)
        (t else-clause)))


(step (sqrt-r 1.0 2.0 2.0))


    这段程序会无限循环。要单步调试,需要加入下面这段程序,才能进入单步调试。

(declare (optimize
            (debug 3)
            (speed 0)
            (space 0)
            (compilation-speed 0)
            (safety 3)))
在emacs中,输入C-x e,然后s是单步调试,v是查看程序运行到的源程序部分。其他命令C-h m就行了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值