Also reinstated SF_DEVICE, which is used to ensure we don't try and
leakcheck a page that is mapped from a device. This got lost in the
2.x-to-3.x transition, or some time after.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4538
Previously, %d printed a 32-bit int. %ld and %lld printed 64-bit ints.
So if you wanted to print a word-sized int (eg. a SizeT variable), you
had to cast it to a Long and then print with %lld in order to work on
both 32-bit and 64-bit platforms.
I changed things so that %d prints a 32-bit int, %ld prints a word-sized
int, and %lld prints a 64-bit int. There are two advantages to this:
- it now matches the way the normal glibc printf() works;
- you can print word-sized ints without casting.
I also made the corresponding change for %u/lu/llu and %x/lx/llx, and I
changed a couple of VG_(printf)() invocations accordingly.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4527
tool preload modules, which are called vgpreload_<tool>.so. Also
fixed a couple of comments relating to this.
(This need not be merged into 3_0_X.)
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4514
heap blocks. The minimum size for redzones is now sizeof(void*), but
I forgot to ensure this. Massif was asking for 0 byte redzones, and this
was screwing things up on 64-bit platforms, and Massif was dying very
quickly. This should fix bugs #111090 and #111285.
The fact that Massif was this badly broken but there were only 2 bug reports
indicates that not many people are using it, at least not on AMD64.
I also added a regtest that does some basic malloc/realloc/free testing
for Massif, which would have caught this problem.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4492
* The wrapper for fcntl(F_SETOWN) and fcntl(F_SETSIG) ignores ARG3,
but should not.
* Linux PRE(sys_umount) doesn't print ARG2.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4487
checking of the lo/hi size fields. If we are corrupting the metadata,
this should make it more likely that we get an assertion failure rather
than an outright crash.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4480
the libvex.a target as phone to ensure that we always try and rebuild
it in case there have been changed in the VEX code.
The partially fixes bug #110770.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4473
snapshots on ppc32-linux in the presence of functions subject to
leaf-function optimisations.
At the same time, simplify the stack unwinding logic by basically
implementing it separately for each target. Having a single piece of
logic for amd64 and x86 was tenable, but merging ppc32 into it is too
confusing. So now there is an x86/amd64 unwinder and a ppc32
unwinder.
This requires plumbing a link-register value into
VG_(get_StackTrace2), and that in turn requires passing it around
several other stack-trace-related functions. Hence 7 changed files.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4464
using "obj:*" or "fun:*". Also generate "obj:*" for such lines
with --gen-suppressions. Includes a regtest.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4447
memcheck, and they are hard to get rid of and hard to suppress. So
add a bootstrap strlen function and redirect to it right from the
start. This fn only replaces the strlen in ld.so; the "normal"
redirect mechanism still replaces the strlen that glibc supplies.
This commit finally (!) makes memcheck behave sanely on ppc32.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4445
script so we are sure to get the 32 bit version when appropriate.
Also pass ARCH_CORE_AM_CFLAGS in EXTRA_CFLAGS when building VEX so
we can be sure to build a 32 bit VEX when appropriate.
This should fix bug #110830.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@4442