Backv трассировка Slimv не показывает локальные переменные

Я только что установил 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 ~

Итак, что, черт возьми, происходит, и как я могу это исправить?

1 ответ

Ну, это работает с отладчиком, затем перейдите в обычный режим (нажмите ESC)

а также:

Если вы поместите курсор на пронумерованную строку в разделе Backtrace: и нажмете Enter (в обычном режиме), то отобразятся локальные кадры:

Если вы нажмете Enter на пронумерованной строке в разделе Restarts: тогда будет выполнен соответствующий перезапуск. Наиболее часто используемые перезагрузки имеют свои собственные сочетания клавиш:, a выбирает прерывание, q выбирает выход и n выбирает повторный запуск. Давайте выберем перезагрузку 1: [*ABORT] Вернитесь на верхний уровень SLIME, нажав, a:

вы можете узнать больше об этом с помощью учебника по SlimV

Другие вопросы по тегам