Álv*_*gas 5 r rstudio julia juno-ide
我想知道是否有与RStudiobrowser()中可用的语句等效的语句用于 Julia 的调试目的(我目前正在使用 Juno IDE)。
该R函数在被调用时browser()停止执行并调用 an 。environment browser因此,原则上,我们可以将browser()代码中的任何位置放置在该特定行中,并查看当时环境中存储的内容,这对于调试目的非常有用。
例如,下面的代码将在 时停止i>3。因此,这正是我们将environment browser在 RStudio 中看到的内容,我们将i=4在代码中观察到这一点。
for (i in 1:5) {
print(i)
if (i>3) {
browser()
}
}
[1] 1
[1] 2
[1] 3
[1] 4
Called from: eval(ei, envir)
Browse[1]>
Run Code Online (Sandbox Code Playgroud)
看一下Debugger.jl。具体来说,在源代码中放置断点部分:
\n\n\n有时在源代码中选择何时中断会更方便。例如,在 Matlab/Octave 中使用键盘完成此操作,在 R 中使用 browser() 完成此操作。您可以使用 @bp 宏来执行此操作
\n
您的 R 示例已翻译为 Julia:
\njulia> using Debugger\n\njulia> @run for i in 1:5\n println(i)\n if i > 3\n @bp\n end\n end\n1\n2\n3\n4\nHit breakpoint:\nIn ##thunk#257() at REPL[4]:1\n 9 \xe2\x94\x82 Base.println(i)\n 10 \xe2\x94\x82 %10 = i > 3\n 11 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 goto #4 if not %10\n\xe2\x97\x8f12 3 \xe2\x94\x80 nothing\n>13 4 \xe2\x94\x84 @_2 = Base.iterate(%1, %8)\n 14 \xe2\x94\x82 %14 = @_2 === nothing\n 15 \xe2\x94\x82 %15 = ($(QuoteNode(Core.Intrinsics.not_int)))(%14)\n 16 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 goto #6 if not %15\n 17 5 \xe2\x94\x80 goto #2\n\nAbout to run: (iterate)(1:5, 4)\n1|debug>\nRun Code Online (Sandbox Code Playgroud)\n这是Julia的通用解决方案,Juno IDE还集成了调试:调试、Juno手册。
\n