2011-10-09 15 views
5

He escrito el código con errores.Depuración Lisp y SLIME, error "No se puede encontrar la ubicación de origen"

Ejemplo:

(print (/ 1 0)) 

Estoy intentando compilar con C-C C-C. Y capte el error con el marco de pila.

Quiero ver la línea en el código donde ocurrió un error. Haga clic en 'v' en línea en el marco de la pila y el error atrapado.

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

¿Cómo puedo acceder a la línea en mi código?

pantalla: enter image description here

+0

¿Qué quiere decir con que compila con C-c C-c? ¿Esa combinación de teclas está ligada a slime-compile-file? –

+0

'C-c C-c' - Compila el formulario de nivel superior en el punto. –

Respuesta

6

Como se puede ver en el error, la línea que desea saltar, está en algún lugar en el paquete SB-C, que es parte de SBCL. Si no tiene fuentes SBCL (ha instalado un archivo binario o las ha eliminado), debe obtenerlas (relevantes para su versión SBCL actual) y luego vincularlas en .sbclrc de esta manera (según http://www.cliki.net/SLIME%20Features):

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

O simplemente compila SBCL desde la fuente y sabrá dónde están.

+0

Lo siento, estoy confundido y no agrego un error correcto, lo soluciono. –

+0

De todos modos, la solución debería ser la misma. –

+0

Configuración (sb-ext: set-sbcl-source-location "/ ruta/a/sbcl/fuente /") en .sbclrc. Fuente: Encontrar fuentes de SBCL [link] (http://xach.livejournal.com/300290.html) –

0

¿Tiene (proclaim '(optimización de depuración)) por encima de esa línea en algún lugar? Esta función asegurará que su sistema tenga todos los datos de depuración que pueda obtener.

Cuestiones relacionadas