为什么透析器在 nocatch 时失败?

Why does dialyzer fail on nocatch?

我 运行 透析器出现以下错误:

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

出了什么问题,我该如何解决?整数列表是什么意思?

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) 而不是我现在的 运行。我删除了它们,然后 运行.