我的一个线程进入了调试器。我想切换到它,期待堆栈跟踪,选择重启等等......我该怎么做?
我正在使用bordeaux-threads
。
答案 0 :(得分:5)
如果您使用SLIME,它应该自动运行。否则取决于您的实施。在SBCL中,(SB-THREAD:RELEASE-FOREGROUND)
应该让另一个线程使用终端。
SBCL manual, 12.8 Sessions/Debugging
在单个会话中,线程在它们之间进行仲裁以引起用户的注意。线程可能处于三种概念状态之一:前景,后台或停止。当后台进程尝试打印repl提示符或进入调试器时,它将停止并打印一条消息,表明它已停止。闲暇时的用户可以切换到该线程以找出它需要什么。如果后台线程进入调试器,选择任何重启将在恢复之前将其重新放回后台。通过调用sb-thread:get-foreground(可能阻塞)和sb-thread:release-foreground来管理输入流的仲裁。