diff options
author | Lars Thorsen <[email protected]> | 2010-12-01 12:11:53 +0100 |
---|---|---|
committer | Lars Thorsen <[email protected]> | 2010-12-01 12:11:53 +0100 |
commit | 07881ee69f6fd9ae9d211b50bae1a22d553525d2 (patch) | |
tree | 031d910b01edcc06d6ba675b36a0bd492b1f118f /lib/tools | |
parent | 2ea6490f944fd1358b2dacfaece6d5c583c2076b (diff) | |
parent | 0701070394cab463bf5ebbc69424e20778633a57 (diff) | |
download | otp-07881ee69f6fd9ae9d211b50bae1a22d553525d2.tar.gz otp-07881ee69f6fd9ae9d211b50bae1a22d553525d2.tar.bz2 otp-07881ee69f6fd9ae9d211b50bae1a22d553525d2.zip |
Merge branch 'dev' of super:otp into dev
* 'dev' of super:otp:
eprof: fix badarith exception on divide
Diffstat (limited to 'lib/tools')
-rw-r--r-- | lib/tools/src/eprof.erl | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/lib/tools/src/eprof.erl b/lib/tools/src/eprof.erl index 8e5c0ec46b..87fdc1fa34 100644 --- a/lib/tools/src/eprof.erl +++ b/lib/tools/src/eprof.erl @@ -136,7 +136,7 @@ handle_call({analyze, procs, Opts}, _, #state{ bpd = #bpd{ p = Ps, us = Tus} = B lists:foreach(fun ({Pid, Mfas}) -> {Pn, Pus} = sum_bp_total_n_us(Mfas), - format(Fd, "~n****** Process ~w -- ~s % of profiled time *** ~n", [Pid, s("~.2f", [100.0*(Pus/Tus)])]), + format(Fd, "~n****** Process ~w -- ~s % of profiled time *** ~n", [Pid, s("~.2f", [100.0*divide(Pus,Tus)])]), print_bp_mfa(Mfas, {Pn,Pus}, Fd, Opts), ok end, gb_trees:to_list(Ps)), @@ -443,8 +443,8 @@ string_bp_mfa([{Mfa, {Count, Time}}|Mfas], Tus, {MfaW, CountW, PercW, TimeW, TpC Smfa = s(Mfa), Scount = s(Count), Stime = s(Time), - Sperc = s("~.2f", [100*(Time/Tus)]), - Stpc = s("~.2f", [Time/Count]), + Sperc = s("~.2f", [100*divide(Time,Tus)]), + Stpc = s("~.2f", [divide(Time,Count)]), string_bp_mfa(Mfas, Tus, { erlang:max(MfaW, length(Smfa)), @@ -484,3 +484,6 @@ format(Fd, Format, Strings) -> io:format(Fd, Format, Strings), io:format(Format, Strings), ok. + +divide(_,0) -> 0.0; +divide(T,N) -> T/N. |