最近学习Erlang,这种诡异的语言真让人不淡定。真怀念visual studio 一个F11键就可以开始单步调试。
按照在网上找到的资料,一步一步进行如下的调试。
首先写一个Erlang源代码 Process_infos.erl
- -module(process_infos).
- -compile(export_all).
- process_infos() ->
- %%filelib:ensure_dir("./log/"),
- File = "distance.log",
- {ok, Fd} = file:open(File, [write, raw, binary, append]),
- Fun = fun(Pi) ->
- PiI = erlang:process_info(Pi),
- Info = io_lib:format("Pid ::: ~p =>~p \n\n",[Pi,PiI]),
- case filelib:is_file(File) of
- true ->
- %%file:write(Fd, "Pid ::: " ++ pid_to_list(Pi)),
- file:write(Fd, Info);
- false ->
- file:close(Fd),
- {ok, NewFd} = file:open(File, [write, raw, binary, append]),
- %%{ok, NFD} = file:open(File, [write, raw, binary, append]),
- %%file:write(NFD, "Pid ::: " ++ pid_to_list(Pi)),
- %%file:close(NFD),
- file:write(NewFd, Info)
- end
- %%timer:sleep(20)
- end,
- [Fun(P) || P <- erlang:processes()],
- {ok, NFd} = file:open(File, [write, raw, binary, append]),
- file:write(NFd, "=============================================================\n\n"),
- file:close(NFd).
这个代码的功能是将进程信息写入到一个文件中。
首先在Erlang shell里编译它,erlang编译是 c(module) 命令,如果需要调试,就需要采用 c(module,debug_info). 命令了
如下图所示,执行编译命令后 通过 debugger:start().或 im(). 命令启动erlang自带的调试器,有些电脑可能会提示 erlc.exe找不到.
那是因为erlang安装路径没有添加到系统路径中。默认安装路径是 C:\Program Files\erl6.1\bin
为了调试方便,这里勾选上 first call 和 on break 。然后点击Module->interprept ,会弹出一个选择框。
选择 process_info.erl 点击 OK
然后回到命令行下面 执行需要调试的函数
这里就启动了调试。可以点击 step next continue finish 等按钮进行调试。在下面的监视栏里面可以实时的看到变量值的变化。
All Done ,have fun!
/************************withc_soya*************************************/
2014年8月9日16:47:24
/*************************************************************************/