如何从 REPL 调试控制台应用程序?

How to debug a console app from the REPL?

日常开发使用emacs+cider真的很舒服。我在文本编辑器中配置的所有内容都非常适合这项任务。

我目前在业余时间从事的项目是文本编辑器我已经用 C++ 实现了一个,并且我使用 gdb 从 emacs 调试 。为了 运行 它,我在 gdb 缓冲区中输入了 set new-console onrun。这将 弹出一个新控制台来处理所有 I/O

现在我正尝试在 Clojure 中重新实现它。到目前为止,我最关心的问题之一是调试。我认为这与我在 gdb.

中使用的类似

对于无缓冲读取键盘,我使用JLine。这意味着 read-line 不会提供所需的结果。

调试此类应用程序的合理方法是什么(从控制台大量I/O)?

如何从emacs/cider中优先选择?

如果这很重要,我正在使用 lein。


P.S.:这是我做的similar question,更宽泛的"intend"。我觉得值得一看

CIDER 具有出色的 debugger nowadays. See also this screenshot

对您来说最简单的事情可能是创建一个 lein/boot 构建配置文件,其中包括 nREPL 和 CIDER 作为依赖项并使用 embedded CIDER instance。这将使您 运行 您的应用程序 "standalone" 从终端获得无缓冲键盘 I/O,并且您可以通过 M-x cider-connect 连接到嵌入式 nREPL+ CIDER 实例以像往常一样充分利用调试器和代码加载。