我用错误编写了代码。
示例:
(print (/ 1 0))
我正在尝试使用C-c C-c进行编译。 并使用堆栈帧捕获错误。
我想在代码中看到发生错误的行。在堆栈框架中单击“v”并捕获错误。
Error: Cannot find source location for: #<COMPILED-CODE-LOCATION
(SB-C::VARARGS-ENTRY /)>
如何在代码中找到该行?
截图:
答案 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)
你是否(在某处上方宣布'(优化调试))?此函数将确保您的系统具有可以获得的所有调试数据。