使用dbg跟蹤我的模塊時,遇到了如何收集產生,退出,註冊,取消註冊,鏈接,取消鏈接,取得鏈接,取得關聯等消息的問題erlang允許使用trace,但僅限於那些直接從我的模塊中產生的進程? 作爲一個例子,我不需要知道io模塊創建哪些進程,當我調用io:某些模塊函數的格式時。有人知道如何解決這個問題嗎?Erlang跟蹤(僅從我的模塊進程中收集數據)
0
A
回答
0
簡短的回答:
一種方法是看呼叫消息之後產卵消息。
龍答:
我不是DBG的專家。其原因是,我一直在使用的(恕我直言更好,更安全,甚至更加便利)替代:泛,從https://gist.github.com/gebi/jungerl/tree/master/lib/pan
的API進行了總結in the html doc。
隨着鍋:啓動可以跟蹤指定接收所有跟蹤消息回調模塊。然後你的回叫模塊可以處理它們,例如跟蹤ETS中的流程或傳遞給每個調用的狀態數據。 跟蹤消息的格式在pan:scan中指定。
有關回調模塊的示例,您可以查看src/cb _ *。erl。
現在你的問題: 隨着泛你可以跟蹤工藝處理和呼叫你的favourit模塊像這樣:
pan:start({ip, CallbackModule}, Node, all, [procs,call], {Module}).
其中module是您的模塊的名稱(在這種情況下:sptest ) 然後回調模塊(在這種情況下:cb_write)可以看看產卵遵循相同的過程內的呼叫消息消息,例如:
32 - {call,{<6761.194.0>,{'fun',{shell,<node>}}},{sptest,run,[[97,97,97]]},{1332,247999,200771}}
33 - {spawn,{<6761.194.0>,{'fun',{shell,<node>}}},{{<6761.197.0>,{io,fwrite,2}},{io,fwrite,[[77,101,115,115,97,103,101,58,32,126,115,126,110],[[97,97,97]]]}},{1332,247999,200805}}
作爲鍋也使用相同的回溯端爲DBG,跟蹤消息(以及信息)能夠被使用Erlang的跟蹤BIF-S以及收集,但鍋安全得多。
相關問題
- 1. 如何跟蹤erlang中的子進程?
- 2. Erlang跟蹤 - 如何忽略erlang進程的郵件
- 3. 自我跟蹤實體清除收集
- 4. Erlang跟蹤:無法打開跟蹤
- 5. 跟蹤數據表和數據集
- 6. Erlang程序跟蹤速度更快
- 7. 跟蹤從我的程序中產生的進程的進程ID
- 8. 我需要跟蹤哪些進程API來跟蹤服務?
- 9. 在C#中如何收集程序崩潰的堆棧跟蹤
- 10. 在Erlang中使用跟蹤和dbg
- 11. 在子模塊中跟蹤更改
- 12. 從stdin收集數據塊:Python
- 13. 跟蹤場景可收集物
- 14. 如何跟蹤垃圾收集對象
- 15. Excel中的數據跟蹤
- 16. 如何打印Erlang跟蹤的所有數據dbg
- 17. 使用C指針跟蹤的Fortran模塊數據成員
- 18. Python:從數據集中收集數據
- 19. 從超級項目中跟蹤子模塊中的更改
- 20. perl - 收集信息並僅從收集的數據中選擇一些信息
- 21. 跟蹤後臺進程?
- 22. 跟蹤全球化進程
- 23. 跟蹤PHP進程框架
- 24. 多線程跟蹤進度
- 25. 從一個Erlang模塊
- 26. 進程Linux中的跟蹤工具
- 27. 模塊的Mixin實例跟蹤
- 28. 的Python - 跟蹤模塊執行
- 29. Rails引導過程中模塊的跟蹤定義
- 30. 加載數據INFILE +進度跟蹤
這可能有助於..http://stackoverflow.com/questions/9275814/erlang-receiving-timeout-messages-when-calling-ioformat – aseychell 2012-03-15 14:30:50