History log of /external/valgrind/memcheck/mc_leakcheck.c
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
3ed5c70df64336657b99fb4e56599492caf513f2 15-May-2015 carll <carll@a5019735-40e9-0310-863c-91ae7b9d1cf9> Patch 6 in a revised series of cleanup patches from Will Schmidt

Fix multipleinheritance heuristic for ppc64LE (leak_cpp_interior test).
Adjust the PPC64 #ifdiffery to indicate that ppc64BE uses a thunk table,
but ppc64LE (in particular, the ELF ABIV2) does not. In this case, thunk
table == function descriptors.

Signed-off-by: Will Schmidt <will_schmidt@vnet.ibm.com>
--

This patch replaces the previously posted "[6/7] add leak_cpp_interior
test .exp results ....."

This patch fixes Vagrind bugzilla 347686


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15238 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_leakcheck.c
5d3d43d1e2e5bccc315a5a2afe6f054f956964f9 20-Feb-2015 florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> Update a comment.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14950 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_leakcheck.c
ea8a88c21eecdd9e91c75ccbd3c864e708e2f41b 20-Feb-2015 florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> Pass in a mask of segment kinds to VG_(get_segment_starts)
and VG_(am_get_segment_starts) to indicate which segments
should be collected. That should solve the following problem:
in m_main.c we used to:

seg_starts = VG_(get_segment_starts)( &n_seg_starts );

