我写的代码有缺陷。
例子:
(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](https://istack.dev59.com/usRbq.webp)
我写的代码有缺陷。
例子:
(print (/ 1 0))
我正在尝试使用C-c C-c进行编译。
并通过堆栈帧捕获错误。
我想看到代码中出现错误的行。在堆栈帧上点击'v',然后捕获错误。
Error: Cannot find source location for: #<COMPILED-CODE-LOCATION
(SB-C::VARARGS-ENTRY /)>
从错误信息可以看出,你想要跳转到的行在SB-C
包中,这是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/**/*.*")))
你在那行代码上面有没有写(proclaim '(optimize debug))?这个函数会确保你的系统获取到所有的调试数据。
C-c C-c
- 编译光标所在的顶层表单。 - Rusty Robot