erlang 为什么透析器在nocatch上失败?

sy5wg1nm  于 2022-12-08  发布在  Erlang
关注(0)|答案(1)|浏览(129)

I ran Dialyzer and got the following error:

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,[]}]}}

What went wrong and how do I fix it? What do the list of integers mean?

tag5nh1u

tag5nh1u1#

dialyzer_error元组中的输出是iolist,我们可以使用Erlang shell(以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>

你意识到它抱怨的字节码(.beam)来自一个以前的编译器版本,而不是我正在运行的当前版本。我删除了它们,然后它运行了。

相关问题