为什么透析器在Nocatch上失败?

时间:2019-11-13 11:00:15

标签: erlang dialyzer

我运行了Dialyzer并出现以下错误

Checking whether the PLT /tmp/.BRANCH.service.deps.plt is up-to-date...{"init terminating in do_boot",{{case_clause,{{nocatch,{dialyzer_error,[78,111,116,32,97,32,114,101,103,117,108,97,114,32,102,105,108,101,58,32,"/usr/lib/erlang/lib/compiler-6.0.3/ebin/beam_a.beam",10]}},[{dialyzer_plt,compute_md5_from_file,1,[{file,"dialyzer_plt.erl"},{line,543}]},{dialyzer_plt,compute_new_md5_1,3,[{file,"dialyzer_plt.erl"},{line,509}]},{dialyzer_plt,check_plt1,3,[{file,"dialyzer_plt.erl"},{line,485}]},{dialyzer_plt,'-subproc/1-fun-0-',1,[{file,"dialyzer_plt.erl"},{line,603}]}]}},[{dialyzer_cl,check_plt,3,[{file,"dialyzer_cl.erl"},{line,249}]},{dialyzer_cl,plt_common,3,[{file,"dialyzer_cl.erl"},{line,182}]},{dialyzer,'-cl_check_init/1-fun-0-',1,[{file,"dialyzer.erl"},{line,94}]},{dialyzer,doit,1,[{file,"dialyzer.erl"},{line,236}]},{dialyzer,plain_cl,0,[{file,"dialyzer.erl"},{line,75}]},{init,start_em,1,[]},{init,do_boot,3,[]}]}}

1 个答案:

答案 0 :(得分:1)

dialyzer_error元组中的打印内容是iolist。我们可以使用erl

进行漂亮的打印
1> [78,111,116,32,97,32,114,101,103,117,108,97,114,32,102,105,108,101,58,32].
"Not a regular file: "
2>

您意识到它正在抱怨比我正在运行的当前版本更早的编译器版本的光束。我将其删除,然后运行完美。