编译
//.erl编译.beam
erlc *.erl
>c(*).
//.erl编译.beam(带调试)
erlc +debug_info *.erl
>c(*,[debug_info]).
//.erl生成.s文件 (文本)
erlc +"'S'" *.erl
>c(*,'S').
反编译/反汇编
//.beam生成.dis 显示opcode(文本),带不带调试这个结果是一样的
>erts_debug:df(*).
//.beam转s树结构(文本)
>beam_lib:chunks(*,[abstract_code]).
//.beam转s2树结构(文本)
>beam_disasm:file("*").
//.beam(带调试)反编译成*.erl源码
>f(),{ok, {_, [{abstract_code, {_,Abs}}]}} = beam_lib:chunks("*.beam", [abstract_code]),io:fwrite("~s~n", [erl_prettypr:format(erl_syntax:form_list(Abs))]).