【发布时间】:2016-11-20 03:43:56
【问题描述】:
我刚开始使用 Erlang,所以我的代码还没有复杂的东西。我经常犯的错误会导致运行时错误。
问题是我总是看到这样的事情:
{"init 终止于 do_boot",{undef,[{'lexer_app.beam',start,[],[]},{init,start_it,1,[]},{init,start_em,1,[ ]}]}}
崩溃转储正在写入:erl_crash.dump...done init 终止于 do_boot()
这很难让我快速了解问题所在。
因此,我想知道,是调试此类错误以查看 erl_crash.dump 的唯一方法,坦率地说,这看起来像是完全的 abrakadabra,我需要通过调查以某种方式找出即使是简单的愚蠢错误?
主要问题,是否有可能得到更人性化的错误,例如“5:6 字符串类型的人员变量不可分配给类型编号”?
调试应用程序的通常工作流程是什么?
【问题讨论】:
-
在这里您可以阅读消息的开头:VM 的 init 在 do_boot 中停止,因为它找到了对未定义函数的调用:'lexer_app.beam':start。我猜你已经用“erl -s lexer_app.beam”而不是“erl -s lexer_app”开始了erl,最终可以选择将路径添加到梁文件“erl -s lexer_app -pa path/to/beam”