假设在Julia中有一个调用函数B的脚本A. 函数B中存在一些错误,导致脚本在运行时停止。 有没有一种巧妙的方法可以找出导致错误的行?
没有任何意义,必须在每行中手动放置println等消息,以找出代码存活的哪一行,以及发生哪一行错误。
编辑:我使用的是Linux Red Hat 4.1.2和Julia 0.3.6版。直。没有IDE。
答案 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