При отладке ошибки или сбоя часто полезно посмотреть, какие входные и выходные данные получает определенная функция.Утилита отладки redbug в eper repo делает ее довольно простой
Примеры:
%%% Trace a function:
1>redbug:start("lists:sort")
2>lists:sort([3,1,2]).
21:41:00 <{erlang,apply,2}> {lists,sort,[[3,1,2]]}
%%% Trace a module and also get the return value
3>redbug:start("string->return")
4>string:to_upper("foo").
21:41:10 <{erlang,apply,2}> {string,to_upper,["foo"]}
21:41:10 <{erlang,apply,2}> {string,'-to_upper/1-lc$^0/1-0-',["foo"]}
...
21:41:10 <{erlang,apply,2}> {string,to_upper,1} -> "FOO"
Так что в вашем коде я бы, например, увидел, что получает вход mymodule1: func1:
1>redbug:start("mymodule1:func1").
2> %% redo the call that caused the crash