Julian Seward [Sat, 8 Nov 2008 15:22:19 +0000 (15:22 +0000)]
When trying to establish whether or not debuginfo should be read from
a file, first the mapping permissions _before_ peering at the file's
header, rather than afterwards. This changes the logic to behave more
like it does in 3.3.x. Fixes #164669, although really it is all still
rather fragile. The bug report,
http://bugs.kde.org/show_bug.cgi?id=164669, contains a detailed
explanation.
Julian Seward [Sat, 8 Nov 2008 15:17:50 +0000 (15:17 +0000)]
Add a second expected output. It appears that a recent glibcs print
one (or a value near it) as "+1.0000e+00" instead of "+1.0000e-00".
Or it could be a rounding issue .. I dunno.
Julian Seward [Sat, 8 Nov 2008 15:14:01 +0000 (15:14 +0000)]
Use a "sided" comparison rather than a "point" comparison, so as to
ensure that gcc generates only one conditional jump per conditional
expression, not two.
Julian Seward [Sat, 8 Nov 2008 15:11:03 +0000 (15:11 +0000)]
Sigh: /bin/sh on Ubuntu is not bash, it is dash (what a nuisance) and
it doesn't do the "[ ]" thing itself; instead it hands it off to
/usr/bin/[. And that doesn't understand "==" on strings; it wants "="
instead.
Julian Seward [Sat, 8 Nov 2008 15:06:57 +0000 (15:06 +0000)]
Add a new expected output for this test. Really it's a bad test,
in the sense that there are a huge number of valid outcomes, but
I'm not sure how to test it better.
Julian Seward [Sat, 8 Nov 2008 15:04:58 +0000 (15:04 +0000)]
Run this test -q, so as to remove the variance in outputs exhibited as
different numbers of blank lines than expected. I assume this
signifies that different numbers of forked-but-not-exec'd processes
are exiting, but I'm not sure.
Bart Van Assche [Tue, 4 Nov 2008 17:49:58 +0000 (17:49 +0000)]
Make sure that $d is always an absolute path, even if vg-in-place has been started without specifying a path. Furthermore, vg-in-place now also works when started from a path containing spaces.
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.