]> git.ipfire.org Git - thirdparty/valgrind.git/log
thirdparty/valgrind.git
13 years agoWire up epoll_create1 on ARM systems.
Tom Hughes [Thu, 19 Apr 2012 14:54:30 +0000 (14:54 +0000)] 
Wire up epoll_create1 on ARM systems.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12510

13 years agoscheduler, ticket lock: Add memory barriers necessary to avoid a deadlock on PowerPC...
Bart Van Assche [Thu, 19 Apr 2012 11:00:32 +0000 (11:00 +0000)] 
scheduler, ticket lock: Add memory barriers necessary to avoid a deadlock on PowerPC systems

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12509

13 years ago... and set $(BOOST_LIBS) properly again.
Bart Van Assche [Wed, 18 Apr 2012 18:42:34 +0000 (18:42 +0000)] 
... and set $(BOOST_LIBS) properly again.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12508

13 years agoconfigure.in: Fix detection of Boost libraries. Reported by <plug.gulp@gmail.com>.
Bart Van Assche [Wed, 18 Apr 2012 18:34:22 +0000 (18:34 +0000)] 
configure.in: Fix detection of Boost libraries. Reported by <plug.gulp@gmail.com>.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12507

13 years agoadd some .globl or used attribute to avoid link failures with gold linker + LTO
Philippe Waroquiers [Mon, 16 Apr 2012 22:06:47 +0000 (22:06 +0000)] 
add some .globl or used attribute to avoid link failures with gold linker + LTO

When doing experiment with gcc 4.7.0 and link time optimisation,
encountered link failures on amd64 which were solved by adding
.globl and used attribute.
=> added .globl in similar places for arm/x86/ppc32/s390.
Did not touch darwin (which asm seems somewhat different).

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12506

13 years agoChange permission mask for FIFOs and shared memory to 0600 instead of 0666
Philippe Waroquiers [Sun, 15 Apr 2012 21:20:52 +0000 (21:20 +0000)] 
Change permission mask for FIFOs and shared memory to 0600 instead of 0666
Following a discussion about which user can debug which VAlgrind gdbserver:
The default umask will remove the "other" and "group" write bits.
Without the w bits, nothing works in any case.
Moreover, if the vgdb process does not belong to the user running the
V gdbserver, connections are also not possible.
=> remove useless/confusing bits.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12505

13 years agopatch fixing 297991: mmap changing a file descriptor current position
Philippe Waroquiers [Fri, 13 Apr 2012 23:07:29 +0000 (23:07 +0000)] 
patch fixing 297991: mmap changing a file descriptor current position

Bug caused by the following problem:
for each mmap, Valgrind reads the 1st 1024 bytes to detect
if this is an mmap-ed file containing debug info to decode.

Reading this 1Kb is done with VG_(pread). VG_(pread) should be
the equivalent of syscall pread but on linux, it is implemented as
a seek+read.

The patch implements VG_(pread) in terms of the underlying pread syscall.

Test mmap_fcntl_bug.c completed to also verify the fd current position
before and after the mmap.

tested on linux x86/amd64/ppc32/ppc64/s390.
(not tested on Darwin)
(manually tested on arm-android)

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12504

13 years agoFix 297992 Support systems missing WIFCONTINUED (e.g. pre-2.6.10 Linux)
Philippe Waroquiers [Fri, 13 Apr 2012 17:27:40 +0000 (17:27 +0000)] 
Fix 297992  Support systems missing WIFCONTINUED (e.g. pre-2.6.10 Linux)

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12503

13 years agoAdd symlinks that were missed out from r12500 due to last-minute SVN
Julian Seward [Thu, 12 Apr 2012 17:35:15 +0000 (17:35 +0000)] 
Add symlinks that were missed out from r12500 due to last-minute SVN
snafus.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12501

13 years agoPOWER Processor decimal floating point instruction support: part 2
Julian Seward [Thu, 12 Apr 2012 17:28:57 +0000 (17:28 +0000)] 
POWER Processor decimal floating point instruction support: part 2
(bug #297497) (Carl Love, carll@us.ibm.com) (Valgrind side, mostly
tests)

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12500

13 years agoAndroid's libc includes advertise a "malloc_usable_size", but the
Julian Seward [Wed, 11 Apr 2012 08:46:53 +0000 (08:46 +0000)] 
Android's libc includes advertise a "malloc_usable_size", but the
libc.so contains no such symbol; rather a "dlmalloc_usable_size"
(great, huh :-) So intercept that too, on Android.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12498

13 years agoAdd a test re conversions of QNaNs between 64- and 80-bit FP
Julian Seward [Wed, 11 Apr 2012 07:12:32 +0000 (07:12 +0000)] 
Add a test re conversions of QNaNs between 64- and 80-bit FP
formats.  Related to Mozilla bug #738117.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12497

13 years agoouter/inner setup: new perf/vg_perf options to run perf tests + support translation...
Philippe Waroquiers [Sun, 8 Apr 2012 19:52:38 +0000 (19:52 +0000)] 
outer/inner setup: new perf/vg_perf options to run perf tests  + support translation chaining in inner.

