Почему изменения erlang lib не включены в мой проект? - PullRequest
0 голосов
/ 28 сентября 2011

Я использую 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 консолидируются или кэшируются где-то, что я собираюсь обстреливать или восстанавливать?

1 Ответ

0 голосов
/ 28 сентября 2011

Посмотрите документацию для модуля code, в которой объясняется поиск пути к коду. Поскольку eprof находится в приложении tools, его следует выбрать из любых дополнительных каталогов библиотеки.

...