2011-09-27 39 views
0

我在一個相當大的項目上使用eclipse 3.6.2和erlang 5.8.1.1,我們還沒有準備好移植到更現代化的語言版本,所以我堅持使用eprof中的錯誤:爲什麼沒有將erlang庫變更合併到我的項目中?

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]). 

這對我來說一直崩潰,因爲寫這個的人不會防止分歧。我已經在一個變化:

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目錄中,但在完成關閉項目,關閉eclipse,打開eclipse,刷新,清理和重新啓動之後,不會執行新版本的方法。我嘗試過將諸如「foo + 1」之類的表達式添加到方法中,以查看是否會得到與現在讓我失望的badarith不同的異常,但無效。

我只能猜測.beams正在合併或緩存在某處,我將不得不重建或重建?

回答

0

查看code模塊的文檔,該文檔解釋了代碼路徑搜索。由於eprof位於tools應用程序中,因此應該從任何其他庫目錄中選取它。

相關問題