* perf/vg_perf:
Similarly to tests/vg_regtest, perf/vg_perf now accepts the 3
optional arguments:
    --outer-valgrind
    --outer-tool
    --outer-args

This allows easy analysis or comparison of performance between
different Valgrind versions (e.g. using callgrind, or cachegrind/cg_diff).

* See README_DEVELOPERS for more details.

* vg_regtest modified so as to use the 'in-place' build of inner, rather
  than the installed version.

* added option --smc-check=all-non-file to vg_perf and vg_regtest
  outer default arguments (needed when evaluating a Valgrind which does
  translation chaining).

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12496

13 years agoDisable test on big-endian platforms.
Florian Krohm [Fri, 6 Apr 2012 14:50:52 +0000 (14:50 +0000)] 
Disable test on big-endian platforms.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12495

13 years agoSkip the test if it was not compiled, i.e. dwarf4 is not supported.
Florian Krohm [Fri, 6 Apr 2012 13:54:53 +0000 (13:54 +0000)] 
Skip the test if it was not compiled, i.e. dwarf4 is not supported.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12494

13 years agofix off by one in string
Philippe Waroquiers [Fri, 6 Apr 2012 11:51:04 +0000 (11:51 +0000)] 
fix off by one in string

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12493

13 years agoAdd support for reading DWARF4 .debug_types sections. Fixes #284124.
Julian Seward [Thu, 5 Apr 2012 07:55:47 +0000 (07:55 +0000)] 
Add support for reading DWARF4 .debug_types sections.  Fixes #284124.
(Tom Tromey, tromey@redhat.com)

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12491

13 years agoFix incorrect use of VG_(addToXA). (Tom Tromey <tromey@redhat.com>)
Julian Seward [Thu, 5 Apr 2012 07:15:22 +0000 (07:15 +0000)] 
Fix incorrect use of VG_(addToXA).  (Tom Tromey <tromey@redhat.com>)

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12490

13 years agoComment-only fix. (Tom Tromey <tromey@redhat.com>)
Julian Seward [Wed, 4 Apr 2012 17:42:02 +0000 (17:42 +0000)] 
Comment-only fix.  (Tom Tromey <tromey@redhat.com>)

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12487

13 years agoAdd support for the move_pages system call. BZ#282790.
Tom Hughes [Tue, 3 Apr 2012 10:51:27 +0000 (10:51 +0000)] 
Add support for the move_pages system call. BZ#282790.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12485

13 years agoFixes for capabilities checking w.r.t. Power DFP instructions
Julian Seward [Mon, 2 Apr 2012 21:25:14 +0000 (21:25 +0000)] 
Fixes for capabilities checking w.r.t. Power DFP instructions
(Valgrind side).  Fixes #297329.
(Maynard Johnson, maynardj@us.ibm.com)

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12483

13 years agodrd, realloc() intercept: Swap freeing and cleaning memory.
Bart Van Assche [Mon, 2 Apr 2012 15:46:51 +0000 (15:46 +0000)] 
drd, realloc() intercept: Swap freeing and cleaning memory.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12482

13 years agoconfigure.in: Avoid that configure complains about "-----: command not found".
Bart Van Assche [Mon, 2 Apr 2012 15:45:51 +0000 (15:45 +0000)] 
configure.in: Avoid that configure complains about "-----: command not found".

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12481

13 years agoFix track-origin instrumentation for ppc32 following r2270/r12476
Julian Seward [Mon, 2 Apr 2012 15:10:37 +0000 (15:10 +0000)] 
Fix track-origin instrumentation for ppc32 following r2270/r12476
(initial DFP support).  Maynard Johnson (maynardj@us.ibm.com).

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12480

13 years agodrd, free() intercept: Swap freeing and cleaning memory.
Bart Van Assche [Mon, 2 Apr 2012 14:36:22 +0000 (14:36 +0000)] 
drd, free() intercept: Swap freeing and cleaning memory.

Note: since the big lock is held while the malloc() and free() intercepts are
running, and since mmap() is treated by Valgrind as a non-blocking system call,
this code change is not expected to result in a behavior change of drd.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12478

13 years agoInitial support for POWER Processor decimal floating point
Julian Seward [Mon, 2 Apr 2012 10:22:05 +0000 (10:22 +0000)] 
Initial support for POWER Processor decimal floating point
instruction support -- VEX side changes.  See #295221.

This patch adds test cases.  Also adds some minor Memcheck
instrumentation tweaks necessitated by the IR changes.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12476

13 years agodrd: Reenable reporting races on stack variables that are shared over threads for...
Bart Van Assche [Sun, 1 Apr 2012 15:06:57 +0000 (15:06 +0000)] 
drd: Reenable reporting races on stack variables that are shared over threads for --check-stack-var=yes.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12475

