运行erlang_guidelines编译的Erlang应用出现崩溃转储,求运行指导
Erlang 示例运行与环境问题指导
一、Erlang版本排查与调整
CentOS 7的EPEL源提供的Erlang版本普遍偏旧,很多新Erlang项目依赖高版本特性,这很可能是导致崩溃的核心原因。建议按以下步骤调整:
- 卸载现有EPEL源的Erlang:
sudo yum remove erlang* - 根据项目要求安装对应版本的Erlang:参考项目的
README或rebar.config中指定的OTP版本,安装匹配的官方版本。
二、不用rebar3的运行方案
1. 基于rebar(旧版)编译运行
先确保已安装rebar二进制文件:
- 进入项目根目录执行编译:
rebar compile - 编译完成后启动Erlang shell并加载代码:
erl -pa ebin deps/*/ebin - 调用示例模块的入口函数,比如
example:start().(具体函数名以项目文档为准)
2. 直接用erl运行已编译beam文件
如果已有编译好的beam文件(通常在ebin目录):
- 加载所有相关代码路径:
erl -pa ebin(若有第三方依赖,需追加依赖的ebin路径,比如-pa deps/xxx/ebin) - 启动shell后调用目标函数,若仍崩溃,查看
erl_crash.dump文件定位问题。
三、崩溃转储分析方法
Erlang自带的crashdump_viewer工具可快速分析崩溃原因:
- 执行命令:
crashdump_viewer erl_crash.dump - 重点查看Call Stack和Error Reason部分,能直接定位是模块缺失、函数不兼容还是环境依赖问题。
内容的提问来源于stack exchange,提问作者msacks
相关产品推荐
相关产品推荐

