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

时间:2018-11-29 22:42:24

标签: debugging julia juno-ide

Julia docs非常清楚如何启用来自@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的常规做法要好。

2 个答案:

答案 0 :(得分:1)

在任何地方启用@debug(这只会影响运行以下表达式的 之后加载的代码):

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

启用文件@debug中的foo.jl(根据文档,尚未测试):

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

禁用@debug

ENV["JULIA_DEBUG"] = ""

重要说明:加载代码时会评估宏。因此,上述技巧仅对更改JULIA_DEBUG的值 之后加载的代码有效。所以将其设置为例如all,什么都不会改变。重新加载您要@debug的模块。

答案 1 :(得分:0)

要在julia脚本中启用@debug消息登录,

# ... script ...

ENV["JULIA_DEBUG"]="all"

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

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