erlang debug

http://www.cnblogs.com/goldli/archive/2011/03/08/1976998.html

erlang 模块文件

helloworld.erl

文件内容:

-module(helloworld). //文件名与模块名一致
-export([run/1]).     //(导出只有一个参数的RUN函数函数)
run(Name)->          //函数体
io:format("Hello World ~w~n",[Name]).

shell 中进行相关命令 编绎,调用,调试

编绎:

c(helloworld,[debug_info]).   //编绎后,带调试信息文件,用于调试器调试

调用:

helloworld:run(1).              //调用helloworld中的run函数

调试:

debugger:start().            //调试器起动

时间: 2024-11-14 12:12:54

erlang debug的相关文章

erlang使用gen_server实现质数服务器(手打代码,还debug了几个错误)

最近简单了解一下erlang语言,操练了一下书里的例子,有机会debug:下面是主要模块 prime_server,使用gen_server作为behaviour: 1 -module(prime_server). 2 -export([new_prime/1, start_link/0]). 3 4 -behaviour(gen_server). 5 -export([init/1, handle_call/3, handle_cast/2, handle_info/2, terminate/

Erlang generic standard behaviours -- gen_server system msg

这是Erlang generic standard behaviors gen_server 分析的系列的最后一篇,主要分析gen_server module 辅助性的功能函数. 在gen_server 的MAIN loop 流程中,除了处理Parent 的'EXIT' 消息, user module 常规消息之外, 还处理了一类 system 消息. 这一类system 消息的来源是一个sys 的module,在Erlang OTP体系中,sys module 主要有两大类的作用,一个是热更,

Erlang点滴--杀死gen_server

前天同事碰到了一个问题:他为游戏写了一个模拟客户端的机器人程序,用的是gen_server行为.但是他启动这些机器人时并没有通过监控树,而是直接在Shell下启动了若干个.然后他就发现如果其中一个机器人进程挂掉的话,所有的机器人都会跟着挂掉. 当他把问题告诉我时我第一反应就是Shell挂掉了,因为所有的机器人都是在Shell下用start_link启动的,也就是说所有的机器人进程都和Shell进程建立了连接.因此如果其中一个机器人挂掉,它会向Shell发送EXIT消息导致Shell挂掉,Shel

启动erlang/OTP里面的Web服务器(application INETS启动过程代码分析)

上两篇分别用两种方式启动了inets中的httpd,其实本质一样的:下面简单分析一下过程,函数粒度的介绍. 1,下面是application inets的代码目录,虽然ftp.tftp.http_client.http_lib.http_server.inets_app在这目录中并列,其实inets_app扮演顶层控制角色: 只有inets_app是一个application,而其他都是module---application的一部分并且需要application启动和管理. [[email p

Erlang tool -- lager overload protection

log 这个事, 说大不大说小又不小. 大点的, 可以用scribe flume 这样的系统去做, 小点的, 也就打印一个调试信息而已. 在Erlang 中, log 这事情确实比较伤, error_logger 是个单点, io:format 容易导致节点崩溃. 在开源社区, lager 算是使用比较广泛的一个, 然而, 同样不能完全避免单点的问题. 因为在lager 中, lager_event 作为 core, 是单个进程存在的. 1 dispatch_log(Severity, Meta

接入Erlang控制台的几种方法

在window中调试的时候我们可以通过启动多个cmd窗口运行Erlang节点,在生产环境中我们需要Erlang服务在Centos服务器上后台运行;这就需要在启动的时候添加启动参数detached来脱离终端:      -detached Starts the Erlang runtime system detached from the system console. Useful for running daemons and backgrounds processes. Implies -n

Erlang点滴--当广播卡住时

很多时候游戏服务器总避免不了要向玩家广播一些消息,我所遇到的问题是假如这个广播操作由一个进程来对待广播玩家逐个进行的话,很容易让该进程卡住(尤其是在网络状况不好或者玩家数量太多的情况下). 查了查大部分情况是卡在了fun prim_inet:send/3上,这其实是由于之前的广播直接调用了fun gen_tcp:send/2,而这其实是一个同步调用,一层一层剥代码就可以知道是怎么回事儿了. 首先这是fun gen_tcp:send/2的源码: 1 send(S, Packet) when is_

MPI Debug Tips

debug一个并行程序(parallel program)向来是件很麻烦的事情(Erlang等functional programming language另当别论), 对于像MPI这种非shared memory的inter-process model来说尤其如此. 与调试并行程序相关的工具 非开源工具 目前我所了解的商业调试器(debugger)有: TotalView Allinea DDT 据说parallel debug的能力很屌, 本人没用过表示不知,说不定只是界面做得好看而已. 不

Erlang epmd官方文档中文翻译

本文含epmd简介及官方文档之翻译,文档地址 http://erlang.org/doc/man/epmd.html翻译时的版本 R19.1 中英文水平都不咋地,不通顺处海涵,就酱. 简介 Erlang分布式系统中节点是通过节点名字互相连接的,节点名字为[email protected]_ADDRESS格式. epmd是分布式erlang中比较重要的模块.集群中每台机器都有一个epmd进程,这些进程端口号都用同一个端口号(默认4396端口).所有节点启动的时候都会连接到本机对应的epmd进程,它