13 years agodrd: Don't complain about stack variables that are shared over threads. Closes #297147
Bart Van Assche [Sun, 1 Apr 2012 14:40:16 +0000 (14:40 +0000)] 
drd: Don't complain about stack variables that are shared over threads. Closes #297147

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12474

13 years agogcc-4.7.0 complains about some __attribute__((always_inline)) here,
Julian Seward [Sat, 31 Mar 2012 00:06:04 +0000 (00:06 +0000)] 
gcc-4.7.0 complains about some __attribute__((always_inline)) here,
so change them back to vanilla ones.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12473

13 years agoFix #ifdef vs { mismatch in r12471, that broke compilation on MacOS.
Julian Seward [Sat, 31 Mar 2012 00:04:59 +0000 (00:04 +0000)] 
Fix #ifdef vs { mismatch in r12471, that broke compilation on MacOS.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12472

13 years agoFurther fix 297078 : implement conversion between vki and gdb real time sig nr.
Philippe Waroquiers [Fri, 30 Mar 2012 20:25:26 +0000 (20:25 +0000)] 
Further fix 297078 : implement conversion between vki and gdb real time sig nr.

* gdbserver_tests/nlpasssigalrm
   modify test so as to test also a real time signal

* coregrind/m_gdbserver/signals.c
  - implement translation between gdb real time signal numbers
    and vki real time signal numbers
  - ensure non-convertible signals are giving an error

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12471

13 years agoFix bug 297078 gdbserver signal handling problems caused by diff vki nr/gdb nr and
Philippe Waroquiers [Thu, 29 Mar 2012 21:56:47 +0000 (21:56 +0000)] 
Fix bug 297078 gdbserver signal handling problems caused by diff vki nr/gdb nr and
    non reset of "C-ontinued" signal

* To allow vki signame to be used in debuglog:
  - pub_core_signals.h : added prototype for Char *VG_(signame)
  - m_signals.c : changed static const Char *signame(Int sigNo)
                      to const Char *VG_(signame)(Int sigNo)

* valgrind-low.c : when the signal to report to gdb has
  been reported, clear it so that it is not reported anymore
  afterwards.

* m_gdbserver.c: when checking in pass_signals if signal
  can be passed without gdb interaction, do a conversion
  from vki nr to gdb nr when indexing
  (as pass_signals[] is indexed by gdb_nr).

* various gdbserver files:
  - used vki_ prefix for some args and variables to clarify
  - better debuglog tracing

* modified nlpasssigalrm.vgtest to test SIGCHLD signal
  handling followed by a break (to see SIGTRAP is properly
  given to gdb).

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12470

13 years agoAdd some more suppressions for OSX 10.7.2.
Julian Seward [Wed, 28 Mar 2012 14:35:00 +0000 (14:35 +0000)] 
Add some more suppressions for OSX 10.7.2.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12469

13 years agoUpdate the memcpy intercept for Helgrind in accordance with that
Julian Seward [Tue, 27 Mar 2012 16:49:55 +0000 (16:49 +0000)] 
Update the memcpy intercept for Helgrind in accordance with that
for Memcheck.  Fixes #293855.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12468

13 years ago/* Do expensive interpretation for Iop_Add32 and Iop_Add64 on
Julian Seward [Tue, 27 Mar 2012 10:19:39 +0000 (10:19 +0000)] 
/* Do expensive interpretation for Iop_Add32 and Iop_Add64 on
   Darwin.  10.7 is mostly built with LLVM, which uses these for
   bitfield inserts, and we get a lot of false errors if the cheap
   interpretation is used, alas.  Could solve this much better if
   we knew which of such adds came from x86/amd64 LEA instructions,
   since these are the only ones really needing the expensive
   interpretation, but that would require some way to tag them in
   the _toIR.c front ends, which is a lot of faffing around.  So
   for now just use the slow and blunt-instrument solution. */

Pertains to, although does not completely solve, #242137.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12467

13 years agoAdd a nasty kludge in the handling of mmap on Darwin. Does not apply
Julian Seward [Tue, 27 Mar 2012 10:06:31 +0000 (10:06 +0000)] 
Add a nasty kludge in the handling of mmap on Darwin.  Does not apply
to any other platforms.  Prevent mmap(ANON) from returning zero (zero
with success, that is) since (a) some programs are observed to be
spooked by getting zero from a successful call to mmap, and (b) it's
pretty stupid from the point of view of program safety and possibly
security, since it causes page zero to become accessible.  So don't.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12466

13 years agorlimit64_nofile won't build on Darwin, so don't try.
Julian Seward [Tue, 27 Mar 2012 10:03:56 +0000 (10:03 +0000)] 
rlimit64_nofile won't build on Darwin, so don't try.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12465

13 years agoMake this compile on Darwin.
Julian Seward [Tue, 27 Mar 2012 09:39:22 +0000 (09:39 +0000)] 
Make this compile on Darwin.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12464

13 years agoFix up debug printing -- no functional change.
Julian Seward [Tue, 27 Mar 2012 09:39:04 +0000 (09:39 +0000)] 
Fix up debug printing -- no functional change.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12463

