31
31
<modulesummary>The Dialyzer, a DIscrepancy AnalYZer for ERlang programs</modulesummary>
33
33
<p>The Dialyzer is a static analysis tool that identifies software
34
discrepancies such as type errors, unreachable code, unnecessary
35
tests, etc in single Erlang modules or entire (sets of)
34
discrepancies such as definite type errors, code which has become
35
dead or unreachable due to some programming error, unnecessary
36
tests, etc. in single Erlang modules or entire (sets of)
36
37
applications. Dialyzer starts its analysis from either
37
38
debug-compiled BEAM bytecode or from Erlang source code. The file
38
39
and line number of a discrepancy is reported along with an
67
68
[-pa dir]* [--plt plt] [-Ddefine]* [-I include_dir]*
68
69
[--output_plt file] [-Wwarn]* [--src]
69
70
[-c applications] [-r applications] [-o outfile]
70
[--build_plt] [--add_to_plt] [--remove_from_plt] [--check_plt]
71
[--build_plt] [--add_to_plt] [--remove_from_plt]
72
[--check_plt] [--no_check_plt] [--plt_info] [--get_warnings]
98
99
<item>Include <c><![CDATA[dir]]></c> in the path for Erlang. Useful when analyzing files
99
100
that have <c><![CDATA[-include_lib()]]></c> directives.</item>
100
101
<tag><c><![CDATA[--output_plt file]]></c></tag>
101
<item>Store the plt at the specified location after building it.</item>
102
<item>Store the PLT at the specified location after building it.</item>
102
103
<tag><c><![CDATA[--plt plt]]></c></tag>
103
<item>Use the specified plt as the initial plt.</item>
104
<item>Use the specified plt as the initial persistent lookup table.</item>
104
105
<tag><c><![CDATA[-Wwarn]]></c></tag>
105
106
<item>a family of option which selectively turn on/off warnings.
106
107
(for help on the names of warnings use <c><![CDATA[dialyzer -Whelp]]></c>)</item>
115
116
<tag><c><![CDATA[--verbose]]></c></tag>
116
117
<item>makes Dialyzer a bit more verbose</item>
117
118
<tag><c><![CDATA[--check_plt]]></c></tag>
118
<item>Only checks if the init plt is up to date and rebuilds it if this is not the case</item>
119
<tag><c><![CDATA[--no_check_plt]]></c></tag>
120
<item>Skip the plt check when running Dialyzer. Useful when working with installed plts that never change.</item>
119
<item>Only checks if the initial PLT is up to date and rebuilds it if this is not the case</item>
120
<tag><c><![CDATA[--no_check_plt (or -n)]]></c></tag>
121
<item>Skip the PLT integrity check when running Dialyzer.
122
Useful when working with installed PLTs that never change.</item>
121
123
<tag><c><![CDATA[--build_plt]]></c></tag>
122
<item>The analysis starts from an empty plt and creates a new one from the
123
files specified with -c and -r. Only works for beam files.
124
Use --plt or --output_plt to override the default plt location.</item>
124
<item>The analysis starts from an empty PLT and creates a new one from
125
the files specified with -c and -r. Only works for beam files.
126
Use --plt or --output_plt to override the default PLT location.</item>
125
127
<tag><c><![CDATA[--add_to_plt]]></c></tag>
126
<item> The plt is extended to also include the files specified with
127
-c and -r. Use --plt to specify wich plt to start from, and --output_plt
128
to specify where to put the plt. Note that the analysis might include
129
files from the plt if they depend on the new files.
128
<item> The PLT is extended to also include the files specified with
129
-c and -r. Use --plt to specify wich PLT to start from, and --output_plt
130
to specify where to put the PLT. Note that the analysis might include
131
files from the PLT if they depend on the new files.
130
132
This option only works with beam files.</item>
131
133
<tag><c><![CDATA[--remove_from_plt]]></c></tag>
132
134
<item>The information from the files specified with -c and -r is removed
133
from the plt. Note that this may cause a re-analysis of the remaining
135
from the PLT. Note that this may cause a re-analysis of the remaining
134
136
dependent files.</item>
135
137
<tag><c><![CDATA[--get_warnings]]></c></tag>
136
<item>Makes Dialyzer emit warnings even when manipulating the plt. Only
138
<item>Makes Dialyzer emit warnings even when manipulating the PLT. Only
137
139
emits warnings for files that are actually analyzed. The default is to
138
not emit any warnings when manipulating the plt. This option has no
140
not emit any warnings when manipulating the PLT. This option has no
139
141
effect when performing a normal analysis.</item>
154
156
<tag><c><![CDATA[-Wno_fun_app]]></c></tag>
155
157
<item>Suppress warnings for fun applications that will fail.</item>
156
158
<tag><c><![CDATA[-Wno_match]]></c></tag>
157
<item>Suppress warnings for pattern matching operations that will never
159
<item>Suppress warnings for patterns that are unused or cannot
159
161
<tag><c><![CDATA[-Werror_handling]]></c>***</tag>
160
162
<item>Include warnings for functions that only return by means of an
161
163
exception.</item>
162
164
<tag><c><![CDATA[-Wunmatched_returns]]></c>***</tag>
163
<item>Include warnings for function calls which ignore the
164
return value(s).</item>
165
<item>Include warnings for function calls which ignore a structured return
166
value or do not match against one of many possible return value(s).</item>
165
167
<tag><c><![CDATA[-Wunderspecs]]></c>***</tag>
166
168
<item>Warn about underspecified functions
167
169
(the -spec is strictly more allowing than the success typing)</item>
181
183
<title>Using the Dialyzer from Erlang</title>
182
<p>You can also use Dialyzer directly from Erlang. Both the gui and the
183
command line version is available. The options are similar to the ones
184
<p>You can also use Dialyzer directly from Erlang. Both the GUI and the
185
command line version are available. The options are similar to the ones
184
186
given from the command line, so please refer to the sections above for
185
187
a description of these.</p>