rebar3 服务器
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
# Erlang .beam 反编译脚本说明
|
||||
|
||||
## 功能
|
||||
|
||||
`decompile_beam.erl` 将 Erlang 编译后的 `.beam` 文件反编译为对应的 `.erl` 源文件。
|
||||
|
||||
## 用法
|
||||
|
||||
```bash
|
||||
# 反编译单个 .beam 文件(生成的 .erl 与 .beam 同目录)
|
||||
escript decompile_beam.erl path/to/module.beam
|
||||
|
||||
# 反编译目录下所有 .beam 文件
|
||||
escript decompile_beam.erl path/to/ebin
|
||||
```
|
||||
|
||||
## 重要限制
|
||||
|
||||
- **只有带 `debug_info` 编译的 .beam 才能反编译出完整源码。**
|
||||
- 若编译时未加 `debug_info`,脚本会跳过并提示“缺少抽象代码块”。
|
||||
|
||||
编译时保留 debug_info 示例:
|
||||
|
||||
```erlang
|
||||
compile:file("src/mymod.erl", [debug_info, report_warnings]).
|
||||
```
|
||||
|
||||
或 rebar3 在 `rebar.config` 中:
|
||||
|
||||
```erlang
|
||||
{erl_opts, [debug_info]}.
|
||||
```
|
||||
|
||||
## 依赖
|
||||
|
||||
- 仅依赖 Erlang/OTP 标准库(`beam_lib`、`erl_pp`、`file` 等),无需额外依赖。
|
||||
|
||||
## 输出
|
||||
|
||||
- 每个 `.beam` 会在**同一目录**下生成同名的 `.erl` 文件。
|
||||
- 例如:`ebin/my_app.beam` → `ebin/my_app.erl`。
|
||||
Reference in New Issue
Block a user