【问题标题】:How to enable debugging messages in Juno (Julia editor)如何在 Juno(Julia 编辑器)中启用调试消息
【发布时间】:2018-11-29 22:42:23
【问题描述】:

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 的常见做法更好。

【问题讨论】:

    标签: debugging julia juno-ide


    【解决方案1】:

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

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

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

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

    禁用@debug

    ENV["JULIA_DEBUG"] = ""
    

    重要提示:加载代码时会评估宏。因此,上述技巧只会对更改JULIA_DEBUG 的值之后 加载的代码产生影响。因此,在将其设置为例如之后all,什么都不会改变。重新加载你想@debug的模块。

    【讨论】:

      【解决方案2】:

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

      # ... script ...
      
      ENV["JULIA_DEBUG"]="all"
      
      # debug messages are now enabled.
      # ... Rest of the script... 
      

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-11-17
        • 1970-01-01
        • 2010-10-29
        • 1970-01-01
        • 2023-04-02
        相关资源
        最近更新 更多