erlsnoop: erlang消息监听器 调试erlang网络程序利器

在erlang的邮件列表上看到:

Have you tried putting a snoop to see whether the delay is on the
sending/receiving side?

This might be useful: http://www.erlang.org/contrib/erlsnoop-1.0.tgz

http://www.erlang.org/contrib/看了下 模块真不少 下载了erl_snoop

先安装lib-pcap yum install libpcap-devel
yum install libpcap

编译出错:
ip.c:77: error: label at end of compound statement
随便在default: 后面加个return 0;

utils.c: In function 'gmt2local':
utils.c:26: error: storage size of 'sgmt' isn't known
utils.c:28: warning: implicit declaration of function 'time'
utils.c:31: error: dereferencing pointer to incomplete type
utils.c:31: warning: implicit declaration of function 'gmtime'
utils.c:31: error: invalid type argument of 'unary *'
utils.c:32: warning: implicit declaration of function 'localtime'
utils.c:32: warning: assignment makes pointer from integer without a cast
utils.c:34: error: dereferencing pointer to incomplete type
utils.c:34: error: dereferencing pointer to incomplete type
utils.c:35: error: dereferencing pointer to incomplete type
utils.c:35: error: dereferencing pointer to incomplete type
utils.c:42: error: dereferencing pointer to incomplete type
utils.c:42: error: dereferencing pointer to incomplete type
utils.c:43: error: dereferencing pointer to incomplete type
utils.c:43: error: dereferencing pointer to incomplete type
utils.c:26: warning: unused variable 'sgmt'
make: *** [utils.o] Error 1

加个 #include <time.h>

搞定 运行

[root@test98 erlsnoop-1.0]# ./erlsnoop -hpnkt
Erlsnoop 1.0 (Mar 4 2008)
using interface eth0 (mtu=1500)
using filter "tcp"
option -? gets help
type ^C to quit

[ 192.168.0.98:44683 (89.0.861.291|x#89.0.861.291|x) > 192.168.0.243:30141 (342.0.861.291|y#342.0.861.291|y) ] 160
REG_SEND from: #Pid<2.0.11.89.0.861.291|x#2.0.11.89.0.861.291|x> to: global_name_server

[ 192.168.0.98:44683 (89.0.861.291|x#89.0.861.291|x) > 192.168.0.243:30141 (342.0.861.291|y#342.0.861.291|y) ] 49
MONITOR from: #Pid<2.0.63.89.0.861.291|x#2.0.63.89.0.861.291|x> to: net_kernel
ref: #Ref<2.0.0.64.89.0.861.291|x#2.0.0.64.89.0.861.291|x>

[ 192.168.0.243:30141 (342.0.861.291|y#342.0.861.291|y) > 192.168.0.98:44683 (89.0.861.291|x#89.0.861.291|x) ] 161
REG_SEND from: #Pid<2.0.11.342.0.861.291|y#2.0.11.342.0.861.291|y> to: global_name_server

[ 192.168.0.98:44683 (89.0.861.291|x#89.0.861.291|x) > 192.168.0.243:30141 (342.0.861.291|y#342.0.861.291|y) ] 84
REG_SEND from: #Pid<2.0.63.89.0.861.291|x#2.0.63.89.0.861.291|x> to: net_kernel

效果不错的哦。可以看到erlang的交互信息, 详细请看README.txt

See http://www.javaeye.com/topic/167695

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License