Erlang代码分析与调试全攻略
1. 分析与性能分析工具
在开发过程中,我们常常需要深入了解运行中的程序,查找潜在问题代码、调查性能问题以及检查死代码或已弃用函数的使用情况。以下是一些相关的工具和方法。
1.1 覆盖率分析
在测试代码时,我们不仅想知道哪些代码行被频繁执行,还想知道哪些代码行从未被执行。未执行的代码行可能是错误的潜在来源,因此找出这些代码行非常重要。我们可以使用覆盖率分析器来完成这项工作。
以下是一个覆盖率分析的示例:
1> cover:start().
%% start the coverage analyser
{ok,<0.34.0>}
2> cover:compile(shout).
%% compile shout.erl for coverage
{ok,shout}
3> shout:start().
%% run the program
<0.41.0>
Playing:<<"title: track018 performer: .. ">>
4> %% let the program run for a bit
4>
cover:analyse_to_file(shout).
%% analyse the results
{ok,"shout.COVER.out"}
%% this is the results file
覆盖率分析的结果会输出到一个文件中,文件左侧会显示每行代码的执行次数。标记为零的行特别值得关注,因为这些代