Общий шаблон в Erlang - это рекурсивный цикл, который поддерживает состояние:
loop(State) ->
receive
Msg ->
NewState = whatever(Msg),
loop(NewState)
end.
Есть ли способ запросить состояние запущенного процесса с бифом или трассировкой или что-то еще? Поскольку сообщения о сбоях говорят "... когда состояние было..." и показывают разбитое состояние процесса, я думал, что это будет легко, но я был разочарован тем, что мне не удалось найти bif, чтобы сделать это.
Итак, я подумал, что использование трассировки модуля dbg сделает это. К сожалению, я считаю, что, поскольку эти циклы оптимизированы с помощью хвоста, dbg будет захватывать только первый вызов функции.
Любое решение?