13 years agoKeep the stack properly 16 aligned when delivering signals on x86-darwin.
Julian Seward [Tue, 27 Mar 2012 09:38:23 +0000 (09:38 +0000)] 
Keep the stack properly 16 aligned when delivering signals on x86-darwin.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12462

13 years agoKeep the stack properly 16-aligned when delivering signals on
Julian Seward [Tue, 27 Mar 2012 09:24:54 +0000 (09:24 +0000)] 
Keep the stack properly 16-aligned when delivering signals on
amd64-darwin.  Fixes the failure shown in
https://bugs.kde.org/show_bug.cgi?id=254646#c13

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12461

13 years agoFill in missing signal handling macros for amd64-darwin.
Julian Seward [Tue, 27 Mar 2012 08:44:17 +0000 (08:44 +0000)] 
Fill in missing signal handling macros for amd64-darwin.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12460

13 years agoDarwin: Fix a copy/paste error that was introduced in r12458
Bart Van Assche [Mon, 26 Mar 2012 18:13:29 +0000 (18:13 +0000)] 
Darwin: Fix a copy/paste error that was introduced in r12458

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12459

13 years agoCheck whether the big lock is held before invoking pre_thread_ll_create.
Bart Van Assche [Sun, 25 Mar 2012 17:51:59 +0000 (17:51 +0000)] 
Check whether the big lock is held before invoking pre_thread_ll_create.

If the pre_thread_ll_create tracking function would be invoked without the
big lock being held, that would trigger a race condition in the tools that
implement this tracking function.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12458

13 years agoRemove strange e which appeared in r12456, replace by a real e.
Philippe Waroquiers [Sun, 25 Mar 2012 14:55:17 +0000 (14:55 +0000)] 
Remove strange e which appeared in r12456, replace by a real e.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12457

13 years agoHave check_makẹfile_consistency run at the end of make regtest
Philippe Waroquiers [Sun, 25 Mar 2012 10:54:59 +0000 (10:54 +0000)] 
Have check_makẹfile_consistency run at the end of make regtest
This ensures that a missing file in the Makefile is detected,
without blocking the tests.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12456

13 years agoadd test-plo-no.stderr.exp-s390x-mvc in EXTRA_DIST.
Philippe Waroquiers [Wed, 21 Mar 2012 20:32:00 +0000 (20:32 +0000)] 
add test-plo-no.stderr.exp-s390x-mvc in EXTRA_DIST.

Note: such missing files in EXTRA_DIST are found
by check_makefile_consistency.
However, to avoid blocking the tests, the return code
of check_makefile_consistency is ignored, but the errors
it detects are pages before the end of the make regtest output.

=> it might be a good idea to move the check_makefile_consistency
as the last step of regtest: target, and not ignore its return code.
This means:
   trials tests will not block make regtest
   such errors will be noticed.

For the moment, just fixed the missing file in EXTRA_DIST

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12455

13 years agoSupport sys_fallocate on arm-linux.
Julian Seward [Wed, 21 Mar 2012 19:37:41 +0000 (19:37 +0000)] 
Support sys_fallocate on arm-linux.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12454

13 years agofix 295799 Missing \n with get_vbits in gdbserver when line is % 80 and there are...
Philippe Waroquiers [Tue, 20 Mar 2012 19:04:39 +0000 (19:04 +0000)] 
fix 295799  Missing \n with get_vbits in gdbserver when line is % 80 and there are some unaddressable bytes

patch from Marc Bessières

Thanks

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12453

13 years agoModify test so that scheduling events are generated.
Philippe Waroquiers [Mon, 19 Mar 2012 20:19:23 +0000 (20:19 +0000)] 
Modify test so that scheduling events are generated.
Even without fair scheduling, this ensures the progress
of each thread.
This avoids the test looping forever in an outer/inner
setup.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12452

13 years agoUpdate s390 opcode list.
Florian Krohm [Mon, 19 Mar 2012 13:22:21 +0000 (13:22 +0000)] 
Update s390 opcode list.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12451

13 years agoAdd script that assists with updating s390-opcodes.csv.
Florian Krohm [Sun, 18 Mar 2012 01:52:07 +0000 (01:52 +0000)] 
Add script that assists with updating s390-opcodes.csv.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12450

13 years agoAdd spreadsheet that lists all s390 opcodes in the following format:
Florian Krohm [Sun, 18 Mar 2012 01:51:12 +0000 (01:51 +0000)] 
Add spreadsheet that lists all s390 opcodes in the following format:
1. column:  mnemonic
2. column:  description
3. column:  implementation status
4. column:  comments, if any

Prepared by Divya Vyas (divyvyas@linux.vnet.ibm.com).

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12449

13 years agoAdd expected output for s390x with compilers using mvc.
Florian Krohm [Sat, 17 Mar 2012 17:37:50 +0000 (17:37 +0000)] 
Add expected output for s390x with compilers using mvc.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12448

