调试Lisp& SLIME,错误“无法找到源位置”

时间:2011-10-09 08:59:16

标签: emacs lisp common-lisp slime sbcl

我用错误编写了代码。

示例:

(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 个答案:

答案 0 :(得分:6)

从错误中可以看出,您要跳转到的行位于包SB-C中的某个位置,它是SBCL的一部分。如果您没有SBCL源(您已经安装了二进制文件或删除了它们),您应该获取它们(与您当前的SBCL版本相关),然后在.sbclrc中将它们链接起来(根据{{ 3}}):

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

或者只是从源代码编译SBCL,它会知道它们在哪里。

答案 1 :(得分:0)

你是否(在某处上方宣布'(优化调试))?此函数将确保您的系统具有可以获得的所有调试数据。