为了调试 sbcl 内部,我尝试跟踪 sbcl 内部包。
例如我试过
(trace "SB-IMPL")
这会导致控制堆栈溢出。我尝试在启动 SBCL 时更改控制堆栈大小启动选项,但没有任何变化。
或者,我也尝试使用以下方法修改函数:(仅片段)
(setf (symbol-function s)
#'(lambda (&rest args)
;do something
;invoke original function
;do something more))
在 do-all-symbols 下仅适用于属于指定包的符号。
我仍然收到溢出错误。上面的代码显示绑定堆栈耗尽错误。可能有人可以解释如何控制绑定堆栈大小?
或者,如果有人可以指出如何在编译内部 SBCL 函数定义时更改它们也会很棒?在这种情况下,我可以使用该技巧从源代码重新编译 SBCL。