Отладка Lisp & SLIME, ошибка «Не удается найти местоположение источника» - PullRequest
5 голосов
/ 09 октября 2011

Я написал код с ошибками.

Пример:

(print (/ 1 0))

Я пытаюсь скомпилировать с C-C C-C. И поймать ошибку с помощью стека кадров.

Я хочу видеть строку в коде, где произошла ошибка. Нажал 'v' в строке в кадре стека и обнаружил ошибку.

Error: Cannot find source location for: #<COMPILED-CODE-LOCATION 
(SB-C::VARARGS-ENTRY /)>  

Как мне перейти на строку в моем коде?

Скриншот : enter image description here

Ответы [ 2 ]

6 голосов
/ 09 октября 2011

Как видно из ошибки, строка, к которой вы хотите перейти, находится где-то в пакете SB-C, который является частью SBCL. Если у вас нет источников SBCL (вы установили двоичный файл или удалили их), вы должны получить их (в соответствии с вашей текущей версией SBCL) и затем связать их в .sbclrc, как это (согласно http://www.cliki.net/SLIME%20Features):

(setf (logical-pathname-translations "SYS") 
      '(("SYS:SRC;**;*.*.*" #P"/opt/sbcl/src/**/*.*")
        ("SYS:CONTRIB;**;*.*.*" #P"/opt/sbcl/contrib/**/*.*")))

Или просто скомпилируйте SBCL из исходного кода, и он узнает, где они находятся.

0 голосов
/ 05 марта 2012

Есть ли у вас (объявлять '(оптимизировать отладку)) выше этой строки где-нибудь? Эта функция гарантирует, что ваша система имеет все отладочные данные, которые она может получить.

...