我目前正在观察Erlang程序的痕迹(使用Erlang:跟踪函数),特别是YAWS Web服务器,尽管我的问题可能不限于此特定程序。Erlang跟踪:无法打开跟踪
基本上,当我试图跟踪某些过程和输出这些痕迹,则显示以下错误:
=错误报告==== 30-MAR-2014 :: 15:48:25 == = 无法打开跟踪 “跟踪< 0.4084.0> .traffic。”: “I/O错误”
=错误报告==== 30-MAR-2014 :: 15:48:25 = == 未能打开跟踪“跟踪”< 0.4085.0> .traffic“:”I/O错误“
=错误报告==== 30-Mar-2014 :: 15:48:26 === 无法打开跟踪“跟踪”。 < 0.4086.0> .traffic“: ”I/O错误“
我将不胜感激任何了解为什么这个错误发生,以及如何可以解决
感谢
编辑。! 这是我使用的代码:
looper()->
receive
P-> io:format(" trace msg: ~p ~n", [P])
end,
looper().
tracer2(Pid)->
erlang:trace(Pid,true,[set_on_spawn, send, 'receive']),
looper().
在cmd,我第一输入:ybed_sup:start_link()
,然后输入tracer2(PID)
传递进程的PID执行功能yaws_server:acceptor
作为参数。
首先,迹线被正确打印,但是这个过程将会消失,并且产生具有函数yaws_server:acceptor
的新进程,之后只会显示错误消息。
如果我在erlang shell中做了更新中描述的内容,我根本没有收到任何跟踪消息。也许你编辑'ybed.erl'来添加流量跟踪,或者类似的东西? –
我编辑了'ybed.erl'以在全局conf中启用流量跟踪,然后运行您在更新中显示的示例代码,但仍无法重现问题。 –