0

我刚刚安装了 Slimv 以最大化 lisp 黑客攻击,但我无法从调试器中获得任何有用的东西。

如果我输入 REPL

(+ 1 a)

我收到以下错误,这很好

EVAL: variable A has no value
   [Condition of type SYSTEM::SIMPLE-UNBOUND-VARIABLE]

...并且伴随着疯狂的回溯

Backtrace:

0: [520] frame binding variables (~ = dynamically):  | ~ SWANK::*SLDB-STEPPING-P* <--> NIL 
    No locals
1: [517] frame binding variables (~ = dynamically):  | ~ SWANK::*SLDB-LEVEL* <--> 0
2: [514] frame binding variables (~ = dynamically):  | ~ *PACKAGE* <--> #<PACKAGE COMMON-LISP-USER>
3: <1/507> #<COMPILED-FUNCTION SWANK::DEBUG-IN-EMACS>[506] frame binding variables (~ = dynamically):  | ~ SWANK::*SLIME-INTERRUPTS-ENABLED* <--> T
4: <1/501> #<COMPILED-FUNCTION SWANK:INVOKE-SLIME-DEBUGGER>- #<COMPILED-FUNCTION SWANK::SWANK-DEBUGGER-HOOK-2-1>
5: <1/499> #<COMPILED-FUNCTION SWANK::SWANK-DEBUGGER-HOOK-2-1>- #<COMPILED-FUNCTION SWANK::SWANK-DEBUGGER-HOOK-2-1>
6: [498] frame binding variables (~ = dynamically):  | ~ *DEBUGGER-HOOK* <--> NIL
7: <1/494> #<COMPILED-FUNCTION #:|877 882 (DEFINTERFACE CALL-WITH-DEBUGGER-HOOK (HOOK FUN) ...)-84-3-1|>- #<COMPILED-FUNCTION #:|877 882 (DEFINTERFACE CALL-WITH-DEBUGGER-HOOK (HOOK FUN) ...)-84-3-1|>
8: <1/489> #<COMPILED-FUNCTION SWANK-BACKEND:CALL-WITH-DEBUGGER-HOOK>- #<COMPILED-FUNCTION SWANK::SWANK-DEBUGGER-HOOK-2>
9: <1/486> #<COMPILED-FUNCTION SWANK::SWANK-DEBUGGER-HOOK-2>- #<COMPILED-FUNCTION SWANK::SWANK-DEBUGGER-HOOK-2>
10: [485] handler frame for conditions SWANK::INVOKE-DEFAULT-DEBUGGER
11: [479] compiled tagbody frame for #(NIL)
12: <1/473> #<COMPILED-FUNCTION SWANK:SWANK-DEBUGGER-HOOK>[471] frame binding variables (~ = dynamically):  | ~ *DEBUGGER-HOOK* <--> #<COMPILED-FUNCTION SWANK:SWANK-DEBUGGER-HOOK>
13: <1/468> #<SYSTEM-FUNCTION INVOKE-DEBUGGER> 1[467] frame binding variables (~ = dynamically):  | ~ SYSTEM::*PRIN-STREAM* <--> #<UNBOUND>
14: [464] frame binding variables (~ = dynamically):  | ~ *PRINT-READABLY* <--> NIL
15: [461] frame binding variables (~ = dynamically):  | ~ *PRINT-ESCAPE* <--> T
16: <1/458> #<SYSTEM-FUNCTION ERROR>[457] frame binding variables (~ = dynamically):  | ~ SYSTEM::*ACTIVE-RESTARTS* <--> (#S(RESTART :NAME SWANK::RETRY :TEST #<COMPILED-FUNCTION SYSTEM::DEFAULT-RESTART..
17: [454] frame binding variables (~ = dynamically):  | ~ SYSTEM::*CONDITION-RESTARTS* <--> NIL
18: [450] compiled block frame for SYSTEM::CHECK-VALUE
19: <1/445> #<COMPILED-FUNCTION SYSTEM::CHECK-VALUE>- NIL ~

那么,到底发生了什么,我该如何解决呢?

4

1 回答 1

0

好吧,这与调试器一起工作,然后进入正常模式(按 ESC)

和:

如果将光标放在 Backtrace: 部分中的编号行上并按 Enter 键(在正常模式下),则会显示帧局部变量:

如果在 Restarts: 部分的编号行上按 Enter,则执行相应的重新启动。最常用的重启都有自己的键盘快捷键:,a 选择 Abort,,q 选择 Quit,,n 选择 contiNue 重启。让我们选择restart 1: [*ABORT] 按 ,a 返回 SLIME 的顶层:

您可以通过 slimv教程了解更多信息

于 2015-09-29T20:19:09.940 回答