使用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. 跟蹤從我的程序中產生的進程的進程ID
- 6. 我需要跟蹤哪些進程API來跟蹤服務?
- 7. 在C#中如何收集程序崩潰的堆棧跟蹤
- 8. 從stdin收集數據塊:Python
- 9. 在子模塊中跟蹤更改
- 10. 如何跟蹤垃圾收集對象
- 11. 使用C指針跟蹤的Fortran模塊數據成員
- 12. 在Erlang中使用跟蹤和dbg
- 13. Excel中的數據跟蹤
- 14. Python:從數據集中收集數據
- 15. 如何打印Erlang跟蹤的所有數據dbg
- 16. 從一個Erlang模塊
- 17. 進程Linux中的跟蹤工具
- 18. 跟蹤全球化進程
- 19. 的Python - 跟蹤模塊執行
- 20. Rails引導過程中模塊的跟蹤定義
- 21. 從.net,用戶模式和驅動程序進行ETW跟蹤
- 22. 從腳本中跟蹤存儲過程存儲的數據庫
- 23. Erlang進程的消息接收率
- 24. 跟蹤元數據
- 25. ODBC數據跟蹤
- 26. Erlang rb模塊
- 27. 跟蹤收集的硬幣總數Swift 3
- 28. 容器跟蹤數據庫模式
- 29. 如何跟蹤進程的數據讀取
- 30. 垃圾收集器如何保持從堆棧跟蹤根
這可能有助於..http://stackoverflow.com/questions/9275814/erlang-receiving-timeout-messages-when-calling-ioformat – aseychell 2012-03-15 14:30:50