Cider debug instructions告诉我,我可以在调试时按e
来评估某些内容。这让我在底部的Emacs迷你缓冲区中有一个小的单行空间。
有没有办法在中间切换到完整的REPL 调试一个功能,可以访问所有本地人等?目前 调试时挂起/冻结REPL。我在想什么 PyCharm或Matlab在某事物中间允许完整REPL的风格。
答案 0 :(得分:1)
看来,在调试过程中,插入的REPL被绑定了。
但是可以通过调试器提供一些选项
给你几乎和你一样离开REPL。一个方便的是
in finally
ect 为您即将生成的结果的新值。
因此,您实际上是在实时更改数据。
您可以使用await
检查本地变量的完整列表。然后看更多
关于 ins try
ect 的var并指定哪个。
你也可以 finally
val 输入任意表达
你会在REPL中(正如你所提到的那样)。这似乎是一个
单行完整REPL,包括历史,编辑等。有什么东西
您希望在REPL中执行j
或发现
使用l
或p
?
答案 1 :(得分:0)
我觉得非常令人沮丧的一件事是,当调试器停留在所述函数时,我无法编辑函数,然后编辑它并使用初始参数重新运行它。在苹果酒中,如果您尝试编辑正在调试的函数,emacs将使用原始代码在新缓冲区中打开bebugger。或者,你有e
命令可以摧毁迷你缓冲区中的东西,我不认为这是一种很棒的体验。我最接近的是:
想象一下,你有一些崩溃的功能,你需要调试:
(defn some-fn
[complex-data more-data]
; block of code with some bug
)
我将在命名空间中创建原子并在给定函数内设置值:
(def c (atom nil))
(def d (atom nil))
(defn some-fn
[complex-data more-data]
(reset! c complex-data)
(reset! d more-data)
; block of code with some bug
)
然后我只使用命名空间中现有的args迭代some-fn
。
(some-fn @c @d)
我认为这比使用苹果酒调试器中的eval命令和迷你缓冲区要好得多。