13 years agoAdd expected results for 32-bit little endian platform.
Florian Krohm [Sat, 17 Mar 2012 17:27:17 +0000 (17:27 +0000)] 
Add expected results for 32-bit little endian platform.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12447

13 years agoMake a more precise reference to the g++ version.
Philippe Waroquiers [Fri, 16 Mar 2012 15:03:08 +0000 (15:03 +0000)] 
Make a more precise reference to the g++ version.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12446

13 years ago(for x86 and amd64): Change the type of the shadow regs for floating point registers
Philippe Waroquiers [Wed, 14 Mar 2012 21:27:35 +0000 (21:27 +0000)] 
(for x86 and amd64): Change the type of the shadow regs for floating point registers

Similar to r12444 (see Log below), but this is doing it for x86 and amd64.
The xmm registers are using uint32 or uint64 for their float
union components. For the i387 80 bits float registers, as there is
no uint80, a struct uint16 + uint64 is defined.

  Log:
    Change the type of the shadow regs for floating point registers
    to be uint64. Previously the value in such a shadow reg would
    be interpreted by gdb as a floating point value which would
    produce non-sensible output for e.g   p/x $f1s1.
    This patch covers the power and arm architectures.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12445

13 years agoChange the type of the shadow regs for floating point registers
Florian Krohm [Wed, 14 Mar 2012 01:15:59 +0000 (01:15 +0000)] 
Change the type of the shadow regs for floating point registers
to be uint64. Previously the value in such a shadow reg would
be interpreted by gdb as a floating point value which would
produce non-sensible output for e.g   p/x $f1s1.
This patch covers the power and arm architectures.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12444

13 years agoAdd s390x register decsription to vgdb. This enables examination
Florian Krohm [Tue, 13 Mar 2012 02:13:50 +0000 (02:13 +0000)] 
Add s390x register decsription to vgdb. This enables examination
of V bits in vgdb.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12443

13 years agoFix leak in debuginfo.c
Philippe Waroquiers [Mon, 12 Mar 2012 22:06:57 +0000 (22:06 +0000)] 
Fix leak in debuginfo.c
di->soname was not freed, so was leaked when debug info is removed.
free(soname) added in free_Debuginfo, after having verified
and then ensured that all soname are allocated in dinfo.

regtested on deb6/amd64

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12442

13 years agoAllows to run regression tests in an outer/inner setup.
Philippe Waroquiers [Sun, 11 Mar 2012 22:24:03 +0000 (22:24 +0000)] 
Allows to run regression tests in an outer/inner setup.

A '3 lines how to':
   perl tests/vg_regtest --outer-valgrind=../trunk_untouched/install/bin/valgrind --all
           (the outer results for a test xxx is in xxx.outer.log)
   To run with another tool (e.g. drd), add the argument --outer-tool=drd

Still to do/things to improve:

* Most (inner) tests are successful when running under an outer
  memcheck. Need to analyse the reasons of remaining failures.

* The memcheck annotations in m_mallocfree.c can be improved:
  - A superblock is marked 'undefined', it should rather be marked
    'no access'.
  - When a free block is splitted, the remaining free block is
    not made 'no access'. Instead, it is made 'undefined'.
      => this decreases the chance to find bugs.
      => this is not very efficient (e.g. the rest of a superblock
         is often marked undefined repetitively).
    Similarly, the free block created by VG_(arena_memalign)
    is marked 'undefined'. 'No access' would be preferrable.
  - mkInuseBlock marks the new block as undefined. This is probably
    not needed, as VALGRIND_MALLOCLIKE_BLOCK will do it already.
  - VG_(arena_malloc) should give the requested size to
    VALGRIND_MALLOCLIKE_BLOCK, not the malloc usable size,
    as this decreases the chance to find buffer overrun bugs.
    But giving the requested size is tricky (see comments in
    the code).

* need to do memcheck annotations in m_poolalloc.c
   so as to allow leak checking for pool allocated elements.

* vg_regtest.in
  - should analyse the results of the outer and should
    produce a separate result for the tests for which
    the outer detects an error or a memory leak or ...

Changes done:
   README_DEVELOPERS: document the new outer/inner features.
   manual-core.xml: document the new sim-hint no-inner-prefix
   tests/outer_inner.supp: new file, containing the suppressions for inner.
   vg_regtest.in: implement new args --outer-valgrind, --outer-tool, --outer-args.
   m_mallocfree.c: annotations for memcheck.
   m_libcprint.c: handle the new sim-hint no-inner-prefix
   m_main.c: do an (early) parse of --sim-hints

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12441

13 years agoModify none/tests/execve.c so to avoid infinite loop with --trace-children=yes
Philippe Waroquiers [Sun, 11 Mar 2012 20:47:41 +0000 (20:47 +0000)] 
Modify none/tests/execve.c so to avoid infinite loop with --trace-children=yes

With --trace-children=yes, none/test/execve exec ve forever.

This avoids an infinite loop when running outer on inner regression
tests (for which --trace-children=yes is mandatory for the outer).

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12440

