Я использую eclipse 3.6.2 с erlang 5.8.1.1 в довольно большом проекте, который мы не готовы перейти на более современную версию языка, поэтому я застрял с ошибкой в eprof:
string_bp_mfa([{Mfa, {Count, Time}}|Mfas], Tus, {MfaW, CountW, PercW, TimeW, TpCW}, Strings) ->
Smfa = s(Mfa),
Scount = s(Count),
Stime = s(Time),
Sperc = s("~.2f", [100*(Time/Tus)]),
Stpc = s("~.2f", [Time/Count]),
string_bp_mfa(Mfas, Tus, {
erlang:max(MfaW, length(Smfa)),
erlang:max(CountW,length(Scount)),
erlang:max(PercW, length(Sperc)),
erlang:max(TimeW, length(Stime)),
erlang:max(TpCW, length(Stpc))
}, [[Smfa, Scount, Sperc, Stime, Stpc] | Strings]).
Который терпит неудачу для меня все время, потому что, кто бы ни написал это, не защитил от divybyzero.Я взломал изменение:
SafeTus = case Tus of 0 -> 1; _ -> Tus end,
SafeCount = case Count of 0 -> 1; _ -> Count end,
Sperc = s("~.2f", [100*(Time/SafeTus)]),
Stpc = s("~.2f", [Time/SafeCount]),
... но мой проект никогда не выполняется.Я вручную перекомпилировал .erl и поместил .beam в каталог ebin, но после полного закрытия моего проекта, закрытия затмения, открытия затмения, обновления, очистки и перезапуска новая версия метода не выполняется.Я попытался вставить в метод выражения типа "foo + 1", чтобы увидеть, получаю ли я другое исключение, чем бадарит, который меня сейчас подавляет, но безрезультатно.
Я могу только догадываться, что.beams консолидируются или кэшируются где-то, что я собираюсь обстреливать или восстанавливать?