2014-10-26 78 views
1

如何在erlang中加載模塊時獲取事件?在erlang中加載模塊的事件

「事件」可以是執行fun/MFA的消息,任意進程的消息等等。如果標準庫中沒有支持,最好的解決方法是什麼?

我能想到的解決方法是:

  • 運行代碼模塊上的痕量的循環
  • 掃描加載的模塊次

另外一個限制是不應該有在被加載的模塊中必須是特殊的鉤子,因爲這是用於調試應用程序的。標準庫模塊不需要重新加載,並假定工具應用程序正在運行。

+0

我到最後跟蹤解決方法,雖然我不認爲它很乾淨:https://github.com/andytill/erlyberly/commit/f901a6ca90a15bec37d572250a693a46b54157be – 2014-11-02 20:32:29

回答

0

-on_load()模塊指令。您可以設置一些函數,以便在使用此僞指令加載模塊時運行。在documentation查看更多信息。

+0

重要的是,沒有特殊的掛鉤在代碼被重新加載,這是一個調試工具,因此爲可能調試的每個模塊編寫代碼將非常繁瑣。 – 2014-10-26 18:06:00

+0

爲了進行調試,您應該使用調試工具,即跟蹤。 – 2014-10-26 18:06:56

+0

它是一個UI追蹤:D https://github.com/andytill/erlyberly(p.s.我知道在觀察者中追蹤) – 2014-10-26 18:08:18