2014-10-26 54 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