distel可以断点调试erlang,但是步骤非常繁琐
以下面的测试脚本为例说明
geometry.erl
1 -module(geometry). 2 -export([area/1]). 3 4 area({rectangle,Width,Height})-> 5 Width*Height; 6 area({square,X}) -> 7 X*X; 8 area({circle,R}) -> 9 3.14159*R*R.
调试步骤如下:(步骤一步都不能少,否则会出问题)
进入distel菜单,选择start new shell,执行c(geometry,[debug_info]). 编译成功以后,c-c c-d L重新载入erl脚本 c-c c-d i进入交互模式,如果提示node,就输入在emacs的distel配置里面的这个(setq inferior-erlang-machine-options ‘("-sname" "localhost")) c-x space,在行上设置断点,应该能看到红色的行了 最后在shell里面直接调用,例如我们的geometry:area({circle,123}).
建议用erl自带的debugger:start().进入gui调试模式,源码也需要用c(xxx,[debug_info]).进行编译