这是命令透析器,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器
程序:
您的姓名
透析器 - 透析器,用于 ERlang 程序的差异分析器
商品描述
Dialyzer 是一种静态分析工具,可识别软件差异,例如
确定的类型错误,由于某些编程而死掉或无法访问的代码
单个 Erlang 模块或整个(组)应用程序中的错误、不必要的测试等。
Dialyzer 从调试编译的 BEAM 字节码或 Erlang 开始分析
源代码。 差异的文件和行号与
指示差异的内容。 透析器的分析基于
允许声音警告的成功类型(无误报)。
阅读有关 Dialyzer 以及如何从 GUI 中使用它的更多信息 透析仪 用户的 产品指南.
使用 “ 透析器 从 “ 指挥 LINE
Dialyzer 也有一个用于自动使用的命令行版本。 以下是简要说明
其选项列表。 可以通过写入获得相同的信息
透析器 --help
在一个壳里。 有关操作的更多详细信息,请参阅 GUI 说明
透析器。
命令行版本的退出状态为:
0 - 分析过程中没有遇到任何问题,也没有
发出警告。
1 - 分析过程中遇到问题。
2 - 没有遇到问题,但发出警告。
用法:
透析器 [--help] [--version] [--shell] [--quiet] [--verbose]
[-pa 目录]* [--plt plt] [--plts plt*] [-Ddefine]*
[-I include_dir]* [--output_plt 文件] [-Wwarn]* [--raw]
[--src] [--gui] [files_or_dirs] [-r 目录]
[--apps 应用程序] [-o outfile]
[--build_plt] [--add_to_plt] [--remove_from_plt]
[--check_plt] [--no_check_plt] [--plt_info] [--get_warnings]
[--dump_callgraph 文件] [--no_native] [--fullpath]
[--统计] [--no_native_cache]
选项:
文件或目录 (为了向后兼容也为: -c 文件或目录):
从命令行使用 Dialyzer 检测指定文件中的缺陷或
目录包含 .erl or 。光束 文件,取决于分析的类型。
-r 迪尔斯:
与前一个相同,但递归搜索指定的目录
子目录包含 .erl or 。光束 其中的文件,取决于类型
分析。
- 应用 应用:
构建或修改 plt 时通常使用的选项,如下所示:
透析器 --build_plt --apps erts 内核 stdlib mnesia ...
透析器 --apps inets ssl ./ebin ../other_lib/ebin/my_module.beam
-o 输出文件 (或 - 输出 输出文件):
从命令行使用 Dialyzer 时,将分析结果发送到指定的
outfile 而不是 stdout。
- 生的:
从命令行使用 Dialyzer 时,输出原始分析结果(Erlang
条款)而不是格式化的结果。 原始格式更容易后处理(对于
例如,过滤警告或输出 HTML 页面)。
--src:
覆盖默认,即分析BEAM文件,从Erlang开始分析
源代码代替。
-名称 (或 -Dname=值):
从源分析时,将定义传递给 Dialyzer。 (**)
-I 包含目录:
从源头分析时,通过 包含目录 到透析器。 (**)
-pa DIR:
包括 DIR 在 Erlang 的路径中(在分析具有
'-include_lib()' 指令)。
--输出_plt 文件:
构建后将 plt 存储在指定的文件中。
--plt PLT:
使用指定的 plt 作为初始 plt(如果 plt 是在设置文件期间构建的
将检查一致性)。
--plts 血小板*:
合并指定的 plts 以创建初始 plt -- 要求 plts 是
不相交(即,没有任何模块出现在一个以上的 plt 中)。 这些 plts 是
以通常的方式创建:
透析器 --build_plt --output_plt plt_1 files_to_include
...
透析器 --build_plt --output_plt plt_n files_to_include
透析器 files_to_analyze --plts plt_1 ... plt_n
透析器 --plts plt_1 ... plt_n -- files_to_analyze
-警告:
有选择地打开/关闭警告的一系列选项(有关名称的帮助)
警告使用 透析器 -仔)。 请注意,选项也可以在文件中给出
用 -透析器() 属性。 看 正在请求 or 压制 </p> in 来源 档
详情请见下文。
- 贝壳:
不要在运行 GUI 时禁用 Erlang shell。
- 版 (或 -v):
打印 Dialyzer 版本和更多信息并退出。
- 帮帮我 (或 -h):
打印此消息并退出。
- 安静的 (或 -q):
让透析器安静一点。
--详细:
使 Dialyzer 更加冗长。
- 统计数据:
打印有关执行进度的信息(分析阶段、在
每个和相对输入的大小)。
--build_plt:
分析从一个空的 plt 开始,并从指定的文件中创建一个新的 plt
- -c 和 -r. 仅适用于梁文件。 用 --plt or --输出_plt 覆盖
默认 plt 位置。
--add_to_plt:
plt 扩展为还包括指定的文件 -c 和 -r。 使用 --plt 至
指定从哪个 plt 开始,以及 --输出_plt 指定放置 plt 的位置。
请注意,分析可能包括来自 plt 的文件,如果它们依赖于新的
文件。 此选项仅适用于梁文件。
--从_plt 中删除:
来自指定文件的信息 -c 和 -r 从 plt 中删除。 笔记
这可能会导致对剩余相关文件的重新分析。
--check_plt:
检查 plt 的一致性,如果它不是最新的,则重建它。
--no_check_plt:
运行 Dialyzer 时跳过 plt 检查。 使用已安装的 plts 时很有用
从不改变。
--plt_信息:
使 Dialyzer 打印有关 plt 的信息,然后退出。 可以指定 plt
- --plt(s).
--获取警告:
即使在操作 plt 时,也使 Dialyzer 发出警告。 仅发出警告
对于实际分析的文件。
--dump_callgraph 文件:
将调用图转储到指定的文件中,其格式由文件决定
扩展名。 支持的扩展名有:raw、dot 和 ps。 如果使用其他东西
作为文件扩展名,将使用默认格式“.raw”。
--no_native (或 -nn):
绕过 Dialyzer 启发式的一些关键文件的原生代码编译
在透析多个文件时执行; 这避免了编译时间,但可能会导致
在(远)更长的分析时间内。
--no_native_cache:
默认情况下,Dialyzer 将本地编译的结果缓存在
$XDG_CACHE_HOME/erlang/dialyzer_hipe_cache 目录。 XDG_CACHE_HOME 默认为
$HOME/.cache. 使用此选项可禁用缓存。
- 完整路径:
显示发出警告的文件的完整路径名。
--gui:
使用图形用户界面。
请注意:
* 表示这些选项可能多次出现。
** 选项 -D 和 -I 在命令行和 Dialyzer GUI 中均可使用; 的语法
定义和包含与所使用的相同 埃里克.
警告选项:
-Wno_return:
禁止对永远不会返回值的函数发出警告。
-Wno_未使用:
抑制未使用函数的警告。
-Wno_improper_lists:
禁止对构建不当列表的警告。
-Wno_fun_app:
抑制将失败的有趣应用程序的警告。
-Wno_match:
禁止对未使用或无法匹配的模式发出警告。
-Wno_不透明:
禁止对违反数据类型不透明性的警告。
-Wno_fail_call:
抑制失败调用的警告。
-Wno_contracts:
禁止有关无效合同的警告。
-Wno_behaviours:
抑制有关偏离已发布推荐的行为回调的警告
接口。
-Wno_missing_calls:
抑制有关调用缺失函数的警告。
-Wno_undefined_callbacks:
抑制有关没有的行为的警告 -打回来 他们的属性
回调。
-Wunmatched_returns***:
包括对忽略结构化返回值或不忽略结构化返回值的函数调用的警告
匹配许多可能的返回值之一。
-Werror_处理***:
包括仅通过异常返回的函数的警告。
-Wrace_条件***:
包括对可能的竞争条件的警告。 注意发现数据的分析
Races 执行程序内数据流分析,有时会及时爆发。
启用它需要您自担风险。
-奇妙规格***:
警告未指定的函数(-spec 比
成功打字)。
-未知***:
让关于未知函数和类型的警告影响命令的退出状态
线版。 默认是在以下情况下忽略有关未知函数和类型的警告
设置退出状态。 使用 Erlang 的 Dialyzer 时,有关未知的警告
返回函数和类型; 默认情况下不返回这些警告。
以下选项也可用,但不建议使用它们:(它们是
主要用于 Dialyzer 开发人员和内部调试)
-Wover规格***:
警告过度指定的函数(-spec 严格小于
成功打字)。
-Wspec差异***:
当 -spec 与成功类型不同时发出警告。
请注意:
*** 标识打开警告而不是关闭警告的选项。
使用 “ 透析器 从 二郎
你也可以直接从 Erlang 使用 Dialyzer。 GUI 和命令行版本
可用。 选项与命令行给出的选项类似,所以请
有关这些内容的说明,请参阅上述部分。
请求 OR 压制 警告 IN 源 FILES
这个 -透析器() 属性可用于通过指定关闭模块中的警告
功能或警告选项。 例如,关闭函数的所有警告 F / 0,
包括以下行:
-dialyzer({nowarn_function, f/0})。
要关闭不正确列表的警告,请将以下行添加到源文件中:
-透析器(no_improper_lists)。
这个 -透析器() 在函数声明之后允许使用属性。 警告选项列表
或允许函数:
-dialyzer([{nowarn_function, [f/0]}, no_improper_lists])。
警告选项可以限制为以下功能:
-dialyzer({no_improper_lists, g/0})。
-dialyzer({[no_return, no_match], [g/0, h/0]})。
有关警告选项的帮助,请使用 透析器 -仔. 选项也被枚举 如下。
(警告选项).
请注意:
这个 -透析器() 属性不是由 Erlang 编译器检查,而是由 Dialyzer 检查
本身。
请注意:
警告选项 -Wrace_条件 在源文件中设置时无效。
这个 -透析器() 属性也可用于打开警告。 例如,如果一个
模块已修复不匹配的回报,添加了行
-dialyzer(unmatched_returns)。
可以帮助确保不会引入新的不匹配的返回警告。
出口
图形用户界面() -> ok | {错误, 留言}
gui(选项列表) -> ok | {错误, 留言}
类型:
OptList——见下文
透析器 GUI 版本。
选项列表:: [选项]
选项 :: {files, [文件名 :: string()]}
| {files_rec, [目录名 :: string()]}
| {定义,[{宏::原子(),值::术语()}]}
| {来自,src_code | byte_code} %% 默认为 byte_code
| {init_plt, FileName :: string()} %% 如果从默认值改变
| {plts, [FileName :: string()]} %% 如果从默认值改变
| {include_dirs, [目录名 :: string()]}
| {输出文件,文件名::字符串()}
| {output_plt, 文件名 :: string()}
| {check_plt, 布尔值()},
| {analysis_type, 'succ_typings' |
'plt_add' |
'plt_build' |
'plt_check' |
'plt_remove'}
| {警告,[WarnOpts]}
| {get_warnings,布尔()}
警告选项:: no_return
| 没有_未使用
| 没有不正确的列表
| 无趣应用程序
| 不匹配
| 不透明
| 无失败呼叫
| 无合同
| 无行为
| 没有未定义的回调
| 不匹配_返回
| 错误处理
| 比赛条件
| 超规格
| 规格不足
| 规格
| 未知
运行(选项列表) -> </p>
类型:
选项列表——见 gui/0,1
警告——见下文
透析器命令行版本。
警告 :: [{Tag, Id, Msg}]
标签 :: 'warn_behaviour'
| 'warn_bin_construction'
| 'warn_callgraph'
| 'warn_contract_not_equal'
| 'warn_contract_range'
| 'warn_contract_subtype'
| 'warn_contract_supertype'
| 'warn_contract_syntax'
| 'warn_contract_types'
| 'warn_failing_call'
| 'warn_fun_app'
| '警告匹配'
| 'warn_non_proper_list'
| 'warn_not_call'
| '警告不透明'
| 'warn_race_condition'
| 'warn_return_no_exit'
| 'warn_return_only_exit'
| 'warn_umatched_return'
| 'warn_undefined_callbacks'
| 'warn_unknown'
Id = {文件::字符串(),行::整数()}
msg = msg() -- 未定义
格式警告(消息) -> 细绳()
类型:
Msg = {Tag, Id, msg()} -- 见 run/1
从dialyzer:run/1 返回的警告中获取字符串。
plt_info(字符串()) -> {'好的', [{原子(), 任何()}]} | {'错误', 原子()}
返回有关指定 plt 的信息。
使用 onworks.net 服务在线使用透析器
