При отладке ошибки или сбоя часто бывает полезно узнать, какой ввод и вывод получает определенная функция. Отладки утилита 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
Существует нет ' ts' в стандартной библиотеке. Это из какой-либо другой библиотеки, которую вы используете? –
«ts» - это мой собственный модуль, я хочу знать один хороший метод отладки, чтобы получить детали. – why