for (i = 0; i < n_seg_starts; i++) {
Word j, n;
NSegment const* seg
= VG_(am_find_nsegment)( seg_starts[i] );
vg_assert(seg);
if (seg->kind == SkFileC || seg->kind == SkAnonC) {

...
// ... dynamic memory allocation for valgrind
...
}

This caused the vassert(seg) to fire because the dynamic memory
allocation further down the loop changed segments such that a
valgrind segment which used to be non-SkFree suddenly became
SkFree and hence VG_(am_find_nsegment) returned NULL. Whoom.

With this revision we only collect the segments we're really
interested in. For the example above that is all client segments.
So if V allocates memory -- fine. That will not change the layout
of client segments.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14949 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_leakcheck.c
d3166c4cf9d2545242da71d8baeaaf203b02a09d 24-Jan-2015 florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> VG_(am_get_filename) returns a pointer to memory that belongs to the
address space manager. Callers should neither modify the string nor
free it (as the string resides is statically allocated memory). That
calls for a const HChar *
The type change exposed two bugs. One in m_addrinfo.c and one in
m_debuginfo.c. In both cases the returned string could possibly be freed later
on. So we need to strdup it first. Now fixed.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14886 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_leakcheck.c
f5300ff423197d58c16d4b4f7b53aabba72b8a9f 28-Dec-2014 florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> Avoid spurious warnings about white space following a backslash
in a line splice.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14832 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_leakcheck.c
866862a87a06a70e2e0c0d7e5c773e252db8ecdd 13-Dec-2014 florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> Fix BZ #116002.
Left justification of strings in myvprintf_str was mixed up.
Now fixed and %s formats changed accordingly.
In function myvprintf_int64: the local buffer was not large
enough to hold ULONG_MAX in binary notation. Numbers were
truncated at 39 digits.
Testcases added.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14808 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_leakcheck.c
cf6e734a9f88b521a5116b7ca119b3a26aede1a8 28-Sep-2014 florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> Merge r14229 from the BUF_REMOVAL branch to trunk.
Function MC_(snprintf_delta) requires a buffer of size 31 or larger to
avoid overflow.Add an assert, change and document the buffer size and
fix all call sites. Remove magic constants along the way.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14583 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_leakcheck.c
0533405588995680fa5e426883576e9ca0835262 28-Aug-2014 philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9> Fix a bunch of defined(VGA_ppc64)
(a.o. this was making leak_cpp_interior test failing,
as the ppc64 specific code in mc_leakcheck.c was not compiled in)



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14379 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_leakcheck.c
7c69a3edda5335fa4c60f8161252b4bab8a76f7e 21-Jul-2014 philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9> Add a new heuristic 'length64' to detect interior pointers
pointing at offset 64bit of a block, when the first 8 bytes contains
the block size - 8. This is e.g. used by sqlite3MemMalloc.

Patch by Matthias Schwarzott (with small modif)



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@14179 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_leakcheck.c
0f157ddb404bcde7815a1c5bf2d7e41c114f3d73 18-Oct-2013 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Update copyright dates (20XY-2012 ==> 20XY-2013)


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13658 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_leakcheck.c
4e32d67a5b880bf1d871c5141822078d4dcdc3ac 18-Oct-2013 philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9> Allow tools to provide some statistics in suppression list produced at the end

Option -v outputs a list of used suppressions. This only gives
the nr of times a suppression was used.
For a leak search, this only gives the nr of loss records that
have been suppressed, but it does not give additional needed details
to understand more precisely what has been suppressed
(i.e. nr of blocks and nr of bytes).

=> Add in the tool interface update_extra_suppression_use and
print_extra_suppression_info functions to allow the tool to record
additioonal use statistics for a suppression. These statistics
can be done depending on the error (and its data) which is suppressed.

Use this in memcheck for the leak suppressions, to maintain and output
the nr of blocks and bytes suppressed by a suppression during
the last leak search.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13651 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_leakcheck.c
110c77e6255ac6429765596c500a2cab4a474093 15-Oct-2013 philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9> SIGSEGV/SIGBUS specific handling on s390, to cope with kernel peculiarity

On s390, the linux kernel does not deliver the exact address that
caused a SEGV but rather this address rounded down to a page boundary.
Also, old kernels do not deliver the address that caused a SIGBUS,
but deliver 0.
So, on s390, handle SIGSEGV and SIGBUG by always skipping one page
starting from the current value of the ptr scanning position.
As we need a correct value of ptr on this platform in the longjmp-ed
code, ptr is marked as volatile.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13648 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_leakcheck.c
078ab86e795ff4862417e19df175ce23b995b65f 13-Oct-2013 philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9> Add definedness checking when dereferencing ptr during heuristic reachedness

Patch ensures that no heuristic reachedness is obtained with undefined data.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13635 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_leakcheck.c
7a76f4b27db3ec7a0130a5fd7120aeb5060c89c2 06-Oct-2013 philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9> Fix leak scan SEGV catcher when ptr starts in unreadable page (readable for aspacemgr)

The fault catcher installed during leak scan to catter e.g. for
possible desynchronisation between real protection and aspacemgr
was not activated when the scanned ptr was directly pointing in
a desynchronised page.
This was (initially only) visible on ppc32 (gcc110) as the page size of
gcc110 is big (64 K).

=> modified the leak-segv-jmp test so as to produce the problem also
on systems with smaller pages.

The fix consists in calling the setjmp before the scan loop,
and skip the bad address which has been recorded by the fault
catcher.
Also, deemed better to just skip one single Addr rather than a full page
(e.g. to skip less data in case some addresses are unreadable e.g.
on strange hardware).

Performance of the leak scan has been measured, seems slightly
faster on x86,amd64 and ppc32. Slightly slower on ppc64.

Also if verbose argument is given, outputs the nr of bytes skipped
due to fault.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13623 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_leakcheck.c
5bd40601a929e8216b1c4b98d5048dddd2c2c20e 02-Oct-2013 philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9> Fix assert for who_points_at monitor cmd for an interiorly pointed block

* fix the assert
* some better comments
* update test to verify who_points_at behaviour with an interiorly pointed block



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13609 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_leakcheck.c
ab1fce9bfb9742bffdfbd7ea9e4dad04ffb17819 29-Sep-2013 philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9> add heuristics decreasing false possible "possible leaks" in c++ code.

The option --leak-check-heuristics=heur1,heur2,... can activate
various heuristics to decrease the number of false positive
"possible leaks" for C++ code. The available heuristics are
detecting valid interior pointers to std::stdstring, to new[] allocated
arrays with elements having destructors and to interior pointers pointing
to an inner part of a C++ object using multiple inheritance.

This fixes 280271 Valgrind reports possible memory leaks on still-reachable
std::string

This has been tested on x86/amd64/ppc32/ppc64.

First performance measurements seems to show a neglectible impact on
the leak search.

More feedback welcome both on performance and functional aspects
(false positive 'possibly leaked' rate decrease and/or
false negative 'possibly leaked' rate increase).

Note that the heuristic is not checking that the memory has been
allocated with "new" or "new[]", as it is expected that in some cases,
specific alloc fn are used for c++ objects instead of the standard new/new[].
If needed, we might add an option to check the alloc functions
to be new/new[].



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13582 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_leakcheck.c
8617b5b8f16570c9003379464d60e8572a801a8c 12-Jan-2013 philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9> Implement --keep-stacktraces=alloc|free|alloc-and-free|alloc-then-free|none

The option --keep-stacktraces controls which stack trace(s) to keep for
malloc'd and/or free'd blocks. This can be used to obtain more information
for 'use after free' errors or to decrease Valgrind memory and/or cpu usage
by recording less information for heap blocks.

This fixes 312913 Dangling pointers error should also report the alloc
stack trace.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13223 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_leakcheck.c
2193a7c20b74867de85a5ac10e7db5c7038f7c8a 08-Dec-2012 philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9> Fix 284540 and 307465
284540 Memcheck shouldn't count suppressions matching still-reachable allocations
307465 --show-possibly-lost=no should bring down the error count / exit code

Using the options --show-leak-kinds=kind1,kind2,.. and
--errors-for-leak-kinds=kind1,kind2,.., each leak kind (definite, indirect,
possible, reachable) can now be individually reported and/or counted as
an error.
In a leak suppression entry, an optional line 'match-leak-kinds:'
controls which leak kinds are suppressed by this entry.
This is a.o. useful to avoid definite leaks being "catched"
by a suppression entry aimed at suppressing possibly lost blocks.
Default behaviour is the same as 3.8.1

Old args (--show-reachable and --show-possibly-lost) are still accepted.

Addition of a new test (memcheck/tests/lks) testing the new args
and the new suppression line.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13170 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_leakcheck.c
3e7986312a0ffc7646b0552d4c4ea3744a870e73 24-Nov-2012 florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> Fix some casts that removed const-ness as pointed out by
GCC's -Wcast-qual.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13138 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_leakcheck.c
6bd9dc18c043927c1196caba20a327238a179c42 23-Nov-2012 florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> Changes to allow compilation with -Wwrite-strings. That compiler option
is not used for testcases, just for valgrind proper.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13137 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_leakcheck.c
19f91bbaedb4caef8a60ce94b0f507193cc0bc10 10-Nov-2012 florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> Fix more Char/HChar mixups. Closing in...


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13119 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_leakcheck.c
54fe2021b87b9e5edb8ec8070f47b86d5cafb8aa 28-Oct-2012 florian <florian@a5019735-40e9-0310-863c-91ae7b9d1cf9> Char/HChar and constness fixes. Mostly cost center
on allocators which is always a const HChar *


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@13089 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_leakcheck.c
03f8d3fc25f5a45c5826259d1b33b7f310117279 05-Aug-2012 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Update copyright dates to include 2012.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12843 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_leakcheck.c
57a16a266f13b3216d4a71c33c7397284d03bd18 19-Jul-2012 philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9> patch that improves the speed of the leak search by up to 40% (on amd64)

Scanning 1GB of random values made of 200_000 malloc-ed block is
(on amd64) changing from (about) 17 seconds to (about) 10 seconds.

On x86, it goes from 153 seconds to 129 seconds.

(this huge difference between x86 and amd64 leak search time
for this random test is because a random value has about one chance
on 4 to be in the addressable memory on x86 and so the dichotomic
search in the list of malloc-ed blocks is called for a lot more
values than on amd64).

Basically, there are 3 optimisations:
1. call MC_(is_within_valid_secondary) only at the beginning of a
secondary map (and not for each Word).
2. call SETJMP only at the beginning of a page (and not for each Word)
3. Validate an aligned word using get_vabits8 rather than get_vabits2.

Each of the above optimisation more or less improves by 2 seconds.
(to go from 17 seconds to 10 seconds).



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12756 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_leakcheck.c
09007e35105058d316fd4d53798a0519d525391e 01-Mar-2012 philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9> In case VALGRIND_MALLOCLIKE_BLOCK is wrongly used, output
the execontext where the overlapping blocks have been reported
before crashing.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12412 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_leakcheck.c
4bbfc5fa582e489de21593660405b9378026a618 27-Feb-2012 philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9> Fix one more leak detected by running memcheck in memcheck
(started to run regression tests in an outer)



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12407 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_leakcheck.c
7d69fd986190ebe179ca151f7c629e17a967fbfb 26-Feb-2012 philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9> Fix some memory leaks found by running memcheck on annotated memcheck.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12405 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_leakcheck.c
a22f59db02284784a1e5e51587e2ce09db3a2a18 27-Jan-2012 philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9> (fixes bug 289939 wish: complete monitor cmd 'leak_check' with details
about leaked or reachable blocks)

This patch implements two new memcheck gdbserver monitor commands:
block_list <loss_record_nr>
after a leak search, shows the list of blocks of <loss_record_nr>
who_points_at <addr> [<len>]
shows places pointing inside <len> (default 1) bytes at <addr>
(with len 1, only shows "start pointers" pointing exactly to <addr>,
with len > 1, will also show "interior pointers")


Compiled and reg-tested on f12/x86, deb5/amd64, f16/ppc64.

The 'block_list' command is implemented on top of the
lr_array/lc_chunks/lc_extras arrays used during the last leak search.
NB: no impact on the memory for the typical Valgrind usage where a leak
search is only done at the end of the run.
Printing the block_list of a loss record simply consists in scanning the
lc_chunks to find back the chunks corresponding to the loss record for which
block lists is requested.

The 'who_points_at' command is implemented by doing a scan similar to
(but simpler than) the leak search scan.
lc_scan_memory has been enhanced to have a mode to search for a specific
address, rather than to search for all allocated blocks.
VG_(apply_to_GP_regs) has been enhanced to also provide the ThreadId and
register name in the callback function.

The patch touches multiple files (but most changes are easy/trivial or factorise
existing code).

Most significant changes are in memcheck/mc_leakcheck.c :
* changed the LC_Extra struct to remember the clique for indirect leaks
(size of structure not changed).
* made lr_array a static global
* changed lc_scan_memory:
to have a search mode for a specific address (for who_points_at)
(for leak search) to pass a 'current clique' in addition to the clique
leader
so as to have a proper clique hierarchy for indirectly leaked blocks.
* print_results: reset values at the beginning of the print_result of the
next leak search, rather than at the end of print_results of the previous
leak search.
This allows to continue showing the same info for loss records till a new
leak search is done.
* new function print_clique which recursively prints a group of leaked
blocks, starting from the clique leader.
* new function MC_(print_block_list) : calls print_clique for each clique
leader found for the given loss record.
* static void scan_memory_root_set : code extracted from
MC_(detect_memory_leaks) (no relevant change)
* void MC_(who_points_at) : calls scan_memory_root_set, lc_scan_memory
and VG_(apply_to_GP_regs)(search_address_in_GP_reg) to search
pointers to the given address.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12357 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_leakcheck.c
6643e96a72e8530a7c8830c02ffb2fb4aee74c88 17-Jan-2012 philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9> Fixes 282230 group allocator for small fixed size, use it for MC_Chunk/SEc vbit

* new files include/pub_tool_groupalloc.h and coregrind/m_groupalloc.c
implementing a group allocator (based on helgrind group alloc).
* include/Makefile.am coregrind/Makefile.am : added pub_tool_groupalloc.h
and m_groupalloc.c
* helgrind/libhb_core.c : use pub_tool_groupalloc.h/m_groupalloc.c
instead of the local implementation.
* include/pub_tool_oset.h coregrind/m_oset.c : new function
allowing to create an oset that will use a pool allocator.
new function allowing to clone an oset (so as to share the pool alloc)
* memcheck/tests/unit_oset.c drd/tests/unit_bitmap.c : modified
so that it compiles with the new m_oset.c
* memcheck/mc_main.c : use group alloc for MC_Chunk
memcheck/mc_include.h : declare the MC_Chunk group alloc
* memcheck/mc_main.c : use group alloc for the nodes of the secVBitTable OSet
* include/pub_tool_hashtable.h coregrind/m_hashtable.c : pass the free node
function in the VG_(HT_destruct).
(needed as the hashtable user can allocate a node with its own alloc,
the hash table destroy must be able to free the nodes with the user
own free).
* coregrind/m_gdbserver/m_gdbserver.c : pass free function to VG_(HT_destruct)
* memcheck/mc_replace_strmem.c memcheck/mc_machine.c
memcheck/mc_malloc_wrappers.c memcheck/mc_leakcheck.c
memcheck/mc_errors.c memcheck/mc_translate.c : new include needed
due to group alloc.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12341 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_leakcheck.c
8423490aad3a068849eca1ee741f3ca669ab01f1 14-Jan-2012 philippe <philippe@a5019735-40e9-0310-863c-91ae7b9d1cf9> Added a new parameter to the memcheck 'leak_check' GDB monitor command
to let the user specify a max nr of loss records to output : on huge
applications, interactive display of a lot of records in gdb can
take a lot of time.


* mc_include.h :
- added UInt max_loss_records_output; to LeakCheckParams structure
- avoid passing LeakCheckParams by struct copy.
* modified test gdbserver_tests/mcleak to test the new parameter
* mc_main.c : parse or set max_loss_records_output in leak_check cmd
handling and calls.
* mc-manual.xml : document new leak_check parameter
* mc_leakcheck.c :
- extract printing rules logic in its own function
- in print_results, if there is a limit in LeakCheckParam,
compute from where the printing of loss records has to start





git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12329 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_leakcheck.c
ec062e8d96a361af9905b5447027819dfbfee01a 23-Oct-2011 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Update all copyright dates, from 20xy-2010 to 20xy-2011.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12206 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_leakcheck.c
dc429d1a488d3725608743560e42b31e46cb003a 29-Jul-2011 bart <bart@a5019735-40e9-0310-863c-91ae7b9d1cf9> Avoid that compiling memcheck on 32-bit systems triggers a compiler warning

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11948 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_leakcheck.c
30b3eca94e609214d9ac8dabfee9be3f3ab46d85 28-Jun-2011 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> valgrind and tool mon. cmds prefixes changes + doc fixes + new vgdb option
--cmd-time-out

* changed prefixes of Valgrind core monitor commands from vg. to v.
* removed prefixes of Tool monitor commands
* memcheck leak_check 'leakpossible' arg renamed to 'possibleleak'
* memcheck make_memory 'ifaddressabledefined' arg renamed to
'Definedifaddressable'
(with uppercase D to avoid confusion with 'defined' arg).
* vgdb options
- Some doc updates : more logical option order documentation,
specify 'standalone' for options aimed at standalone usage.
- added option --cmd-time-out for standalone vgdb
(comment of Josef Weindendorfer, needed to interface with a callgrind GUI)
* updated tests according to the above.
* updated documentation according to the above.
* some additional minor doc fixes/clarifications

(Philippe Waroquiers, philippe.waroquiers@skynet.be). Bug 214909
comment 111.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11844 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_leakcheck.c
c8bd1df6c23e2409512e1e50616e7dc3bae501a2 26-Jun-2011 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Memcheck:
* add delta leak checking functionality
* some editing of related manual sections
(Philippe Waroquiers, philippe.waroquiers@skynet.be). Bug 214909
comment 105.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11838 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_leakcheck.c
3c4fa9f53ab85aa31f7463049ecf4b5c82e9a2a8 09-May-2011 bart <bart@a5019735-40e9-0310-863c-91ae7b9d1cf9> memcheck: Fixed a bug in the address ranges reported in an error message. Closes #272615.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11734 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_leakcheck.c
97d3ebba515c00930db4ee3f52af571bc84b2ef6 11-Apr-2011 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Add an alternative implementation of VG_MINIMAL_{SET,LONG}JMP
for ppc32-linux, that works for gcc >= 4.4. Related to #259977.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11688 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_leakcheck.c
6c591e15c1d6402a2a755310f005f795b68e7e38 11-Apr-2011 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Create new module m_libcsetjmp, which wraps up uses of
__builtin_setjmp and __builtin_longjmp so that they can be selectively
replaced, on a platform by platform basis. Does not change any
functionality. Related to #259977.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11687 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_leakcheck.c
1d0f3f69003f07363741083b3c28f95f13a4cc14 04-Oct-2010 tom <tom@a5019735-40e9-0310-863c-91ae7b9d1cf9> When a memory block changes from unreachable to possibly or definitely
reachable, or from possibly reachable to definitely reachable, rescan
it so that any blocks it points to are also upgraded. Fixes #206600.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11395 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_leakcheck.c
3cedf574e2d9e479dd58998ad8f0a187e00329da 26-Aug-2010 bart <bart@a5019735-40e9-0310-863c-91ae7b9d1cf9> Added new memcheck command-line option --show-possibly-lost. Closes #201170.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11292 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_leakcheck.c
9eecbbb9a9cbbd30b903c09a9e04d8efc20bda33 03-May-2010 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Update copyright dates to 2010.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11121 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_leakcheck.c
266705542ac0d7c7b892ecb38767257ad02b1183 13-Aug-2009 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> Don't count leaks as errors with --leak-check=summary, because the results
can be confusing. Document the behaviour.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10798 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_leakcheck.c
b6267bd61a3802bb2a16ef993c94bf834d0e2d2e 12-Aug-2009 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> Output tweaks:
- Always print a blank line after significant messages (eg. errors). This
makes the handling of blank lines much simpler.

- Don't print full stops at the end of messages. We mostly don't do it, so
I got rid of all the remaining ones I could find for consistency.

- Use --leak-check=full rather than --leak-check=yes, for consistency with
docs and other messages.

- Update partiallydefinedeq.stderr.exp2 for older changes.

This commit only updates the code. Test updates will follow shortly. (I'm
separating them so the code changes aren't swamped by the test changes in
the SVN logs.)


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10783 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_leakcheck.c
606a4aeacb004873d2839467e2ad0ab3aabc8c27 11-Aug-2009 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> Count error contexts properly in VG_(unique_error). Avoids the problem seen
of "5 errors from 0 contexts" with leak errors.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10773 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_leakcheck.c
18afe5d1c3dc9e4e16d3e10617d6afa4bf9fcd40 10-Aug-2009 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> Try to fix error_counts.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10768 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_leakcheck.c
b965efb4990bdedc3215ffcca8ea566d25874d26 10-Aug-2009 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> Allow custom blocks to overlap with malloc blocks. Fixes bug 100628.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10765 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_leakcheck.c
c2f8b1bddf3495c55f77cc6b556e0dd3b5d723d6 10-Aug-2009 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> augment a comment



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10764 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_leakcheck.c
2d9e874b7a628ada216f09cc4f065798c65fffa4 07-Aug-2009 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Tidy up of messaging:

* For all tools and the core, don't show statistics when -v is in
effect. Instead, try to restrict -v to mostly user-useful
stuff.

* A new flag --stats=no|yes [no] produces statistics output instead.

* Fix longstanding problem in that Memcheck's leak checker ran after
the core's error manager module shut down, thereby not showing use
counts of leak suppressions. This fixes #186790.

* As a consequence, the leak checker text output of Memcheck has
changed a bit -- leak check is done before the final error
summary is done (much more logical), and the output has been
tidied up a bit.

* Helgrind, Drd and Ptrcheck now also print "For counts of
detected and suppressed errors, rerun with: -v", which makes
them consistent with Memcheck in this regard. These are
filtered out by the regtest filter scripts.

For all tools except Memcheck, the regtests are unchanged. On
Memcheck regtests still fail due to rearrangements of the leak
checker output. This will be fixed by a followup commit.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10746 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_leakcheck.c
6b523cd2df025375e86b161de9995187edf2fcb6 15-Jul-2009 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Merge memcheck/ changes from branches/MESSAGING_TIDYUP r10464.
See trunk r10465 commit message for details.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10467 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_leakcheck.c
e3675d624e959e6ac456eac0877d671048918445 19-May-2009 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> DARWIN sync wibble.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9926 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_leakcheck.c
ac1e03303a9e4b38c34fb600a88533b6c368e66f 08-May-2009 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> Created a new module, m_aspacehl. Factored out three(!) copies of
get_seg_starts() into it.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9796 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_leakcheck.c
e10c7f87d8530adde17869136f9695986be29696 06-May-2009 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> Make loss record ordering more deterministic, so that regtests are reliable.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9784 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_leakcheck.c
29a5c01528ca7cffe17880a038b4563de920f08d 06-May-2009 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> Fix bug #191182, where printing the leak checker results was really slow if
there were a lot of loss records.

The fix was:
- Avoid the O(m * n) looping over the chunks when creating the loss
records, by putting loss records into an OSet instead of a list, which
makes duplicate detection for each chunk an O(log n) operation instead of
an O(n) operation.
- Avoid the looping over loss records which was used to do a poor
man's sort, but was O(n^2). Instead copy pointers to the loss records
from the OSet into an array and sort it normally with VG_(ssort) (n log n,
usually) before printing.

This approach was similar to that used in the patch Philippe attached to the
bug report.

Other changes:
- Added Philippe's test programs in the new memcheck/perf directory. It
used to take 57s on my machine, now it takes 1.6s.
- Cleaned up massif/perf/Makefile.am to be consistent with other Makefiles.
- Improved some comments relating to VgHashTable and OSet.
- Avoided a redundant traversal of the hash table in VG_(HT_to_array), also
identified by Philippe..
- Made memcheck/tests/mempool's results independent of the pointer size, and
thus was able to remove its .stderr.exp64 file.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9781 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_leakcheck.c
b7a4e2ea4e1adfda6bf2d7e3c448f663c5d173a9 01-May-2009 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> Renamed various things for clarity. Added some comments. And fixed the
dubious find-minimum-loss-record loop in print_results(), which was using an
inconsistent mixture of szB and szB+indirect_szB.

Two test results changed, just different sort orders for same-sized loss
records.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9704 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_leakcheck.c
9f207460d70d38c46c9e81996a3dcdf90961c6db 10-Mar-2009 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> Updated copyright years.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9344 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_leakcheck.c
8225cc0de2ccf390127b5910dceb7c6185091a38 09-Mar-2009 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> This commit completely overhauls the leak checker. In particular:

- It heavily refactors the code: uses better names for things, splits up
complex functions that behaved very differently depending on how they were
called, removes some redundancies, and generally makes it much simpler and
easier to follow.

- It adds lots of comments, both inline, and also a big explanatory one at
the top which makes it clear exactly how the leak checker works and also
exactly what is meant by definite, possible, and indirect leaks. It also
has some ideas for future improvements.

- All tabs have been converted to spaces.

It also improves the functionality:

- Previously if you did --leak-check=summary, indirect and suppressed
blocks were counted as definite leaks. Now they are done properly, and so
the summary results from --leak-check=summary match those from
--leak-check=yes.

- Previously, some possibly reachable blocks were miscategorised as
definitely reachable, because only the pointer to the block itself was
considered, not any preceding pointers in the chain. This is now fixed.

- Added memcheck/tests/leak-cases, which fully tests all the possible
combinations of directly/indirectly reachable and possibly/definitely
reachable.

And it improves the manual quite a bit, and the FAQ a little bit.

This doesn't fix the leak checker to handle MALLOCLIKE_BLOCK works that have
been taken from within malloc'd blocks, but I think I know how to do it and
hope to do so in a subsequent commit.

It also changes all instances of "<constant>memcheck</constant>" in the
Memcheck manual to "Memcheck", for consistency and because "Memcheck" is
easier to write. There's one similar case for DRD but I didn't change that.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9330 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_leakcheck.c
8df80b22d8f0ed19fb2d7ac7267b8015b202f661 02-Mar-2009 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> Merge r9299..r9303 (various leak-check test fixes) from the DARWIN branch.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9304 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_leakcheck.c
f1efbd47479394298878fdcaa38eb82aea107706 24-Jan-2009 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Make the leak checker a bit less verbose.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@9054 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_leakcheck.c
bc00bb783a9f6a4997cffd969d22dc29e909cb45 19-Jan-2009 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> Merged r8966 (show scanning output during leak checking with -v) from DARWIN
branch.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8972 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_leakcheck.c
9c606bd8634cd6b67bb41fa645b5c639668cfa2d 18-Sep-2008 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Merge all remaining changes from branches/PTRCHECK. These are some
relatively minor extensions to m_debuginfo, a major overhaul of
m_debuginfo/readdwarf3.c to get its space usage under control, and
changes throughout the system to enable heap-use profiling.

The majority of the merged changes were committed into
branches/PTRCHECK as the following revs: 8591 8595 8598 8599 8601 and
8161.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8621 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_leakcheck.c
026debfbfc9a8b49f51a80dcc79de4b73b74bb4e 18-Jul-2008 tom <tom@a5019735-40e9-0310-863c-91ae7b9d1cf9> When the leak checker finds overlapping blocks report the details
before asserting.

Based on patch from John Reiser <jreiser@BitWagon.com>.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8441 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_leakcheck.c
a0b6b2cf9abc7b0d87be1215a245eaccc0452af9 07-Jul-2008 bart <bart@a5019735-40e9-0310-863c-91ae7b9d1cf9> Merged FORMATCHECK branch (r8368) to trunk.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8369 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_leakcheck.c
9269147b61f5a9ad83a799b307720ef544189c09 29-May-2008 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> In the leak checker, don't assert when there are multiple identical
blocks in the lc_shadows array. Such a situation could arise from
incorrect use of VALGRIND_MALLOCLIKE_BLOCK, and has been observed to
cause assertion failures for some runs of Wine on Valgrind.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8144 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_leakcheck.c
b8b79addf04dd5d0b558916e26df0b1927cbd758 03-Mar-2008 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Merge in the DATASYMS branch.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7540 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_leakcheck.c
4d474d086188fd1f29fa97dbd84d8ea2e589a9b8 11-Feb-2008 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Update copyright dates ("200X-2007" --> "200X-2008").


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7398 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_leakcheck.c
8a7b41b41b46c0aa7bd4b6678b82285437e7f08c 23-Sep-2007 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> Fix various format string errors, courtesy of Florian Krohm.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6902 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_leakcheck.c
9ebd6e0c607fa30301b1325874eb8de871c21cc5 08-Jan-2007 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Update copyright dates.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6488 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_leakcheck.c
718d3b11d1d3f2665c05b5670893baf1ad068401 16-Dec-2006 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> Completely overhauled the internals of Memcheck's error handling. All the
different error kinds were reusing the same struct for storing their
details. Each one used some but not all the fields, and the AddrInfo was
similar, and it was very confusing.

So I changed MC_Error and AddrInfo to be tagged unions, like Vex's IRExpr and
IRStmt types. The resulting code is a little more verbose but much easier
to understand. I also split up several error kinds, which also made things
simpler. The user-visible behaviour is identical except for a couple of
very minor things that I've documented in the NEWS file for the 3.3.0
release.

Ideally I'd get rid of the Addr and Char* fields in the core Error type,
which are not always used, and do them similarly within tools. But that
would require changing the core/tool interface, so I'm leaving it for the
moment.




git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6402 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_leakcheck.c
ce4717e852af82afc1ae4c1856d66512ef65b661 06-Dec-2006 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Fix confusing and contradictory "Rerun with ..." messages printed at
the end of MC_(do_detect_memory_leaks). This causes various leak
regression tests to fail; will fix shortly.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6382 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_leakcheck.c
72a28b28f1dc09231450f81afb12183c92305520 17-Oct-2006 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Track VG_(am_find_nsegment) const-ness change.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6298 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_leakcheck.c
4cfea4f9480393ed6799db463b2e0fb8865a1a2f 14-Oct-2006 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Create a new module, m_vki, and move all knowledge about the kernel
interface, except for the syscall numbers, into that. Mostly this
means moving include/vki-*.h to include/vki/vki-*.h.

include/pub_tool_basics.h previously dragged in the entire kernel
interface. I've done away with that, so that modules which need to
see the kernel interface now have to include pub_{core,tool}_vki.h
explicitly. This is why there are many modified .c files -- they have
all acquired an extra #include line.

This certainly breaks all platforms except x86. Will fix shortly.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6225 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_leakcheck.c
5bee4f82443698da49042d3b4f4cf86295f55e71 29-Jul-2006 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Followup to r5991: when leak checking, treat zero-sized blocks as if
they had size one. Otherwise they appear to cover no address space,
so no pointers to them are ever found, and so they are always
incorrectly marked as leaked.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5994 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_leakcheck.c
3cf26a56b250f752eec91ffadfd52ec40aa2d715 28-Jul-2006 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Leak checking fixes from Graydon Hoare:
- fix off by one error in binary searches
- extend leak checking functionality to memory pools


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5991 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_leakcheck.c
de3ad735bcd7dad139938aea01800e75d5000016 28-Jul-2006 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> When doing leak checks, don't poke around in device segments as this
may hang the entire machine. (Tom Hughes).



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5990 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_leakcheck.c
e4b0bf07b0ee0a18eacc5aba91686ab5fc1d327b 06-Jun-2006 sewardj <sewardj@a5019735-40e9-0310-863c-91ae7b9d1cf9> Update copyright dates.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5954 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_leakcheck.c
1d0825ff46d57f0ce83c3fa88538a42f67022eee 27-Mar-2006 njn <njn@a5019735-40e9-0310-863c-91ae7b9d1cf9> Merge in the COMPVBITS branch to the trunk. This is a big change to
Memcheck, replacing the 9-bits-per-byte shadow memory representation to a
2-bits-per-byte representation (with possibly a little more on the side) by
taking advantage of the fact that extremely few memory bytes are partially
defined.

For the SPEC2k benchmarks with "test" inputs, this speeds up Memcheck by a
(geometric mean) factor of 1.20, and reduces the size of shadow memory by a
(geometric mean) factor of 4.26.

At the same time, Addrcheck is removed. It hadn't worked for quite some
time, and with these improvements in Memcheck its raisons-d'etre have
shrivelled so much that it's not worth the effort to keep around. Hooray!

Nb: this code hasn't been tested on PPC. If things go wrong, look first in
the fast stack-handling functions (eg. mc_new_mem_stack_160,
MC_(helperc_MAKE_STACK_UNINIT)).


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@5791 a5019735-40e9-0310-863c-91ae7b9d1cf9
/external/valgrind/memcheck/mc_leakcheck.c