如何在lisp中查找发生堆栈溢出的位置?

如何在lisp中查找发生堆栈溢出的位置?,lisp,clisp,Lisp,Clisp,我得到:***-程序堆栈溢出。重置在REPL中运行一些lisp。我看到了关于如何修改堆栈大小的各种建议,但是。。。如何找到导致溢出的函数?看来答案可能是否定的,或者至少不容易找到 查看此信息:唯一的方法是在gdb下运行,设置一个中断SP\u ueber并在到达断点时使用回调跟踪(0,0)。使用一些常用的调试工具怎么样?回溯、跟踪、步骤……?发生这种情况时,它不会将您放入调试器吗?您应该能够使用调试器的backtrace命令来显示堆栈,并且具有无限递归的函数应该像拇指一样突出。它似乎重置了REPL

我得到:
***-程序堆栈溢出。重置
在REPL中运行一些lisp。我看到了关于如何修改堆栈大小的各种建议,但是。。。如何找到导致溢出的函数?

看来答案可能是否定的,或者至少不容易找到


查看此信息:

唯一的方法是在
gdb
下运行,设置一个中断
SP\u ueber
并在到达断点时使用
回调跟踪(0,0)

使用一些常用的调试工具怎么样?回溯、跟踪、步骤……?发生这种情况时,它不会将您放入调试器吗?您应该能够使用调试器的backtrace命令来显示堆栈,并且具有无限递归的函数应该像拇指一样突出。它似乎重置了REPL。我看到的只是另一个编号为1的REPL提示符。我猜这就是重置的意思?很可能是调试器提示。您是否阅读过手册?您链接到的消息回答了另一个问题:如何检测即将发生的堆栈溢出,不是如何调试实际的SO。那里的讨论似乎向我表明,运行时没有调试实际SO的方法,因为此时没有堆栈可以运行任何东西来调试它。