我在〜/ erl_beam这样的路径下收集项目的所有梁文件
dialyzer ~/erl_beam/*.beam --get_warnings -o static_analysis.log
Run Code Online (Sandbox Code Playgroud)
它运作良好.
如果我在Erlang源代码上执行此操作:
dialyzer --get_warnings -I <Path1> --src <Path2> -o static_analysis.log
Run Code Online (Sandbox Code Playgroud)
它也有效.
那么为什么我们有两种方法对Erlang代码进行静态分析呢?彼此有任何优点或弱点吗?
很小.
Dialyzer分析在Core Erlang上进行.可以直接从+debug_info
编译.beam
文件中提取该表示,也可以通过编译文件来提取该表示.erl
.编译需要时间,但它当然不是分析中最耗时的部分.
如果您已编译.erl
了+debug_info
它,则分析生成的.beam
文件也更方便,因为您不必将任何与编译相关的命令行选项传递给Dialyzer.
归档时间: |
|
查看次数: |
196 次 |
最近记录: |