如何在Julia中找到导致错误的行?

时间:2015-07-22 23:41:09

标签: debugging julia

假设在Julia中有一个调用函数B的脚本A. 函数B中存在一些错误,导致脚本在运行时停止。 有没有一种巧妙的方法可以找出导致错误的行?

没有任何意义,必须在每行中手动放置println等消息,以找出代码存活的哪一行,以及发生哪一行错误。

编辑:我使用的是Linux Red Hat 4.1.2和Julia 0.3.6版。直。没有IDE。

1 个答案:

答案 0 :(得分:2)

阅读回溯:

juser@juliabox:~$ cat foo.jl
# line 1 empty comment
foo() = error("This is line 2")
foo() # line 3

juser@juliabox:~$ julia foo.jl
ERROR: This is line 2
 in foo at /home/juser/foo.jl:2
 in include at ./boot.jl:245
 in include_from_node1 at loading.jl:128
 in process_options at ./client.jl:285
 in _start at ./client.jl:354
while loading /home/juser/foo.jl, in expression starting on line 3

这一行in foo at /home/juser/foo.jl:2 ... while loading /home/juser/foo.jl, in expression starting on line 3读作:“2文件中/home/juser/foo.jl行的错误...加载/home/juser/foo.jl时,从3开始的表达式中出现错误1}}“

对我来说很清楚!

修改: /home/juser/foo.jl:2表示;档案:/home/juser/foo.jl,行号:2

此外,您可以使用@show宏而不是println函数进行调试:

julia> println(1 < 5 < 10)
true

julia> @show 1 < 5 < 10
(1<5<10) => true
true