From: Julian Seward Date: Wed, 14 Mar 2007 11:57:37 +0000 (+0000) Subject: Use a 64-bit counter to keep track of the total number of bytes X-Git-Tag: svn/VALGRIND_3_3_0~317 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=458d626be47ba9f999a88ee71418d8b42d4a36f1;p=thirdparty%2Fvalgrind.git Use a 64-bit counter to keep track of the total number of bytes allocated, rather than SizeT which is word-sized. Your average C++ lardware can easily turn over more than 4G in total in a half hour run on a 32-bit machine, in which case the counter wraps around. git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6649 --- diff --git a/memcheck/mc_malloc_wrappers.c b/memcheck/mc_malloc_wrappers.c index be3abe9da8..9a24a45ec9 100644 --- a/memcheck/mc_malloc_wrappers.c +++ b/memcheck/mc_malloc_wrappers.c @@ -51,7 +51,7 @@ /* Stats ... */ static SizeT cmalloc_n_mallocs = 0; static SizeT cmalloc_n_frees = 0; -static SizeT cmalloc_bs_mallocd = 0; +static ULong cmalloc_bs_mallocd = 0; /* For debug printing to do with mempools: what stack trace depth to show. */ @@ -191,7 +191,7 @@ void* MC_(new_block) ( ThreadId tid, } // Only update this stat if allocation succeeded. - cmalloc_bs_mallocd += szB; + cmalloc_bs_mallocd += (ULong)szB; VG_(HT_add_node)( table, create_MC_Chunk(tid, p, szB, kind) ); @@ -321,7 +321,7 @@ void* MC_(realloc) ( ThreadId tid, void* p_old, SizeT new_szB ) cmalloc_n_frees ++; cmalloc_n_mallocs ++; - cmalloc_bs_mallocd += new_szB; + cmalloc_bs_mallocd += (ULong)new_szB; if (complain_about_silly_args(new_szB, "realloc")) return NULL; @@ -788,7 +788,7 @@ void MC_(print_malloc_stats) ( void ) { MC_Chunk* mc; SizeT nblocks = 0; - SizeT nbytes = 0; + ULong nbytes = 0; if (VG_(clo_verbosity) == 0) return; @@ -799,14 +799,14 @@ void MC_(print_malloc_stats) ( void ) VG_(HT_ResetIter)(MC_(malloc_list)); while ( (mc = VG_(HT_Next)(MC_(malloc_list))) ) { nblocks++; - nbytes += mc->szB; + nbytes += (ULong)mc->szB; } VG_(message)(Vg_UserMsg, - "malloc/free: in use at exit: %,lu bytes in %,lu blocks.", + "malloc/free: in use at exit: %,llu bytes in %,lu blocks.", nbytes, nblocks); VG_(message)(Vg_UserMsg, - "malloc/free: %,lu allocs, %,lu frees, %,lu bytes allocated.", + "malloc/free: %,lu allocs, %,lu frees, %,llu bytes allocated.", cmalloc_n_mallocs, cmalloc_n_frees, cmalloc_bs_mallocd); if (VG_(clo_verbosity) > 1)