상당히 큰 프로젝트에서 eclipse 3.6.2를 erlang 5.8.1.1과 함께 사용하고 있습니다. 우리는 더 현대적인 언어 버전으로 이동할 준비가되지 않았기 때문에 eprof의 버그가 붙어 있습니다 :Erlang의 lib 변경 사항이 내 프로젝트에 통합되지 않는 이유는 무엇입니까?
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]).
누구든지 이것을 작성한 사람이 dividebyzero를 경계하지 않았기 때문에 항상 나를 위해 충돌합니다. 변경 사항을 해킹했습니다.
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"과 같은 끈적한 표현을 시도해 보았습니다. 이제는 저를 데려가는 badarith와는 다른 예외가 생기지 만 효과가 없습니다.
. 핵이 통합되거나 캐시되어 어딘가에 핵폭탄이나 재건축을해야한다고 추측 할 수 있습니까?