This is an automated email from Gerrit. Hsiangkai Wang (hsiang...@gmail.com) just uploaded a new patch set to Gerrit, which you can find at http://openocd.zylin.com/1607
-- gerrit commit 483c163ce9627c82c6cc425dc7a879e1607bb16c Author: Hsiangkai Wang <hsiang...@gmail.com> Date: Fri Aug 30 13:35:08 2013 +0800 target: Correct profiling calculation 1. high_pc should be (maximum sample + 1) (Refer to gprof source code) 2. bucket index should be sample offset --------------- x (number of bucket) sample range For example, if minimum sample is 0 and maximum sample is 5 and the number of bucket is 3. a = sampled_address - 0 b = 3 c = 6 (a, b, c refer to source code variables) sampled_address = 0, => a = 0, => bucket_index = 0 sampled_address = 1, => a = 1, => bucket_index = 0 sampled_address = 2, => a = 2, => bucket_index = 1 sampled_address = 3, => a = 3, => bucket_index = 1 sampled_address = 4, => a = 4, => bucket_index = 2 sampled_address = 5, => a = 5, => bucket_index = 2 Change-Id: Ia9fa0e4d9c7183e3e9d7ceaf73e63729f07aa2ce Signed-off-by: Hsiangkai Wang <hsiang...@gmail.com> diff --git a/src/target/target.c b/src/target/target.c index 72339a1..94520f0 100644 --- a/src/target/target.c +++ b/src/target/target.c @@ -3440,7 +3440,11 @@ static void writeGmon(uint32_t *samples, uint32_t sampleNum, const char *filenam max = samples[i]; } - int addressSpace = (max - min + 1); + /* max should be (largest sample + 1) + * Refer to binutils/gprof/hist.c (find_histogram_for_pc) */ + max++; + + int addressSpace = max - min; assert(addressSpace >= 2); static const uint32_t maxBuckets = 16 * 1024; /* maximum buckets. */ @@ -3456,8 +3460,8 @@ static void writeGmon(uint32_t *samples, uint32_t sampleNum, const char *filenam for (i = 0; i < sampleNum; i++) { uint32_t address = samples[i]; long long a = address - min; - long long b = numBuckets - 1; - long long c = addressSpace - 1; + long long b = numBuckets; + long long c = addressSpace; int index_t = (a * b) / c; /* danger!!!! int32 overflows */ buckets[index_t]++; } -- ------------------------------------------------------------------------------ Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more! Discover the easy way to master current and previous Microsoft technologies and advance your career. Get an incredible 1,500+ hours of step-by-step tutorial videos with LearnDevNow. Subscribe today and save! http://pubads.g.doubleclick.net/gampad/clk?id=58040911&iu=/4140/ostg.clktrk _______________________________________________ OpenOCD-devel mailing list OpenOCD-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/openocd-devel