Also, improve the failure message a bit, so as to tell people what package
they need to install, in at least some cases.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11538
When unwinding needs to be done because the stack pointer is reset
(e.g. by a longjmp), it makes no sense to interprete the control
flow change as call, but should be seen as a return.
This indirectly fixes bug 246152. Unwinding potentially changes the
exec state, which is unique for threads, but also for signal handlers.
E.g. this is true for a longjmp out of a signal handler. Exec state
changes modify members of struct CLG_(current_state), such as
CLG_(current_state).bbcc and CLG_(current_state).jmps_passed, which
are backed in CLG_(setup_bbcc)() by last_bbcc and passed, respectivly.
On a exec state change, these local vars go out of sync, and lead
to invalid data passed to CLG_(push_call_stack)() for handling a call,
which triggered data corruption, and the symptoms seen in bug 246152.
As in the given situation, there is no call anymore, there is no call
into CLG_(push_call_stack)(), and the corruption (or since last commit
the failed assertion) is not triggered any more.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11524
This is part 1 of the fix to bug 246152, and makes the bug
reproducable as failed assertion also on Ubuntu 10.10 on 64bit
machines. However, the test needs to be compiled 32bit (-m32).
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11523
rendering the mempool machinery impossibly slow for pools containing
many blocks. Fixes#255966.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11513
->00.00% (0B) in 11 places, all below massif's threshold (00.00%)
the threshold would always be incorrectly printed as 00.00%. This was
because the percentage printing was broken for percentages less than 1.0.
This change fixes this problem, and modifies a test to check for it.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11511
mempools: try and relate an invalid address to known mempool
allocated blocks, and if that fails, to malloc'd blocks that
back the mempool. See #254420.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11509
Useful if the program in question catches signals, in which case the usual
"Process terminating..." stack trace isn't shown. Requested by Jesse
Ruderman.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11504
Correct a beginners PERL bug ;-)
Need to create new arrays, not just copying references to ARRAYs
around, which are modified later on...
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11497
(1) allowing translations to chase across BB boundaries, as in the
non-smc-check case
(2) on 64-bit targets, do the checksumming with 64-bit loads
instead of 32-bit ones.
(valgrind-side change, to match vex r2070)
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11495
Massif: specify avg translation size at all, so as to avoid excessive
retranslations caused by the fact that the default value is far below
reality for Massif.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11494
is how mmap() sizes are treated. It fixes an assertion failure in Massif
with --pages-as-heap=yes.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11485