如何找出Erlang中导致运行时错误的原因?

Ser*_*rov 6 debugging erlang

我刚开始使用Erlang,所以我的代码中没有任何复杂的东西.我经常犯错会导致运行时错误.

问题是我总是看到这样的事情:

{"init终止于do_boot",{undef,[{'lexer_app.beam',start,[],[]},{init,start_it,1,[]},{init,start_em,1,[]}] }}

崩溃转储被写入:erl_crash.dump ...在init中终止do_boot()

这几乎没有给我关于出了什么问题的快速信息.

因此,我想,是调试这样的错误的唯一方法来调查erl_crash.dump,坦率地说,看起来像abrakadabra总和我需要以某种方式通过调查来找出简单的愚蠢错误?

主要问题是,是否有可能获得更加人性化的错误,例如"5:6字符串类型的Person变量不能分配给类型号"?

调试应用程序的常用工作流程是什么?

Ste*_*ski 3

您不应该能够简单地读取故障转储文件的文本。相反,您应该使用故障转储查看器,它是一个图形应用程序,可让您以人性化的方式查看故障转储文件包含的所有详细信息。