¿Es posible obtener el estado actual de un proceso gen_server
(presumiblemente al enviar algún mensaje del sistema)? Podría ser útil cuando se depura.Obtención del estado gen_server/gen_fsm para la depuración
Por supuesto, puedo añadir un mensaje que devuelve el estado actual de handle_call
:
get_state(Server) -> gen_server:call(Server, '$get_state').
%% in every gen_server I want to debug
...
handle_call('$get_state', _From, State) ->
{reply, State, State};
...
pero ¿hay algo incorporado (incluso si es un poco hacky)?
¿Qué hay de malo en conectarse al proceso gen_server con el depurador incorporado y depurarlo realmente? –
No GS en el sistema integrado, por lo que no hay depurador (¿o puede ejecutarse sin gráficos?). –
Si se puede acceder al nodo desde el exterior, puede depurarlo desde una máquina remota con GS-IMHO, es uno de los puntos fuertes de Erlang. –