首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Common Lisp ECL中执行分步调试?

如何在Common Lisp ECL中执行分步调试?
EN

Stack Overflow用户
提问于 2020-02-26 11:42:31
回答 1查看 209关注 0票数 2

我正在学习使用ECL的Common Lisp。我尝试引用https://malisper.me/debugging-lisp-part-1-recompilation/作为调试方法,但步骤执行不能正常工作。

当我插入"( break )“并选择"RETRY”时,处理首先在break处停止。这是上面页面中显示的预期行为。

代码语言:javascript
复制
(defun fib (n)
  (break)
  (if (<= 0 n 1)
      (/ 1 0)
      (+ (fib (- n 1))
         (fib (- n 2)))))
代码语言:javascript
复制
Break
   [Condition of type SIMPLE-CONDITION]

下一次我按下S键时,显示了下面的错误消息,尽管它应该已经步进了。

代码语言:javascript
复制
SWANK/BACKEND: ACTIVATE-STEPPING not implemented
   [Condition of type SIMPLE-ERROR]

Restarts:
 0: [ABORT] Return to sldb level 1.
 1: [CONTINUE] Return from BREAK.
 2: [RETRY] ​​Retry SLIME REPL evaluation request.
 3: [* ABORT] Return to SLIME's top level.
 4: [ABORT] ABORT

这在ECL的实现中可能是一个问题,但我想知道ECL通常进行什么样的调试。

致以最好的问候,NOEU

EN

回答 1

Stack Overflow用户

发布于 2020-02-26 16:35:14

一种选择是: ECL中的STEP。使用:h查看步进器中的命令。

代码语言:javascript
复制
> (defun fib (n)                                                                                                             
    (if (<= 0 n 1)                                                                                                             
        (/ 1 0)                                                                                                                
        (+ (fib (- n 1))                                                                                                       
           (fib (- n 2)))))

FIB
> (step (fib 3))
 (FIB 3) -
 (BLOCK FIB ...) -
 (IF (<= 0 ...) ...) -
 (<= 0 ...) -
 (+ (FIB #) ...) -
 (FIB (- N ...)) -
 (- N ...) -
 (BLOCK FIB ...) -
 (IF (<= 0 ...) ...) -
 (<= 0 ...) -
 (+ (FIB #) ...) -
 (FIB (- N ...)) -
 (- N ...) -
 (BLOCK FIB ...) -
 (IF (<= 0 ...) ...) -
 (<= 0 ...) -
 (/ 1 ...) -

Condition of type: DIVISION-BY-ZERO
#<a DIVISION-BY-ZERO>

Available restarts:

1. (RESTART-TOPLEVEL) Go back to Top-Level REPL.

Broken at FIB. In: #<process TOP-LEVEL 0x104f16f80>.
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60406418

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档