我目前正在觀察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中啓用流量跟蹤,然後運行您在更新中顯示的示例代碼,但仍無法重現問題。 –