[erlang-questions] beginner: dialyzer for the first time
Bengt Kleberg
bengt.kleberg@REDACTED
Thu Sep 15 11:21:25 CEST 2011
Thank you for the explanation.
Is there a reason that this PLT (for the Erlang standard library) is not
included with the Erlang standard library?
ebngt
On Thu, 2011-09-15 at 11:14 +0200, Kostis Sagonas wrote:
> On 09/15/11 11:50, Bengt Kleberg wrote:
> >
> > When I want to use dialyzer on some Erlang source files for the first
> > time I do:
> > dialyzer --src *erl
> >
> > This gives me the error:
> > Checking whether the PLT /home/<user>/.dialyzer_plt is
> > up-to-date...dialyzer: exit 1
> >
> > dialyzer: Could not find the PLT: /home/<user>/.dialyzer_plt
> > Use the options:
> > --build_plt to build a new PLT; or
> > --add_to_plt to add to an existing PLT
> >
> >
> > So I try:
> > dialyzer --build_plt --src *erl
> >
> > This gives me the error:
> > dialyzer: {dialyzer_error,"Byte code compiled with debug_info is needed
> > to build the PLT"}
> > ...
> >
> > What should I do next? The goal is to use dialyzer on some Erlang source
> > files.
>
> You have misunderstood the (main) purpose of the PLT. It is intended to
> contain type information for modules of the Erlang standard library (so
> that this information is known to the analysis), not the files you want
> to analyze. The message you get is more helpful in later versions (e.g.
> R13B*) and reads as follows:
>
> =======================================================================
> dialyzer: Could not find the PLT: /home/USER/.dialyzer_plt
> Use the options:
> --build_plt to build a new PLT; or
> --add_to_plt to add to an existing PLT
>
> For example, use a command like the following:
> dialyzer --build_plt --apps erts kernel stdlib mnesia
> Note that building a PLT such as the above may take 20 mins or so
>
> If you later need information about other applications, say crypto,
> you can extend the PLT by the command:
> dialyzer --add_to_plt --apps crypto
> For applications that are not in Erlang/OTP use an absolute file name.
> =======================================================================
>
> Execute the line:
>
> dialyzer --build_plt --apps erts kernel stdlib
>
> first and then you can analyze your files in the way you started:
>
> dialyzer --src *.erl
>
> Kostis
> _______________________________________________
> erlang-questions mailing list
> erlang-questions@REDACTED
> http://erlang.org/mailman/listinfo/erlang-questions
More information about the erlang-questions
mailing list