3

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

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

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

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

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

4

2 回答 2

3

随处启用@debug(这只会影响运行以下表达式后加载的代码):

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

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

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

禁用@debug

ENV["JULIA_DEBUG"] = ""

重要说明:加载代码时会评估宏。所以上面的技巧只会对改变JULIA_DEBUG. 因此,将其设置为 eg 后all,什么都不会改变。重新加载您想要的模块@debug

于 2018-11-29T22:42:23.927 回答
0

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

# ... script ...

ENV["JULIA_DEBUG"]="all"

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

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

于 2018-11-30T13:51:12.400 回答