gpt4 book ai didi

emacs - 使用 leiningen 和 swank/slime 在 emacs 中运行 clojure 测试时停止无限循环

转载 作者:行者123 更新时间:2023-12-04 00:53:26 25 4
gpt4 key购买 nike

在某些类型的代码中,相对容易在不破坏堆栈的情况下导致无限循环。在使用 clojure-test 测试这种性质的代码时,有没有办法在不重新启动 swank 服务器的情况下中止当前正在运行的测试?

目前我的工作流程涉及

$ lein swank

使用 slime-connect 使用 emacs 连接到 swank ,并切换到测试,使用 C-c C-, 执行, 测试运行到无限循环,然后返回,但一个 cpu 仍在测试中运行。我发现阻止这种情况的唯一方法是重新启动 lein swank,但这似乎是一个相对常见的问题?有人有更好的解决方案吗?

最佳答案

是的,程序员在开发中写无限循环是一个常见的问题:)。答案很简单。它被称为“中断命令”,它是 C-c C-b
莱宁根与此无关。这是 SLIME/Swank/Clojure。当您在 Emacs 中评估代码时,您正在 Clojure 中生成一个新线程。 SLIME 保持对这些线程的引用,并向您显示在 Emacs 模式行中运行的线程数。如果您在图形环境中,您可以单击表示您的命名空间的模式行并查看许多选项。一种选择是“中断命令”

评估 (while true)C-c C-b获取显示 java.lang.ThreadDeath 的对话框错误可能只有一种选择。您可以输入 0q要退出该线程,请终止该错误消息缓冲区并将焦点返回到之前的缓冲区。

关于emacs - 使用 leiningen 和 swank/slime 在 emacs 中运行 clojure 测试时停止无限循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5113403/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com