13 years agoEnsure VALGRIND_MALLOCLIKE_BLOCK protects the red zones.
Philippe Waroquiers [Sun, 11 Mar 2012 17:59:00 +0000 (17:59 +0000)] 
Ensure VALGRIND_MALLOCLIKE_BLOCK protects the red zones.

* Redzones for custom alloc were not protected by VALGRIND_MALLOCLIKE_BLOCK.
  mc_main.c client request handling completed with protection
  of the redzones.
* custom_alloc.c test modified to test this case.
* mc_errors.c modified so as to first search for a malloc-ed block
  bracketting the error : for a custom allocator, a recently freed
  block can have just been re-allocated.
  In such a case, describing the address (e.g. in case of error)
  points to the block freed rather than to the block just allocated.
  If there is *also* a recently freed block bracketting the address,
  the block description is changed to indicate that.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12439

13 years agoFinally understood why an outer on inner on a 32 bit application
Philippe Waroquiers [Thu, 8 Mar 2012 23:42:05 +0000 (23:42 +0000)] 
Finally understood why an outer on inner on a 32 bit application
is failing on a 64 bit host.

The bug might or might not be related to some
errors "failed in UME with error 22"
(such as bug https://bugs.kde.org/show_bug.cgi?id=138424).

The bug is: when aspacem_maxAddr is very close to the upper limit,
and aspacem_minAddr is somewhat not close to 0, then
the computation of
   aspacem_vStart = VG_PGROUNDUP((aspacem_minAddr + aspacem_maxAddr + 1) / 2);
can overflow.
The vStart value will then silently wrap around.
(please, give me my Ada language back :).

When overflowing, vStart will then be below the client cStart.
At least when running outer on inner on a 32 bit application on
a 64 bit system, this was causing strange problems.

I suppose that on a 64 bit system, a 32 bit application can use more
of the 4 Gb, and then the max address is higher and can more easily
overflow than on a 32 bit system.

Tested on f12/x86, debian6/amd64 (bi-arch).
+ run a few outer on inner x86 regression tests : these were all failing
and are now succesfully running.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12438

13 years agoSuppress race reports on ticket lock state variables
Bart Van Assche [Thu, 8 Mar 2012 19:17:56 +0000 (19:17 +0000)] 
Suppress race reports on ticket lock state variables

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12437

13 years agoSuppress race reports on VG_(threads)[tid].os_state.exitcode
Bart Van Assche [Thu, 8 Mar 2012 19:07:08 +0000 (19:07 +0000)] 
Suppress race reports on VG_(threads)[tid].os_state.exitcode

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12436

13 years agoUse ANNOTATE_BENIGN_RACE_SIZED() to suppress race reports on owner_lwpid
Bart Van Assche [Thu, 8 Mar 2012 19:02:39 +0000 (19:02 +0000)] 
Use ANNOTATE_BENIGN_RACE_SIZED() to suppress race reports on owner_lwpid

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12435

13 years agohelgrind: Implement ANNOTATE_BENIGN_RACE_SIZED()
Bart Van Assche [Thu, 8 Mar 2012 18:58:41 +0000 (18:58 +0000)] 
helgrind: Implement ANNOTATE_BENIGN_RACE_SIZED()

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12434

13 years agoUpdate Subversion ignore list
Bart Van Assche [Thu, 8 Mar 2012 17:11:03 +0000 (17:11 +0000)] 
Update Subversion ignore list

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12433

13 years agoWhen analyzing Valgrind with drd, suppress uninteresting race reports on VG_(threads...
Bart Van Assche [Thu, 8 Mar 2012 14:59:25 +0000 (14:59 +0000)] 
When analyzing Valgrind with drd, suppress uninteresting race reports on VG_(threads)[].status

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12432

13 years agoUpdate Subversion ignore list
Bart Van Assche [Thu, 8 Mar 2012 14:57:55 +0000 (14:57 +0000)] 
Update Subversion ignore list

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12431

13 years agoChange the behaviour of --partial-loads-ok=yes to avoid false
Julian Seward [Thu, 8 Mar 2012 14:51:01 +0000 (14:51 +0000)] 
Change the behaviour of --partial-loads-ok=yes to avoid false
negatives, by marking the V bits that come from out of range parts of
the access as undefined; and hence any use of them leads to an value
error.  Prior to this they were marked as defined and could be used
without error.

Behaviour of --partial-loads-ok=no (the default case) is unchanged.

Also add some testing thereof.

Fixes #294523.  Modified version of a patch and testcase by Patrick
J. LoPresti (lopresti@gmail.com).

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12430

13 years agoMake it possible to #include <valgrind/drd.h> after <valgrind/helgrind.h>
Bart Van Assche [Thu, 8 Mar 2012 14:44:57 +0000 (14:44 +0000)] 
Make it possible to #include <valgrind/drd.h> after <valgrind/helgrind.h>

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12429

13 years agoSuppress uninteresting race reports on sema->owner_lwpid
Bart Van Assche [Thu, 8 Mar 2012 10:14:12 +0000 (10:14 +0000)] 
Suppress uninteresting race reports on sema->owner_lwpid

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12428

13 years agonone/tests: Update Subversion ignore list
Bart Van Assche [Thu, 8 Mar 2012 10:11:22 +0000 (10:11 +0000)] 
none/tests: Update Subversion ignore list

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12427

13 years agoTurn no-op versions of INNER_REQUEST into statements, not values,
Julian Seward [Wed, 7 Mar 2012 17:11:44 +0000 (17:11 +0000)] 
Turn no-op versions of INNER_REQUEST into statements, not values,
since gcc complains about "statement with no effect" or some such for
the simple "0" version.  Also, make the formal parameter names a bit
more unique.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12426

13 years agoAh, the joys of applying patches by hand. Redo r12424 but get the
Julian Seward [Wed, 7 Mar 2012 16:38:12 +0000 (16:38 +0000)] 
Ah, the joys of applying patches by hand.  Redo r12424 but get the
patch in the right place this time.  re #295428.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12425

13 years agox86-darwin: _start: keep the stack 16-aligned. Fixes #295428.
Julian Seward [Wed, 7 Mar 2012 15:56:29 +0000 (15:56 +0000)] 
x86-darwin: _start: keep the stack 16-aligned.  Fixes #295428.
(Jack Howarth, howarth@nitro.med.uc.edu)

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12424

13 years agoReinstate intercepts for plain "memcpy" and "memmove" on OSX <= 10.6
Julian Seward [Wed, 7 Mar 2012 15:26:50 +0000 (15:26 +0000)] 
Reinstate intercepts for plain "memcpy" and "memmove" on OSX <= 10.6
(not on Lion).  Fixes #285662.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12423

13 years agoMacOS only: VG_(get_changed_segments) callback
Julian Seward [Wed, 7 Mar 2012 13:28:05 +0000 (13:28 +0000)] 
MacOS only: VG_(get_changed_segments) callback
remove_mapping_callback: if the kernel tells us of a gap that
partially, but does not exactly, overlap a V segment, only record
directives to remove that part of the segment that actually falls
within the gap.  Removing the entire V segment is incorrect and can
cause Memcheck to believe that memory not within the hole is
inaccessible, leading to floods of invalid errors.  Fixes
https://bugzilla.mozilla.org/show_bug.cgi?id=715750

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12422

13 years agoAdd support for the HCIINQUIRY ioctl.
Tom Hughes [Wed, 7 Mar 2012 11:22:42 +0000 (11:22 +0000)] 
Add support for the HCIINQUIRY ioctl.
Patch from Andrew Brampton to fix BZ#283961.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12421

13 years agoAdd support for the I2C_RDWR ioctl.
Tom Hughes [Wed, 7 Mar 2012 10:21:33 +0000 (10:21 +0000)] 
Add support for the I2C_RDWR ioctl.
Patch from arnaud mouiche to fix BZ#286261.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12420

13 years agoFix leak of range_list (see below an example) in readdwarf3.c.
Philippe Waroquiers [Tue, 6 Mar 2012 20:35:20 +0000 (20:35 +0000)] 
Fix leak of range_list (see below an example) in readdwarf3.c.
(found by running regression tests with an outer memcheck).

(validated by running all regression tests "natively" on x86 and amd64,
and re-running regressions tests with outer memcheck).

==7500== 160 bytes in 2 blocks are definitely lost in loss record 75 of 246
==7500==    at 0x2803CEF7: vgPlain_arena_malloc (m_mallocfree.c:1599)
==7500==    by 0x280AAFA5: vgModuleLocal_dinfo_zalloc (misc.c:48)
==7500==    by 0x2804E2A4: vgPlain_newXA (m_xarray.c:68)
==7500==    by 0x280B3CD6: unitary_range_list (readdwarf3.c:703)
==7500==    by 0x280B66CF: parse_var_DIE (readdwarf3.c:1631)
==7500==    by 0x280BA0A6: read_DIE (readdwarf3.c:3248)
==7500==    by 0x280BA170: read_DIE (readdwarf3.c:3269)
==7500==    by 0x280BABC4: T.364 (readdwarf3.c:3611)
==7500==    by 0x280BC634: vgModuleLocal_new_dwarf3_reader (readdwarf3.c:4035)
==7500==    by 0x280609F4: vgModuleLocal_read_elf_debug_info (readelf.c:2529)
==7500==    by 0x2805BD31: vgPlain_di_notify_mmap (debuginfo.c:610)
==7500==    by 0x280362E3: valgrind_main (m_main.c:1944)

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12419

13 years agoUpdate bug reporting URL.
Florian Krohm [Tue, 6 Mar 2012 15:54:28 +0000 (15:54 +0000)] 
Update bug reporting URL.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12418

13 years agoFix a testcase. Constraint was incorrect allowing r0 to be used
Florian Krohm [Mon, 5 Mar 2012 23:12:47 +0000 (23:12 +0000)] 
Fix a testcase. Constraint was incorrect allowing r0 to be used
for the EX insn. Patch by Christian Borntraeger (borntraeger@de.ibm.com).

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12417

13 years ago* Improve documentation of --vgdb=full
Philippe Waroquiers [Mon, 5 Mar 2012 22:09:20 +0000 (22:09 +0000)] 
* Improve documentation of --vgdb=full
* make a reference to --vex-iropt-precise-memory-exns=yes
  to obtain up to date registers values.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12416

13 years agoAvoid possibly unaligned memory access.
Florian Krohm [Sat, 3 Mar 2012 18:46:05 +0000 (18:46 +0000)] 
Avoid possibly unaligned memory access.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12415

13 years ago* README_DEVELOPERS : complete/enhance the section about outer/inner
Philippe Waroquiers [Sat, 3 Mar 2012 12:01:48 +0000 (12:01 +0000)] 
* README_DEVELOPERS : complete/enhance the section about outer/inner
* manual-core.xml : fix a typo
* include/pub_tool_inner.h : new file, defining macros for inner annotation
  include/Makefile.am : reference this new file.
* syswrap-linux.c : when ENABLE_INNER, register the stacks for the outer.
   (otherwise, nothing works properly).
* m_redir.c : avoid inner interpreting the outer vgpreload instructions.
* sema.c : annotate the semaphore with RWLOCK annotations for helgrind
* ticket-lock-linux.c : similar.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12414

13 years agonone/tests/mq.c: Fix a copy-paste bug
Bart Van Assche [Fri, 2 Mar 2012 09:57:14 +0000 (09:57 +0000)] 
none/tests/mq.c: Fix a copy-paste bug

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12413

13 years agoIn case VALGRIND_MALLOCLIKE_BLOCK is wrongly used, output
Philippe Waroquiers [Thu, 1 Mar 2012 22:00:36 +0000 (22:00 +0000)] 
In case VALGRIND_MALLOCLIKE_BLOCK is wrongly used, output
the execontext where the overlapping blocks have been reported
before crashing.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12412

13 years agoHandle prlimit64 the same way we do getrlimit and setrlimit, with
Tom Hughes [Thu, 1 Mar 2012 13:42:18 +0000 (13:42 +0000)] 
Handle prlimit64 the same way we do getrlimit and setrlimit, with
some requests trapped and handled by valgrind.

Patch from Matthias Schwarzott via BZ#294047.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12411

13 years agoAfter a fork, gdbserver_init can be called again.
Philippe Waroquiers [Tue, 28 Feb 2012 22:37:44 +0000 (22:37 +0000)] 
After a fork, gdbserver_init can be called again.
Buffers should not be re-allocated in such a case.
(memory leak detected by running memcheck on memcheck)

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12410

13 years agoFix leak found by running memcheck/tests/varinfo[1-6].vgtest
Philippe Waroquiers [Tue, 28 Feb 2012 20:10:05 +0000 (20:10 +0000)] 
Fix leak found by running memcheck/tests/varinfo[1-6].vgtest

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12409

13 years agoIncrease the size of buffers used for showing names when
Julian Seward [Tue, 28 Feb 2012 18:02:41 +0000 (18:02 +0000)] 
Increase the size of buffers used for showing names when
--trace-flags= is set.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12408

13 years agoFix one more leak detected by running memcheck in memcheck
Philippe Waroquiers [Mon, 27 Feb 2012 21:52:45 +0000 (21:52 +0000)] 
Fix one more leak detected by running memcheck in memcheck
(started to run regression tests in an outer)

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12407

13 years agoAndroid only: make the debuginfo mapping hack more flexible.
Julian Seward [Mon, 27 Feb 2012 11:02:20 +0000 (11:02 +0000)] 
Android only: make the debuginfo mapping hack more flexible.
Previously it looked for the debuginfo object for "/system/X" in
"/sdcard/symbols/system/X".  This commit removes the requirement for
"system" as the first path component, so the mapping is now "/X" (viz,
any absolute path) to "/sdcard/symbols/X".

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12406

13 years agoFix some memory leaks found by running memcheck on annotated memcheck.
Philippe Waroquiers [Sun, 26 Feb 2012 21:26:00 +0000 (21:26 +0000)] 
Fix some memory leaks found by running memcheck on annotated memcheck.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12405

13 years agoTighten up initial guest/shodow state on s390x.
Florian Krohm [Sun, 26 Feb 2012 17:51:28 +0000 (17:51 +0000)] 
Tighten up initial guest/shodow state on s390x.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12404

13 years agoAnnounce.
Florian Krohm [Sun, 26 Feb 2012 17:01:22 +0000 (17:01 +0000)] 
Announce.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12403

13 years agoFix buffer overflow bug when building the target file.
Philippe Waroquiers [Fri, 24 Feb 2012 11:25:58 +0000 (11:25 +0000)] 
Fix buffer overflow bug when building the target file.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@12402