如何在 Juno 中启用调试消息(Julia 编辑器)

How to enable debugging messages in Juno (Julia editor)

Julia docs 非常清楚如何启用来自 @debug 宏的调试消息,即之前命令行上的 运行 export JULIA_DEBUG=mymoduleexport JULIA_DEBUG=all开始朱莉娅。但是,有没有一种简单的方法可以在 Juno 中启用调试,或者更一般地说,当 Julia 运行ning 时?

我尝试摆弄 Base.CoreLogging.disable_loggingBase.CoreLogging.BelowMinLevelBase.CoreLogging._min_enabled_level 但没有成功。

我知道我可以在 Juno 设置中为 Julia 设置环境变量。但这有点烦人,因为它需要重新启动 Julia。我真的很想在交互工作时有以下工作流程:

  1. 在REPL中输入一行
  2. 在您自己的代码中偶然发现一个您没有发现的错误。
  3. 启用调试。
  4. 运行 又是那一行。
  5. 查看调试日志。
  6. 修正您的代码。
  7. 再次禁用调试日志记录。

我认为这比随处评论和取消评论的常见做法更好printf

Enable @debug everywhere(这只会影响代码加载after 运行以下表达式):

julia>ENV["JULIA_DEBUG"] = "all"

在文件 foo.jl 中启用 @debug(根据文档,尚未对此进行测试):

julia>ENV["JULIA_DEBUG"] = "foo"

禁用@debug:

ENV["JULIA_DEBUG"] = ""

重要说明:加载代码时会计算宏。因此,上面的技巧只会对 更改 JULIA_DEBUG 的值后加载的代码有效。所以在将它设置为例如之后all,什么都不会改变。重新加载你想要 @debug.

的模块

要在您的 julia 脚本中启用@debug 消息记录:

# ... script ...

ENV["JULIA_DEBUG"]="all"

# debug messages are now enabled.
# ... Rest of the script... 

当 运行 Juno 中的脚本或 运行 来自终端的 Julia 脚本时,添加 ENV["JULIA_DEBUG"]="all" 将启用 @debug 消息。