Проверка переменной в отладчике lisp SLIME - PullRequest
7 голосов
/ 08 октября 2011

Я пытаюсь проверить значение переменной в определенной точке останова. Вот мой упрощенный код:

(defun foo ()
  (maplist (lambda (var)
        (break)
        var)
      '(a b c)))
На этом этапе

slime переходит в режим отладчика. Поэтому я пытаюсь вычислить нажатием клавиши «:» или «e», а затем набираю «(car var)», но слизь продолжает говорить:

Переменная VAR не связана. [Состояние типа UNBOUND-VARIABLE]

Я не понимаю, почему он говорит это, поскольку "(перерыв)" находится внутри анонимной функции и находится в области действия "var".

1 Ответ

4 голосов
/ 08 октября 2011

Это работает для меня под CCL и CLisp.Я думаю, работает ли это, зависит от вашей реализации и, возможно, ваших OPTIMIZE настроек.Вы можете попробовать:

(declaim (optimize (debug 3)))

Вам придется потом перекомпилировать свой код, чтобы он вступил в силу.

Или, может быть, если ваша реализация поддерживает интерпретацию, вы можете попробовать это, так как некоторыереализации обеспечивают лучшие возможности отладки для интерпретируемого, чем для скомпилированного кода.

...