Bart Van Assche [Mon, 26 Oct 2009 16:14:04 +0000 (16:14 +0000)]
Removed the restriction that the size argument of drd_pre_mem_read_asciiz()
should be less than 4096 bytes. This function is called a.o. for the path
argument of the open() system call. This path can be longer than 4096 bytes.
Should fix bug #211941.
Bart Van Assche [Tue, 20 Oct 2009 18:13:26 +0000 (18:13 +0000)]
Fixed an assertion failure triggered by running DRD with the command-line option --trace-mutex=yes on a program using one of the ANNOTATE_HAPPENS_*() macros.
Tom Hughes [Mon, 7 Sep 2009 08:58:29 +0000 (08:58 +0000)]
Unmap the vdso as well as suppressing it by dropping the auxv
entry as on some systems the vdso will be at a random address
and can conflict with things like wine that need to tightly
control where things are mapped.
Bart Van Assche [Wed, 26 Aug 2009 18:11:18 +0000 (18:11 +0000)]
Added regression tests that verify the following behavior:
- On Linux, whether Valgrind properly intercepts the system calls that access
/proc/self/cmdline, /proc/<pid>/cmdline, /proc/self/exe and /proc/<pid>/exe.
- On Darwin, whether Valgrind does not modify the behavior of the system calls
that access the aforementioned files.
Bart Van Assche [Tue, 25 Aug 2009 20:15:41 +0000 (20:15 +0000)]
Switched back from dynamic detection of whether the proc filesystem
is mounted to compile-time logic in order to minimize the differences
in behavior with Valgrind version 3.5.0.
Bart Van Assche [Tue, 25 Aug 2009 17:34:58 +0000 (17:34 +0000)]
Renamed the function VG_(have_proc_filesystem)() into
VG_(is_procfs_mounted)(). The old name was derived from the name
of the preprocessor macro HAVE_PROC while the new name is a more
accurate description of what this function does.
Bart Van Assche [Sun, 23 Aug 2009 11:11:36 +0000 (11:11 +0000)]
Fixed a declaration: function attributes must be inserted after the return type instead of before, otherwise gcc 4.4 ignores the attribute declaration.
Bart Van Assche [Sun, 23 Aug 2009 09:53:27 +0000 (09:53 +0000)]
The configure-time test whether the proc filesystem is mounted (introduced
in r10156) broke cross-compilation. This patch converts the configure-time
test into a runtime test. Should fix bug #204843.
Bart Van Assche [Thu, 20 Aug 2009 06:07:10 +0000 (06:07 +0000)]
Removed the most recently added DRD suppression pattern (was added
to make drd/tests/qt4_mutex pass on Fedora 11 x86_64). Further
analysis has shown that this is an issue in libQtCore that should be
fixed instead of suppressed. Will file a bug report in the Fedora
bugzilla instead.
Tom Hughes [Tue, 18 Aug 2009 14:12:48 +0000 (14:12 +0000)]
The linker in Fedora Rawhide seems to be using ELFOSABI_LINUX as
the ABI in the ELF files it generates instead of ELFOSABI_SYSV as
has been used to date.
This was causing us to use the 64 bit backend to run 32 bit
programs as the launcher failed to identify them as 32 bit.
Vince Weaver [Tue, 18 Aug 2009 00:21:51 +0000 (00:21 +0000)]
Work around a binutils limitation on SuSE 9.1
by hand-coding the 32-bit fldcw instructions,
as the assembler gives an error when
trying to assemble them. The generated binary
is identical to one generated on a system
with working binutils.
Julian Seward [Mon, 17 Aug 2009 16:36:11 +0000 (16:36 +0000)]
Back out r10385 (Change demangler to not use excessive space from
stack) pending further investigations, as per discussion at
http://bugs.kde.org/show_bug.cgi?id=197988.
Julian Seward [Sun, 16 Aug 2009 22:56:53 +0000 (22:56 +0000)]
Comment that we never actually expect to see the string ]]> in a
generated suppression, and hence the problem of having to split it
into multiple CDATA blocks is moot.
Julian Seward [Sun, 16 Aug 2009 01:48:35 +0000 (01:48 +0000)]
ppc32-linux: di_notify_mmap: accept data sections mapped rwx as well as ones
mapped rw-. Fixes #190820. Really, this logic is still pretty ropey; we
could do a lot better here.
Fix the access_extended wrapper, which was rather broken. That's what I get
for not testing properly. Added a regtest for it too. Fixes bug 200760
(again, properly this time).
Julian Seward [Sat, 15 Aug 2009 22:41:51 +0000 (22:41 +0000)]
When generating XML output for suppressions, print the suppression
both wrapped up in XML tags (as before) but also in plain text in a
sequence of CDATA blocks. Normally only one, but in the worst case
the raw data will have ]]> in it, in which case it needs to be split
across two CDATA blocks.
This apparently simple change involved a lot of refactoring of the
suppression printing machinery:
* in the core-tool iface, change "print_extra_suppression_info" (which
prints any auxiliary info) to "get_extra_suppression_info", which
parks the text in a caller-supplied buffer. Adjust tools to match.
* VG_(apply_StackTrace): accept a void* argument, which is passed to
each invokation of the functional parameter (a poor man's closure
implementation).
* move PRINTF_CHECK into put_tool_basics.h, where it should have been
all along
* move private printf-into-an-XArray-of-character functions from
m_debuginfo into m_xarray, and make them public
* gen_suppression itself: use all the above changes. Basically we
always generate the plaintext version into an XArray. In text mode
that's just printed. In XML mode, we print the XMLery as before,
but the plaintext version is dumped into a CDATA block too.
* update the Protocol 4 specification to match all this.
This still isn't 100% right in the sense that the CDATA block data
needs to be split across multiple blocks if it should ever contain the
CDATA end mark "]]>". The Protocol 4 spec has this right even though
the implementation currently doesn't.
Bart Van Assche [Wed, 12 Aug 2009 12:55:56 +0000 (12:55 +0000)]
Suppressed compiler warnings reported by gcc 4.4.x on the source code
of regression tests about intentionally uninitialized variables and
about intentionally freed non-heap memory.