Commit Graph

730 Commits

Author SHA1 Message Date
Bart Van Assche
2796d1b9be RHEL 4 build fix
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12263
2011-11-09 17:31:54 +00:00
Julian Seward
d2daafda62 Use normal setjmp/longjmp, not the __builtin_ ones, as LLVM pretty
much treats the latter kind as no-ops.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12254
2011-10-31 10:59:31 +00:00
Florian Krohm
b0ee68529f Give function copy_input_until_stop the noinline atribute.
At least one of the compilers for s390x nightly builds was inlining it.
Update exp files accoordingly. This should fix any residual back-trace 
noise for this testcase.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12235
2011-10-26 15:27:41 +00:00
Julian Seward
084b7cb10b Fix #284384 (clang 3.1 -Wunused-value warnings in valgrind.h,
memcheck.h) by changing a bunch of VALGRIND_DO_CLIENT_REQUEST_EXPR
into VALGRIND_DO_CLIENT_REQUEST_STMT for cases where the return value
of the former would be unused.  (Bart Van Assche, bart.vanassche@gmail.com)



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12226
2011-10-24 13:21:57 +00:00
Julian Seward
daa6c4607b Change the behaviour of VALGRIND_CHECK_MEM_IS_DEFINED slightly, so
that if the range is partially non-addressable and it contains
undefined data, both errors are reported.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12222
2011-10-24 05:59:54 +00:00
Julian Seward
ae9c958f70 Improvements in freelist handling for Memcheck. See #250065.
(Philippe Waroquiers, philippe.waroquiers@skynet.be)

This patch provides three improvements in the way the free list is 
handled in memcheck.

First improvement: a new command line option --freelist-big-blocks
(default 1000000) specifies the size of "free list big blocks". 
Such big blocks will be put on the free list, but will be re-cycled first
(i.e. in preference to block having a smaller size).
This fixes the bug https://bugs.kde.org/show_bug.cgi?id=250065.
Technically, the freed list is divided in two lists : small
and big blocks. Blocks are first released from the big block list.

Second improvement: the blocks of the freed list are re-cycled before
a new block is malloc-ed, not after a block is freed.
This gives better error messages for dangling pointer errors
when doing many frees without doing malloc between the frees.
(this does not uses more memory).

Third improvement: a block bigger than the free list volume will be
put in the free list (till a malloc is done, so as the needed memory
is not bigger than before) but will be put at the beginning of the
free list, rather than at the end. So, allocating then freeing such a
block does not cause any blocks in the free list to be released.

