2011-12-14 7 views

risposta

3

più leggero e anche meno a seconda del formato di stacktrace che può cambiare di tanto in tanto, io preferisco usare process_info/2:

{_, {Module, Function, Arity}} = process_info(self(), current_function) 

In Function troverete il nome della funzione come un atomo e si ottiene il Module e lo Arity anche. Non puoi scrivere questo come funzione perché restituirebbe questa funzione come corrente. Una macro che si dà il nome della funzione corrente come atomo potrebbe apparire come:

-define(current_function_name(), 
      element(2, element(2, process_info(self(), current_function)))). 

foo() -> 
    foo = ?current_function_name(). 
Problemi correlati