caused many inaccuracies so far because it only matters if addresses
above the 4GB line are used. Thanks to Josef W for the patch.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4898
positives from ppc code of the form "cmpi %reg,0 ; branch-if-negative
.." where the top bit of %reg is defined but not all of the other bits
are (common-ish enough to cause a considerable number of false
positives if not done right).
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4890
would have caused ppc32 to miss many uninitialised value errors.
(Change affects ppc32 only).
Also add reference to the Usenix paper.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4888
undefinedness was not being done properly for scalar shifts and that
could have led to undefined-value errors being falsely reported in the
obscure case where the shift amount was undefined but the end result
of the shift was unused. This commit handles shifts more in
accordance with the maximally-lazy V-bit-testing scheme used by the
rest of memcheck.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4887
address rather than the base address as the heap may have been split
into more than one segment by using mprotect on it...
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4882
the call to VG_(cli_malloc) returns NULL then don't try and copy the
data or register a new block and just leave the old block in place
instead, but still return NULL to the caller.
Fixes bug 109487 and it's duplicates.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4875
Changed some printf specifiers accordingly, plus some more that were
incorrect.
Also put commas in various output numbers, eg. the leak check stats.
This makes them much easier to read when they get big. One
exception is in XML number-only fields such as <leakedbytes>.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4874
with respect to syscalls. It is detailed and comprehensive but does
not offer a way to deal with minor deviations in behaviour from the
vanilla kernel sources, either due to running a hacked kernel or
running a vanilla kernel with a custom kernel module loaded.
This commit adds a flexible way to handle such cases without polluting
the vanilla handler syswrap-*.c files or their supporting vki_*.h
header files. For each OS, a syswrap-OS-variants.c file is added,
containing wrappers for variants of OS. A new command line flag
--kernel-variants= carries a comma separated list of variant names
that apply to the current run. There are no other changes.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4873
* show the filename, if any, when printing out disagreeing mappings
* if the kernel offers us a mapping to a file with the name
"/dev/zero (deleted)", don't do a /dev/ino comparison.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4872
out. Instead, print a warning message, continue, and cause any
attempt to trace into a child process to fail with ECHILD.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4861
* include explaination from Tom
* make logic easier to follow, and add comments
* remove veto on the -d file descriptor (detailed comments in code)
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4860
any DWARF2 debug information. All make sure we don't fall over if
the .debug_info is less than four bytes long. Fixed bug 113642.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4856
can ensure they are never merged with adjacent segments. This makes
sure that we can find the right piece of memory to release when the
shmdt system call occurs.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4854