Julian Seward [Mon, 3 Nov 2008 23:10:25 +0000 (23:10 +0000)]
Improvements to the suppression mechanism:
* Allow frame-level wildcarding in suppressions. Based on a patch by
Akos PASZTORY. Fixes #151612. With this change, a line "..." in a
suppression stacktrace matches any number of frames, including zero.
* Show line numbers in syntax errors when parsing supp files.
Julian Seward [Sun, 2 Nov 2008 23:46:32 +0000 (23:46 +0000)]
Add summaries for more than 60 bugs logged in bugzilla since 3.3.1 was
released. Looking at this lot, you'd get the impression the system is
so bug-riddled it's amazing it works at all.
Julian Seward [Thu, 30 Oct 2008 13:08:31 +0000 (13:08 +0000)]
Origin tracking: handle 16-bit excess in guest state reads/writes.
This gets rid of the messages "Approx: do_origins_Dirty(R): missed %d
bytes\n" and "Approx: do_origins_Dirty(W): missed %d bytes\n".
Julian Seward [Mon, 27 Oct 2008 09:54:14 +0000 (09:54 +0000)]
Fix #includes in some more libiberty files that seem to have been
forgotten about in r8710. This should _really_ make the revised
demangler independent of any system installed libiberty.
Julian Seward [Sat, 25 Oct 2008 16:22:41 +0000 (16:22 +0000)]
Merge Helgrind from branches/YARD into the trunk. Also includes some
minor changes to make stack unwinding on amd64-linux approximately
twice as fast as it was before.
Fix for bug 166581: use correct output file name after PID change
This is a little tricky because
* we want to check directly at startup whether the output file
can be written, thus the file name is set at beginning.
* a fork changes the PID in the child, and thus (potentially) the
output file name has to be updated. This best is directly before
generating the profile dump.
* the child after fork needs to be controllable via callgrind_control.
The setup of the control interface needs the new file name, too.
The fix is to allow multiple calls of CLG(init_dumps), everytime the
output file name is needed.
Julian Seward [Thu, 23 Oct 2008 10:54:40 +0000 (10:54 +0000)]
Tolerate apparently broken Dwarf3 generated by gcc (GCC) 4.4.0 20081017 (experimental): accept DW_TAG_enumerator with only a
DW_AT_name but no DW_AT_const_value. This is in violation of the
Dwarf3 standard.
Julian Seward [Thu, 23 Oct 2008 09:46:59 +0000 (09:46 +0000)]
gcc-4.4.0 (snapshot) started complaining about buf.sem_nsems being
uninitialised in get_sem_count(). This makes it quiet. I am not sure
whether get_sem_count() was correct or not without it (probably was
OK).
Julian Seward [Mon, 20 Oct 2008 23:33:49 +0000 (23:33 +0000)]
On ppc32/64 we don't have a reliable way to detect function entries
and exits at the moment. So disable stack array bounds checking for
ppc32/64 platforms. Also (unnecessarily) disables global array bounds
checking on those platforms.
Add a flag --enable-sg-checks=no|yes [yes] so that stack and global
checking can be optionally disabled on any platform. This is useful
because stack and global checking is much more expensive than heap
checking, and so it may be desirable to disable it.
Julian Seward [Mon, 20 Oct 2008 16:08:55 +0000 (16:08 +0000)]
Dwarf3 variable & type reader: use 64-bit numbers throughout to
represent the sizes of types, even on 32-bit hosts, where a type with
a size >= 2^32 is, well, if not meaningless, then at least impossible
to instantiate. This is of course motivated by reality .. on ppc32
SUSE11.0, the debuginfo for glibc-2.8 appears to contain a declaration
amounting to
Julian Seward [Mon, 20 Oct 2008 10:25:16 +0000 (10:25 +0000)]
Re-enable preening of global invariants. (This happens when a .so is
unmapped, and that .so contains global variables that were accessed
while it was mapped in.)
Julian Seward [Sat, 18 Oct 2008 19:55:31 +0000 (19:55 +0000)]
get_Seg_containing_addr() (in h_main.c): remove naive algorithm that
searches through all live Segs and replace it with one which is O(log
N) in the number of live Segs.
Don't trust the result reported by pkg-config about QtCore, but try whether linking succeeds. This additional test is necessary when running configure with the flag --enable-only32bit.
Made test for compiler atomic builtins more strict, such that drd/tests/atomic_var.c doesn't trigger bug http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34115 in a.o. gcc 4.3.1 when Valgrind is configured with --enable-only32bit.
Fix longstanding bug in dual-arch support, which originated in
memcheck/tests/Makefile.am and was copied into drd/tests/Makefile.am.
When building regtests for a 32-bit only build on a 64-bit CPU, the
use of $(VG_ARCH) in these Makefiles is incorrect, because VG_ARCH
will be set to the 64-bit architecture, not the 32-bit architecture.
See comments on VG_ARCH_PRI and VG_ARCH_MAX in configure.in for more
details.
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.
- Added support for the variable ABT_JOBS, number of jobs to run in parallel.
- Added support for the variable ABT_RUN_REGTEST, the command to run the regression tests.
- Added support for the variable ABT_CONFIGURE_OPTIONS, such that extra command line options
can be passed to the configure script.
- Cross-compilation patch is applied after source code checkout and before the source code is
compiled.