dgt*_*zed 12 emacs clojure slime swank leiningen
在某些类型的代码中,相对容易在不吹动堆栈的情况下导致无限循环.使用clojure-test测试这种性质的代码时,有没有办法在不重启swank服务器的情况下中止当前运行的测试?
目前我的工作流程涉及到
$ lein swank
Run Code Online (Sandbox Code Playgroud)
使用emacs连接到swank slime-connect
,然后切换到测试,执行C-c C-,
,测试运行直到无限循环,然后返回,但是一个cpu仍然在测试中流失.我发现阻止这种情况的唯一方法是重新启动lein swank,但似乎这是一个相对常见的问题?谁有更好的解决方案?
Psy*_*llo 13
是的,程序员在开发中编写无限循环是一个常见的问题:).答案很简单.它被称为"中断命令",它就是C-c C-b
莱宁根与此毫无关系.这是SLIME/Swank/Clojure.在Emacs中评估代码时,您将在Clojure中生成一个新线程.SLIME保留对这些线程的引用,并显示在Emacs模式行中运行的线程数.如果您在图形环境中,可以单击指示命名空间的模式行,并查看许多选项.一个选项是"中断命令"
Eval (while true)
并C-c C-b
获得一个显示java.lang.ThreadDeath
错误的对话框,可能只有一个选项.您可以键入0
或q
退出该线程,终止该错误消息缓冲区并将焦点返回到先前的缓冲区.
归档时间: |
|
查看次数: |
2475 次 |
最近记录: |