Julia docs非常清楚如何启用来自@debug
宏的调试消息,即在启动Julia之前在命令行上运行export JULIA_DEBUG=mymodule
或export JULIA_DEBUG=all
。但是,是否有一种简单的方法可以从Juno内部(或更一般而言,在Julia运行时)启用调试?
我尝试摆弄Base.CoreLogging.disable_logging
,Base.CoreLogging.BelowMinLevel
和Base.CoreLogging._min_enabled_level
都没有成功。
我知道我可以在Juno设置中为Julia设置环境变量。但这很烦人,因为它需要重新启动Julia。我真的很想在交互工作时具有以下工作流程:
我认为这比在各处注释和取消注释printf
的常规做法要好。
答案 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消息。