Results of the improvements above, with the new regression test
memcheck/test/big_blocks_freed_list: with the patch, 7 errors
are detected, 6 are giving the (correct) allocation stack.
Without the patch, only 6 errors are detected, 5 errors without
allocation stack, 1 with a (wrong) allocation stack.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12202
2011-10-22 19:48:57 +00:00
Julian Seward
b9b6742e1f Add an excessively minimal testcase, from #279698, pertaining to the
propagation of V bits through saturated narrowing operations.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12194
2011-10-22 09:55:37 +00:00
Julian Seward
1fd197db11 Add a replacement for strcasestr, along with test case. Fixes #282979.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12187
2011-10-21 08:07:13 +00:00
Florian Krohm
086294dbed Add missing filter scripts to Makefile.am so they are included in
the tarball generated by "make dist".
With this change running regtest from the tarball produces the same
results as a regtest on a checked out repository (on x86 that is).


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12172
2011-10-20 01:17:12 +00:00
Bart Van Assche
399aea2c1b memcheck/tests/linux/Makefile.am: Add four .vgtest files to the distribution tarball and remove the capget binary
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12155
2011-10-14 09:32:46 +00:00
Bart Van Assche
64f66e209a Revert r12128 because it triggers an assertion failure on one of the nightly build systems
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12133
2011-10-11 10:56:11 +00:00
Florian Krohm
5f2312e2a9 First round of changes to get make dist working again.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12131
2011-10-09 23:28:47 +00:00
Bart Van Assche
972d2598ed memcheck/tests/err_disable4: Increase thread stack size a little
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12128
2011-10-09 08:05:08 +00:00
Bart Van Assche
31a228d817 memcheck/tests/unit_libcbase.c: Convert from old-style gcc designated
initializers to C99-style designated initializers. According to the gcc manual,
the former syntax is obsolete since gcc 2.5
(see also http://gcc.gnu.org/onlinedocs/gcc-4.6.1/gcc/Designated-Inits.html).


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12113
2011-10-07 09:45:14 +00:00
Bart Van Assche
64639894d6 memcheck/tests/err_disable4: Reduce memory footprint further.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12112
2011-10-07 09:41:58 +00:00
Florian Krohm
ddd11cf638 Change the filter order. Filename base backtrace filtering
must come first before the filename gets changed to bogus.S
This should unbreak the failure on x86_64. But I can't test it.
We shall see.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12099
2011-10-05 03:09:01 +00:00
Florian Krohm
7a5d4dd13a Update exp files for memcheck's supp_unknown testcase.
Promote the s390x exp file to be the golden one because it has the
correct result. Add an exp-kfail file for those platforms where the testcase
fails (x86).


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12098
2011-10-05 02:34:33 +00:00
Florian Krohm
8d6e98bdfd Rewrite badjump and badjump2 such that the error occurs now on the
same line for all architectures.
Promote the s390x exp file to be the golden one because it has the
correct result. Add exp-kfail files for those platforms where the testcases
fail (x86).


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12097
2011-10-04 20:14:59 +00:00
Florian Krohm
15d93bd860 Fix execve2 testcase.
First, due to a typo in Makefile.am it was compiled with the wrong flags.
Secondly, the testcase gives an incorrect backtrace on x86 (missing the
line where the error occurs). Updated the generic exp to contain the
correct result and added exp-kfail for platforms where this test fails.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12094
2011-10-04 03:55:04 +00:00
Florian Krohm
d2b0c7d982 Turns out there is at least one version of glibc tat contains
a file name writev.c. This screws our filename based backtrace
filtering. Rename writev to writev1 to avoid that problem.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12093
2011-10-04 03:33:59 +00:00
Florian Krohm
c8d25c1a22 The testcases execve1 and fwrite actually fail on x86 in the sense that
they produce an incomplete backtrace. Added exp-kfail files to capture the
results with the incomplete backtraces. Updated the generic exp files.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12092
2011-10-04 03:15:38 +00:00
Florian Krohm
ad7a355b4a Improve filtering of backtrace noise in the memcheck bucket
and update exp files accordingly. This works well for x86
and all testcases pass on my machine.
New file filter_memcheck to do the work. 
There is a bit of a ripple here as filter_memcheck requires
command line arguments to be passed in. So all users of 
filter_memcheck (direct or indirect) were updated as well.
filter_stderr was simplified as was filter_libc.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12091
2011-10-03 23:39:54 +00:00
Florian Krohm
d13b1b34c8 Rename testcase from execve to execve1.
The reason is that the point of failure is in glibc
in a file named execve.c  The backtrace filtering
(which is filename based) cannot distinguish the
two execve.c file names. Renaming the testcsae does the
trick.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12090
2011-10-03 23:05:56 +00:00
Julian Seward
ef47922e1a Limit number of backtrace frames to 3 so as to avoid junk frames.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12087
2011-10-03 16:15:16 +00:00
Julian Seward
65f6c85aa8 Fix multiple problems with this test:
* when creating threads, just ask for a 256k stack size, since creating
  498 threads each with the default 8M stack size fails on 32 bit machines.

* limit number of callers to 3 so as to remove junk frames that cause
  different output on 32 vs 64 bit targets.

* add a proper self-check at the end, to verify the number of detected errors
  is as expected

* update output accordingly



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12086
2011-10-03 16:10:45 +00:00
Florian Krohm
ead612df79 Update for x86.
r8744 gave mainSort the "noinline" attribute, thereby changing
the backtrace. Nox fixed.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12080
2011-10-02 03:06:39 +00:00
Florian Krohm
ac33c6041e Use <sys/mman.h> instead of <linux/mman.h> to fix a compile problem
on SLES 10.  Patch by Rich Coe (rcoe@wi.rr.com). Fixes bugzilla #282238.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12072
2011-09-30 01:27:26 +00:00
Florian Krohm
d0813fd49f Add more .exp files for s390 due to GCC's use of the MVC insn.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12030
2011-09-10 21:46:08 +00:00
Florian Krohm
75ae8f601e Back out r12026; instead add a new .exp file for s390x.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12029
2011-09-10 20:54:17 +00:00
Florian Krohm
0edfee0a4d For s390x we also need to accept a reported size of 1.
This is due to older versions of GCC who use the MVC insn for
assignments and that creates a sequence of 1-byte memory accesses.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12026
2011-09-10 17:56:21 +00:00
Julian Seward
c0bb2b82c6 Avoid excessive fragmentation in m_mallocfree by munmapping unused
superblocks in some circumstances (second attempt).  Bug 250101
comment 15.  (Philippe Waroquiers, philippe.waroquiers@skynet.be).


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12022
2011-09-10 10:17:35 +00:00
Florian Krohm
05545a035c Additional .exp file for s390x.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12020
2011-09-10 03:28:11 +00:00
Bart Van Assche
11ce1f16fa memcheck/tests/linux/timerfd-syscall: Avoid failure on heavily loaded systems
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11997
2011-08-20 11:08:48 +00:00
Bart Van Assche
f3e331e777 memcheck/tests/sbfragment: Make this test pass on Darwin
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11976
2011-08-14 06:41:15 +00:00
Bart Van Assche
06e01f311e memcheck/tests/sbfragment.c: Only use mallinfo() if available.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11970
2011-08-13 05:32:53 +00:00
Florian Krohm
c9c6767b83 Fix prerequisite for memcheck/tests/linux/timerfd-syscall.
The testcase was executed despite uname -r being 2.6.9-42.EL
Extend tests/os_test.c to take an optional 2nd argument
which is a minimum version number. Use os_test in the
prerequisite expression.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11954
2011-07-31 03:22:45 +00:00
Julian Seward
080c67f88d Avoid excessive fragmentation in m_mallocfree facility by munmapping
unused superblocks in some circumstances.  Bug 250101 (==269884,
==275852)
(Philippe Waroquiers, philippe.waroquiers@skynet.be)



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11911
2011-07-24 17:39:10 +00:00
Julian Seward
42ada29286 Add a new client request and pair of macros,
VALGRIND_{DISABLE,ENABLE}_ERROR_REPORTING, which allow a thread to
temporarily disable reporting of errors it makes.  This is useful for
making Memcheck behave sanely in the presence of some MPI
implementations.  Also mark up libmpiwrap.c accordingly.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11910
2011-07-24 16:02:33 +00:00
Julian Seward
ed80c32ae5 Add / fix up test cases for {LD,ST}REX{,B,H,D} on ARM. Works for both
ARM and Thumb encodings.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11865
2011-07-11 11:46:52 +00:00
Julian Seward
ad7de5b336 Delete the AIX5 port. The last release this worked for is 3.4.1,
and then only on AIX 5.2 and 5.3.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11842
2011-06-28 07:25:29 +00:00
Julian Seward
5c1e65aa42 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
2011-06-26 12:41:33 +00:00
Tom Hughes
af8ec0a591 Define _GNU_SOURCE for access to CLONE_XXX flags with gibc 2.14 headers.
Based on patch from Dmitry Djachenko <dimhen@gmail.com>.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11802
2011-06-07 22:53:21 +00:00
Bart Van Assche
64a2d66bdf Silence compiler warnings triggered by certain regression tests programs and that we are not interested in.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11758
2011-05-15 17:06:33 +00:00
Bart Van Assche
9a36fe677e Get rid of the remaining "set but not used" warnings reported by gcc 4.6 by
swapping the roles of the VALGRIND_DO_CLIENT_REQUEST() and
VALGRIND_DO_CLIENT_REQUEST_EXPR() macros. Also, many __attribute__((unused))
declarations on variables have been eliminated. Closes #269778.

Note: so far this patch has been tested on x86/Linux, amd64/Linux and
ppc64/Linux but not yet on any other supported CPU/OS combination.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11755
2011-05-15 07:04:03 +00:00
Bart Van Assche
bd7dbb42d3 timerfd-syscall regression test: Allow even more scheduler variation.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11692
2011-04-12 10:28:31 +00:00
Bart Van Assche
8a3e9fdd7c git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11682 2011-04-03 17:42:19 +00:00
Bart Van Assche
44a6867773 timerfd-syscall regression test: Allow even more scheduler variation.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11676
2011-03-29 10:56:32 +00:00
Julian Seward
b8a03bdc8e Remove a bunch more warnings generated by gcc-4.6 about dead
assignments ("[-Wunused-but-set-variable]"), in the test suite.


git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11675
2011-03-28 21:19:00 +00:00
Bart Van Assche
9df672f236 Add VALGRIND_RESIZEINPLACE_BLOCK() and hence close #267819.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11666
2011-03-25 20:07:25 +00:00
Bart Van Assche
61e5d45e0c Replaced a Unicode character by an ASCII character in a source code comment.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11652
2011-03-17 11:00:11 +00:00