我正在使用SLIME和SBCL。通常在SBCL中,我可以执行(step (call-some-function 1 2 3))
并且我将能够逐步执行/进出每行代码,以及执行我自己的任意表达式以查看某些变量的当前状态。
但如果我尝试在SLIME的REPL中做同样的事情,我会得到:
Evaluating call:
(CP-GET-ALL-PE-MATCHES-ANY-LENGTH SENT-ID)
With arguments:
581869302
[Condition of type STEP-FORM-CONDITION]
Restarts:
0: [STEP-CONTINUE] Resume normal execution
1: [STEP-OUT] Resume stepping after returning from this function
2: [STEP-NEXT] Step over call
3: [STEP-INTO] Step into call
4: [ABORT] Exit debugger, returning to top level.
Backtrace:
0: (call-some-function 1 2 3)
...
似乎无法获得sent-id
的当前值或评估(nth 1 some-list)
。
事实上是这样,如果是这样,这是否意味着我将不得不在终端中启动第二个SBCL实例,并在SLIME中同时逐步执行该功能以获得此功能?
答案 0 :(得分:2)
当放入调试器时,您仍然可以在SLIME中使用REPL,我通常会这样做,例如何时发生错误。您只需切换到REPL缓冲区并键入即可。它最初没有显示提示,但是一旦你给它一个初始形式它就会显示。