]> git.ipfire.org Git - thirdparty/valgrind.git/log
thirdparty/valgrind.git
13 years agoIt turns out sendmmsg also updates the msg_len fields.
Tom Hughes [Fri, 10 Feb 2012 11:48:01 +0000 (11:48 +0000)] 
It turns out sendmmsg also updates the msg_len fields.

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

13 years agoAdd support for the sendmmsg and recvmmsg system calls. Fixes BZ#277779.
Tom Hughes [Fri, 10 Feb 2012 11:30:09 +0000 (11:30 +0000)] 
Add support for the sendmmsg and recvmmsg system calls. Fixes BZ#277779.

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

13 years agoAdd support for some SCSI ioctls. Patch from Jakub Jelinek on BZ#292627.
Tom Hughes [Fri, 10 Feb 2012 10:41:07 +0000 (10:41 +0000)] 
Add support for some SCSI ioctls. Patch from Jakub Jelinek on BZ#292627.

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

13 years agoAdd support for process_vm_readv and process_vm_writev system calls.
Tom Hughes [Fri, 10 Feb 2012 09:39:37 +0000 (09:39 +0000)] 
Add support for process_vm_readv and process_vm_writev system calls.
Patch from Lénaïc Huard to fix BZ#292995.

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

13 years agoAdd support for the F_GETOWN_EX and F_SETOWN_EX fcntl calls.
Tom Hughes [Thu, 9 Feb 2012 12:21:47 +0000 (12:21 +0000)] 
Add support for the F_GETOWN_EX and F_SETOWN_EX fcntl calls.
Patch from Jakub Jelinek to fix BZ#292626.

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

13 years agoImplement the getcpu vsyscall on amd64 by forwarding it to the real
Tom Hughes [Thu, 9 Feb 2012 11:54:16 +0000 (11:54 +0000)] 
Implement the getcpu vsyscall on amd64 by forwarding it to the real
system call. Patch from Lénaïc Huard to fix BZ#187043.

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

13 years agoWire up getcpu on amd64. Patch from Lénaïc Huard to close BZ#292993.
Tom Hughes [Thu, 9 Feb 2012 11:48:28 +0000 (11:48 +0000)] 
Wire up getcpu on amd64. Patch from Lénaïc Huard to close BZ#292993.

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

13 years agoUpdate linux system call lists.
Tom Hughes [Thu, 9 Feb 2012 11:38:10 +0000 (11:38 +0000)] 
Update linux system call lists.

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

13 years agomc_main.c statistics has hard-coded logic to compute
Philippe Waroquiers [Wed, 8 Feb 2012 22:23:55 +0000 (22:23 +0000)] 
mc_main.c statistics has hard-coded logic to compute
the memory used by sec vbit table. This logic depends
on the way sec Vbit entries are maintained.
Due to the introduction of pool alloc, this logic has
to be changed to (more) correctly compute the memory.

Verified on f12/x86 by comparing the memory reported
by the memcheck stats with what is given by --profile-heap=yes.

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

13 years agoAdd testcases for TR, TRE, TRTT, TROT, TRTO insns.
Florian Krohm [Sat, 4 Feb 2012 17:16:40 +0000 (17:16 +0000)] 
Add testcases for TR, TRE, TRTT, TROT, TRTO insns.
Fixes #273114. Patch by Divya Vyas (divyvyas@linux.vnet.ibm.com).

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

13 years agoAdd z10 EC build.
Florian Krohm [Sat, 4 Feb 2012 14:40:44 +0000 (14:40 +0000)] 
Add z10 EC build.

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

13 years agofix 290974 vgdb must align pages to VKI_SHMLBA (16KB) on ARM
Philippe Waroquiers [Thu, 2 Feb 2012 21:33:55 +0000 (21:33 +0000)] 
fix 290974  vgdb must align pages to VKI_SHMLBA (16KB) on ARM
In VG_(am_mmap_file_float_valgrind_flags),
when VKI_MAP_SHARED & flags, ensure the request length is big enough
to allow to roundup the returned advised to VKI_SHMLBA if needed.

Committed after regtest on f12/x86 and some limited validation on android arm
emulator.

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

13 years agoRework r12363
Bart Van Assche [Thu, 2 Feb 2012 10:58:01 +0000 (10:58 +0000)] 
Rework r12363

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

13 years agodrd/tests/sigalrm: Report thread creation failure
Bart Van Assche [Thu, 2 Feb 2012 10:35:18 +0000 (10:35 +0000)] 
drd/tests/sigalrm: Report thread creation failure

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

13 years agodrd: Avoid that an assertion failure is triggered if clone() fails.
Bart Van Assche [Thu, 2 Feb 2012 10:14:30 +0000 (10:14 +0000)] 
drd: Avoid that an assertion failure is triggered if clone() fails.

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

13 years agodebug info reader: Add support for rvalue references. Closes #278313#c5.
Bart Van Assche [Wed, 1 Feb 2012 14:59:14 +0000 (14:59 +0000)] 
debug info reader: Add support for rvalue references. Closes #278313#c5.

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

13 years ago<valgrind/valgrind.h>: Fix for Intel C/C++ compiler in MSVC compatibility mode.
Bart Van Assche [Tue, 31 Jan 2012 10:13:51 +0000 (10:13 +0000)] 
<valgrind/valgrind.h>: Fix for Intel C/C++ compiler in MSVC compatibility mode.

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

13 years agoMake -d (enable debug logging) work on Fedora 16 / x86.
Bart Van Assche [Mon, 30 Jan 2012 15:07:20 +0000 (15:07 +0000)] 
Make -d (enable debug logging) work on Fedora 16 / x86.

Apparently the 32-bit Fedora 16 compiler chooses register esp to pass "&block"
to the inline assembly code in local_sys_write_stderr(). First pushing data on
the stack and next reading the contents of %0 doesn't yield the desired result
if %0 == %esp.

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

13 years agoAdd testcase for bugzilla #287260. Testcase by M.Welinder
Florian Krohm [Sun, 29 Jan 2012 02:23:07 +0000 (02:23 +0000)] 
Add testcase for bugzilla #287260. Testcase by M.Welinder
(mwelinder@gmail.com). Announce bug fix.

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

13 years agonone/tests/x86/bug125959-x86 language conformance fix: do not trigger signed integer...
Bart Van Assche [Sat, 28 Jan 2012 14:20:30 +0000 (14:20 +0000)] 
none/tests/x86/bug125959-x86 language conformance fix: do not trigger signed integer overflow. Fixes #292628.

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

13 years ago(fixes bug 289939 wish: complete monitor cmd 'leak_check' with details
Philippe Waroquiers [Thu, 26 Jan 2012 23:13:52 +0000 (23:13 +0000)] 
(fixes bug 289939 wish: complete monitor cmd 'leak_check' with details
 about leaked or reachable blocks)

This patch implements two new memcheck gdbserver monitor commands:
  block_list <loss_record_nr>
        after a leak search, shows the list of blocks of <loss_record_nr>
  who_points_at <addr> [<len>]
        shows places pointing inside <len> (default 1) bytes at <addr>
        (with len 1, only shows "start pointers" pointing exactly to <addr>,
         with len > 1, will also show "interior pointers")

Compiled and reg-tested on f12/x86, deb5/amd64, f16/ppc64.

The 'block_list' command is implemented on top of the
lr_array/lc_chunks/lc_extras arrays used during the last leak search.
NB: no impact on the memory for the typical Valgrind usage where a leak
search is only done at the end of the run.
Printing the block_list of a loss record simply consists in scanning the
lc_chunks to find back the chunks corresponding to the loss record for which
block lists is requested.

The 'who_points_at' command is implemented by doing a scan similar to
(but simpler than) the leak search scan.
lc_scan_memory has been enhanced to have a mode to search for a specific
address, rather than to search for all allocated blocks.
VG_(apply_to_GP_regs) has been enhanced to also provide the ThreadId and
register name in the callback function.

The patch touches multiple files (but most changes are easy/trivial or factorise
existing code).

Most significant changes are in memcheck/mc_leakcheck.c :
    * changed the LC_Extra struct to remember the clique for indirect leaks
      (size of structure not changed).
    * made lr_array a static global
    * changed lc_scan_memory:
        to have a search mode for a specific address (for who_points_at)
        (for leak search) to pass a 'current clique' in addition to the clique
         leader
         so as to have a proper clique hierarchy for indirectly leaked blocks.
    * print_results: reset values at the beginning of the print_result of the
      next leak search, rather than at the end of print_results of the previous
       leak search.
      This allows to continue showing the same info for loss records till a new
      leak search is done.
    * new function print_clique which recursively prints a group of leaked
      blocks, starting from the clique leader.
    * new function MC_(print_block_list) : calls print_clique for each clique
      leader found for the given loss record.
    * static void scan_memory_root_set : code extracted from
      MC_(detect_memory_leaks) (no relevant change)
    * void MC_(who_points_at) : calls scan_memory_root_set, lc_scan_memory
        and VG_(apply_to_GP_regs)(search_address_in_GP_reg) to search
        pointers to the given address.

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

13 years agodrd: Remove drd/drd_list.h again because of its GPLv2 license.
Bart Van Assche [Wed, 25 Jan 2012 20:36:27 +0000 (20:36 +0000)] 
drd: Remove drd/drd_list.h again because of its GPLv2 license.

For more info about Valgrind source code licensing, see also:
[1] Top level README line 51.
[2] http://valgrind.org/docs/manual/manual-intro.html#manual-intro.overview, last paragraph.

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

13 years agoFix a copy/paste error
Bart Van Assche [Wed, 25 Jan 2012 11:05:12 +0000 (11:05 +0000)] 
Fix a copy/paste error

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

13 years agodrd: Add command-line option --ptrace-addr.
Bart Van Assche [Tue, 24 Jan 2012 18:39:29 +0000 (18:39 +0000)] 
drd: Add command-line option --ptrace-addr.

This command-line option has been used to track down the recently fixed race in
drd/drd_pthread_intercepts.c.

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

13 years agodrd: Use macros and inline functions for list manipulation
Bart Van Assche [Tue, 24 Jan 2012 18:28:55 +0000 (18:28 +0000)] 
drd: Use macros and inline functions for list manipulation

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

13 years agodrd: Avoid that the changes from r12351 trigger a race condition when copying DrdPosi...
Bart Van Assche [Tue, 24 Jan 2012 08:30:32 +0000 (08:30 +0000)] 
drd: Avoid that the changes from r12351 trigger a race condition when copying DrdPosixThreadArgs

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

13 years agodrd, semaphore implementation: Only wake the associated futex if at least one thread...
Bart Van Assche [Mon, 23 Jan 2012 17:01:58 +0000 (17:01 +0000)] 
drd, semaphore implementation: Only wake the associated futex if at least one thread is waiting

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

13 years agodrd: Source code refactoring - use DRD_(thread_get_vc)() wherever appropriate
Bart Van Assche [Sun, 22 Jan 2012 08:58:31 +0000 (08:58 +0000)] 
drd: Source code refactoring - use DRD_(thread_get_vc)() wherever appropriate

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

13 years agodrd: Source code refactoring - use DRD_(thread_get_vc)() wherever appropriate
Bart Van Assche [Sun, 22 Jan 2012 08:40:42 +0000 (08:40 +0000)] 
drd: Source code refactoring - use DRD_(thread_get_vc)() wherever appropriate

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

13 years agodrd: Rename DRD_STOP_TRACE_VAR() into DRD_STOP_TRACING_VAR()
Bart Van Assche [Sat, 21 Jan 2012 18:33:56 +0000 (18:33 +0000)] 
drd: Rename DRD_STOP_TRACE_VAR() into DRD_STOP_TRACING_VAR()

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

13 years agodrd/tests/fp_race_xml: Filter out thread number and vector clock information
Bart Van Assche [Fri, 20 Jan 2012 09:27:15 +0000 (09:27 +0000)] 
drd/tests/fp_race_xml: Filter out thread number and vector clock information

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

13 years agodrd: Fix a race condition in the pthread_create() intercept.
Bart Van Assche [Thu, 19 Jan 2012 19:52:15 +0000 (19:52 +0000)] 
drd: Fix a race condition in the pthread_create() intercept.

Avoid that the futex wake call in DRD_(sema_up)() can get invoked after the semaphore has
already been destroyed. This is most likely the real fix for the bug described in the
commit message of r12332.

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

13 years agodrd: Generalize a suppression pattern
Bart Van Assche [Wed, 18 Jan 2012 09:47:12 +0000 (09:47 +0000)] 
drd: Generalize a suppression pattern

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

13 years agodrd: Switch to new pool allocator
Bart Van Assche [Wed, 18 Jan 2012 09:46:57 +0000 (09:46 +0000)] 
drd: Switch to new pool allocator

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

13 years agoPool allocator: change the semantics of VG_(releasePA)() according to comment http...
Bart Van Assche [Wed, 18 Jan 2012 08:12:16 +0000 (08:12 +0000)] 
Pool allocator: change the semantics of VG_(releasePA)() according to comment http://bugs.kde.org/show_bug.cgi?id=282230#c50.
This change also makes the semantics of releasePA match the semantics of
other release functions, e.g. those in XPCOM (see also http://developer.mozilla.org/en/XPCOM_Interface_Reference/nsISupports#Release%28%29).

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

13 years agoAdd a perf test to measure the speed (and memory) of PDB handling.
Philippe Waroquiers [Tue, 17 Jan 2012 22:27:47 +0000 (22:27 +0000)] 
Add a perf test to measure the speed (and memory) of PDB handling.

* modified perf/heap.c so that it optionally creates a partially defined bytes every N bytes
* created perf/heap_pdb4.vgperf calling heap 4 (so one byte on 4 is PDB in what heap allocates).

before/after pool alloc, here are the performances on a ppc64. So, it looks like
pool alloc also significantly improves the speed of PDB handling.

perl perf/vg_perf --vg=../pool_alloc --vg=../before_pool_trunk_untouched --reps=5 perf/heap_pdb4.vgperf
-- heap_pdb4 --
heap_pdb4 pool_alloc:0.41s  no: 3.0s ( 7.3x, -----)  me:11.9s (29.0x, -----)
heap_pdb4 before_pool_trunk_untouched:0.41s  no: 3.1s ( 7.6x, -3.7%)  me:16.9s (41.1x,-41.7%)

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

13 years agoFixes 282230 group allocator for small fixed size, use it for MC_Chunk/SEc vbit
Philippe Waroquiers [Tue, 17 Jan 2012 21:16:30 +0000 (21:16 +0000)] 
Fixes 282230  group allocator for small fixed size, use it for MC_Chunk/SEc vbit

* new files include/pub_tool_groupalloc.h and coregrind/m_groupalloc.c
  implementing a group allocator (based on helgrind group alloc).
* include/Makefile.am coregrind/Makefile.am : added pub_tool_groupalloc.h
  and m_groupalloc.c
* helgrind/libhb_core.c : use pub_tool_groupalloc.h/m_groupalloc.c
  instead  of the local implementation.
* include/pub_tool_oset.h coregrind/m_oset.c : new function
  allowing to create an oset that will use a pool allocator.
  new function allowing to clone an oset (so as to share the pool alloc)
* memcheck/tests/unit_oset.c drd/tests/unit_bitmap.c : modified
  so that it compiles with the new m_oset.c
* memcheck/mc_main.c : use group alloc for MC_Chunk
  memcheck/mc_include.h : declare the MC_Chunk group alloc
* memcheck/mc_main.c : use group alloc for the nodes of the secVBitTable OSet
* include/pub_tool_hashtable.h coregrind/m_hashtable.c : pass the free node
  function in the VG_(HT_destruct).
  (needed as the hashtable user can allocate a node with its own alloc,
  the hash table destroy must be able to free the nodes with the user
  own free).
* coregrind/m_gdbserver/m_gdbserver.c : pass free function to VG_(HT_destruct)
* memcheck/mc_replace_strmem.c memcheck/mc_machine.c
  memcheck/mc_malloc_wrappers.c memcheck/mc_leakcheck.c
  memcheck/mc_errors.c memcheck/mc_translate.c : new include needed
  due to group alloc.

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

13 years agoImprove configure for SSE 4.2 detection. Fixes #271438
Florian Krohm [Tue, 17 Jan 2012 13:16:50 +0000 (13:16 +0000)] 
Improve configure for SSE 4.2 detection. Fixes #271438

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

13 years agoAnnounce fix for #270796. Also keep the bug list sorted.
Florian Krohm [Mon, 16 Jan 2012 17:26:48 +0000 (17:26 +0000)] 
Announce fix for #270796. Also keep the bug list sorted.

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

13 years agodebug info reader: Add support for DW_TAG_unspecified_type. Closes #278313.
Bart Van Assche [Mon, 16 Jan 2012 17:11:07 +0000 (17:11 +0000)] 
debug info reader: Add support for DW_TAG_unspecified_type. Closes #278313.

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

13 years agodrd: Remove prefix from local variable names
Bart Van Assche [Mon, 16 Jan 2012 13:08:05 +0000 (13:08 +0000)] 
drd: Remove prefix from local variable names

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

13 years agodebug info reader: rearrange the source code such that gcc issues a warning if an...
Bart Van Assche [Mon, 16 Jan 2012 09:22:25 +0000 (09:22 +0000)] 
debug info reader: rearrange the source code such that gcc issues a warning if an enumeration label is missing.

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

13 years agoAdd support for the s390's TROO insn. These are the valgrind bits.
Florian Krohm [Sun, 15 Jan 2012 21:02:44 +0000 (21:02 +0000)] 
Add support for the s390's TROO insn. These are the valgrind bits.
Detect ETF2 enhancement facility using STFLE. Add testcases.
Patch by Divya Vyas (divyvyas@linux.vnet.ibm.com) with
modifications. Partial fix of #273114

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

13 years agoUpdate Subversion ignore lists
Bart Van Assche [Sun, 15 Jan 2012 19:20:56 +0000 (19:20 +0000)] 
Update Subversion ignore lists

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

13 years agodrd: Make it easier to enable the debug statements in the ELF section suppression...
Bart Van Assche [Sun, 15 Jan 2012 19:17:37 +0000 (19:17 +0000)] 
drd: Make it easier to enable the debug statements in the ELF section suppression code

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

13 years agodrd: Set up red zone before the first instruction of a thread is run.
Bart Van Assche [Sun, 15 Jan 2012 19:13:35 +0000 (19:13 +0000)] 
drd: Set up red zone before the first instruction of a thread is run.

Avoids that DRD sporadically reports mysterious false positive conflicting accesses on
amd64 like e.g. the following:

$ ./vg-in-place --fair-sched=yes --tool=drd --read-var-info=yes --check-stack-var=yes --show-confl-seg=no drd/tests/annotate_smart_pointer 50 50
==18170== drd, a thread error detector
==18170== Copyright (C) 2006-2011, and GNU GPL'd, by Bart Van Assche.
==18170== Using Valgrind-3.8.0.SVN and LibVEX; rerun with -h for copyright info
==18170== Command: ./annotate_smart_pointer 50 50
==18170==
==18170== Conflicting store by thread 1 at 0x7fefff8a0 size 8
==18170==    at 0x400FCE: AnnotateCondVarSignal (unified_annotations.h:32)
==18170== Allocation context: unknown.
==18170==
==18170== Conflicting load by thread 1 at 0x7fefff8a0 size 8
==18170==    at 0x400FDD: AnnotateCondVarSignal (unified_annotations.h:34)
==18170==    by 0x401071: U_AnnotateHappensBefore (unified_annotations.h:46)
==18170==    by 0x4018DD: smart_ptr<counter>::set(counter*, AtomicInt32*) (annotate_smart_pointer.cpp:239)
==18170==    by 0x401778: smart_ptr<counter>::operator=(counter*) (annotate_smart_pointer.cpp:208)
==18170==    by 0x401377: main (annotate_smart_pointer.cpp:326)
==18170== Allocation context: unknown.

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

13 years agodrd: Refactor functions for starting / stopping to access stack memory
Bart Van Assche [Sun, 15 Jan 2012 19:08:13 +0000 (19:08 +0000)] 
drd: Refactor functions for starting / stopping to access stack memory

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

13 years agodrd: Reformat three comment blocks
Bart Van Assche [Sun, 15 Jan 2012 19:02:20 +0000 (19:02 +0000)] 
drd: Reformat three comment blocks

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

13 years agoAdded a new parameter to the memcheck 'leak_check' GDB monitor command
Philippe Waroquiers [Sat, 14 Jan 2012 13:53:13 +0000 (13:53 +0000)] 
Added a new parameter to the memcheck 'leak_check' GDB monitor command
to let the user specify a max nr of loss records to output : on huge
applications, interactive display of a lot of records in gdb can
take a lot of time.

* mc_include.h :
  - added UInt max_loss_records_output; to LeakCheckParams structure
  - avoid passing LeakCheckParams by struct copy.
* modified test gdbserver_tests/mcleak to test the new parameter
* mc_main.c : parse or set max_loss_records_output in leak_check cmd
  handling and calls.
* mc-manual.xml : document new leak_check parameter
* mc_leakcheck.c :
  - extract printing rules logic in its own function
  - in print_results, if there is a limit in LeakCheckParam,
    compute from where the printing of loss records has to start

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

13 years agoValgrind gdbserver can open/close connections multiple times
Philippe Waroquiers [Fri, 13 Jan 2012 21:36:46 +0000 (21:36 +0000)] 
Valgrind gdbserver can open/close connections multiple times
=> avoid leak when re-computing the default vgdb prefix.
Similar change in vgdb.c

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

13 years agoconfigure.in: Make compiler version check more robust
Bart Van Assche [Wed, 11 Jan 2012 11:34:23 +0000 (11:34 +0000)] 
configure.in: Make compiler version check more robust

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

13 years ago* Use the arg name forClient to document the calls to VG_(am_get_advisory)
Philippe Waroquiers [Sun, 8 Jan 2012 21:01:02 +0000 (21:01 +0000)] 
* Use the arg name forClient to document the calls to VG_(am_get_advisory)
* in function  VG_(am_mmap_file_float_valgrind_flags), use False/*forClient*/
  instead of True (as VG_(am_mmap_file_float_valgrind_flags) is used
  for "valgrind" kind of mmap only).

Regtested on f16/ppc64, deb5/amd64, Ubuntu9.10/x86

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

13 years agoTerminate comment correctly.
Florian Krohm [Mon, 2 Jan 2012 16:12:30 +0000 (16:12 +0000)] 
Terminate comment correctly.

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

13 years agoFix accounting for MC_(realloc). It was inconsistent as compared to
Florian Krohm [Fri, 30 Dec 2011 03:09:45 +0000 (03:09 +0000)] 
Fix accounting for MC_(realloc). It was inconsistent as compared to
other wrappers in that it took place before the silly-args check.
Testcase and patch by Yann Droneaud (yann@droneaud.fr).
Fixes #281482

Also included is a related fix to MC_(new_block). Incrementing the
alloc counter and updating the allocated memory amount should
occur under the same condition (allocation succeeded).

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

13 years agoadd support for glibc 2.15
Dirk Mueller [Thu, 29 Dec 2011 08:24:55 +0000 (08:24 +0000)] 
add support for glibc 2.15

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

13 years agoAvoid buffer overrun in percentify call.
Philippe Waroquiers [Tue, 27 Dec 2011 18:43:32 +0000 (18:43 +0000)] 
Avoid buffer overrun in percentify call.

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

13 years agoSpelling fix
Bart Van Assche [Tue, 27 Dec 2011 09:14:50 +0000 (09:14 +0000)] 
Spelling fix

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

13 years agoSmall doc changes:
Philippe Waroquiers [Tue, 27 Dec 2011 09:03:36 +0000 (09:03 +0000)] 
Small doc changes:
* In core advanced manual, replace 3.7.0 by current release.
* cleanup in m_gdbserver/README_DEVELOPPERS

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

13 years agofix 289699 vgdb connection in relay mode erroneously closed due to buffer overrun
Philippe Waroquiers [Mon, 26 Dec 2011 21:21:37 +0000 (21:21 +0000)] 
fix 289699 vgdb connection in relay mode erroneously closed due to buffer overrun
* use PBUFSIZ+1 for buffers reading characters from gdbserver:
  vgdb reads up to PBUFSIZ characters from gdbserver.
  If vgdb receives a burst of packet from Valgrind gdbserver, PBUFSIZ
  characters can be read. The tracing code adds a trailing \0 to
  this buffer => to avoid buffer overrun, the buffers are dimensionned
  with PBUFSIZ+1.
* use read_buf in function read_char, rather than directly calling read.

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

13 years agoWhile investigating whether bugzilla #286040 was a problem or
Florian Krohm [Mon, 26 Dec 2011 18:35:29 +0000 (18:35 +0000)] 
While investigating whether bugzilla #286040 was a problem or
not (it's not) I noticed that the code was more complex than
it needed to be. So this patch simplifies it a little.

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

13 years agoWhen reading a decimal value consume decimal digits, not hexdigits.
Florian Krohm [Mon, 26 Dec 2011 18:30:18 +0000 (18:30 +0000)] 
When reading a decimal value consume decimal digits, not hexdigits.

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

13 years agoBeef up VG_(strerror) to provide correct messages for the
Florian Krohm [Sat, 24 Dec 2011 21:50:53 +0000 (21:50 +0000)] 
Beef up VG_(strerror) to provide correct messages for the
errno codes in asm-generic/errno-base.h (on linux).
The error strings were obtained by calling strerror natively in
Linux.
Extend vki-linux.h accordingly. vki-darwin.h already had
those errno codes.
Add testcase. This fixes #287858.

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

13 years agoFix 247386 make perf does not run all performance tests :
Philippe Waroquiers [Fri, 23 Dec 2011 11:42:20 +0000 (11:42 +0000)] 
Fix 247386  make perf does not run all performance tests :

* move memcheck/perf/many-loss-records test to perf directory
       massif/perf/many-xpts test to perf directory
* modified many-loss-records.vgperf and many-xpts.vgperf,
  so as to have tool specific options prefixed with their tool
* remove directory memcheck/perf and massif/perf (containing no test anymore)

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

13 years ago* none/tests/linux/mremap3.vgtest : new test
Philippe Waroquiers [Thu, 22 Dec 2011 13:25:58 +0000 (13:25 +0000)] 
* none/tests/linux/mremap3.vgtest : new test
   mremap3.c based on testcase provided by Jan Engelhardt
* coregrind/m_syswrap/syswrap-generic.c
  - The two 'no-thrash checks' that were introduced to fix bug #129866
    were (probably) broken when adress space manager was reworked.
    The new VG_(am_get_advisory_client_simple) returns NULL for a free
    segment, but the check was based on checking not NULL and then
    that the state is free.
    => replaces these two local checks by a call to the new
    am Bool VG_(am_covered_by_single_free_segment) function.

* coregrind/pub_core_aspacemgr.h
  coregrind/m_aspacemgr/aspacemgr-linux.c
  - new function Bool VG_(am_covered_by_single_free_segment)

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

13 years agoUpdated NEWS (set next version to 3.8.0, added 286270 to fixed bugs+reordered)
Philippe Waroquiers [Mon, 19 Dec 2011 11:03:07 +0000 (11:03 +0000)] 
Updated NEWS (set next version to 3.8.0, added 286270 to fixed bugs+reordered)

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

13 years agoDRD: revert r12308 because it didn't help
Bart Van Assche [Sat, 17 Dec 2011 15:18:20 +0000 (15:18 +0000)] 
DRD: revert r12308 because it didn't help

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

13 years agoDRD: add two ppc output variants
Bart Van Assche [Sat, 17 Dec 2011 14:18:25 +0000 (14:18 +0000)] 
DRD: add two ppc output variants

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

13 years agoDRD, load/store tracing: avoid evaluating the address expression twice
Bart Van Assche [Sat, 17 Dec 2011 12:59:45 +0000 (12:59 +0000)] 
DRD, load/store tracing: avoid evaluating the address expression twice

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

13 years agoAdd a configure test for detecting whether gcc supports atomic operations on
Bart Van Assche [Sat, 17 Dec 2011 12:53:23 +0000 (12:53 +0000)] 
Add a configure test for detecting whether gcc supports atomic operations on
64-bit integers on 32-bit platforms. Apparently newer gcc versions support
this but older versions not. Thanks to Philippe Waroquiers for reporting this.

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

13 years agoDRD: Suppress uninteresting races triggered by the dynamic loader
Bart Van Assche [Wed, 14 Dec 2011 20:05:51 +0000 (20:05 +0000)] 
DRD: Suppress uninteresting races triggered by the dynamic loader

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

13 years agodrd/tests/Makefile.am: update EXTRA_DIST
Bart Van Assche [Wed, 14 Dec 2011 07:30:05 +0000 (07:30 +0000)] 
drd/tests/Makefile.am: update EXTRA_DIST

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

13 years agoUpdate Subversion ignore list
Bart Van Assche [Wed, 14 Dec 2011 07:13:06 +0000 (07:13 +0000)] 
Update Subversion ignore list

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

13 years agodrd --trace-addr: make tracing 64-bit values on a 32-bit platform work
Bart Van Assche [Tue, 13 Dec 2011 11:12:05 +0000 (11:12 +0000)] 
drd --trace-addr: make tracing 64-bit values on a 32-bit platform work

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

13 years agoDRD, --trace-addr: enable support for Ity_F32 and Ity_F64 / temporarily disable suppo...
Bart Van Assche [Tue, 13 Dec 2011 08:53:23 +0000 (08:53 +0000)] 
DRD, --trace-addr: enable support for Ity_F32 and Ity_F64 / temporarily disable support for 64-bit CAS on 32-bit platforms

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

13 years agoDRD: Eliminate a temporary variable
Bart Van Assche [Tue, 13 Dec 2011 08:05:07 +0000 (08:05 +0000)] 
DRD: Eliminate a temporary variable

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

13 years agodrd/tests/annotate_trace_memory*: add 32-bit output variants
Bart Van Assche [Tue, 13 Dec 2011 07:52:09 +0000 (07:52 +0000)] 
drd/tests/annotate_trace_memory*: add 32-bit output variants

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

13 years agodrd/tests/pth_cleanup_handler: increase timeout
Bart Van Assche [Tue, 13 Dec 2011 07:49:30 +0000 (07:49 +0000)] 
drd/tests/pth_cleanup_handler: increase timeout

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

13 years agoDRD: rearrange the definition of u_widen_irop[][]
Bart Van Assche [Mon, 12 Dec 2011 19:54:32 +0000 (19:54 +0000)] 
DRD: rearrange the definition of u_widen_irop[][]

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

13 years agoUpdate Subversion ignore list
Bart Van Assche [Mon, 12 Dec 2011 19:37:48 +0000 (19:37 +0000)] 
Update Subversion ignore list

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

13 years agoDRD: make the tracing regression test more complete
Bart Van Assche [Mon, 12 Dec 2011 19:37:10 +0000 (19:37 +0000)] 
DRD: make the tracing regression test more complete

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

13 years agoDRD: Make the code for instrumenting store operations more robust
Bart Van Assche [Mon, 12 Dec 2011 19:18:26 +0000 (19:18 +0000)] 
DRD: Make the code for instrumenting store operations more robust

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

13 years agodrd.h: Add macro DRD_STOP_TRACE_VAR(). To do: update manual
Bart Van Assche [Mon, 12 Dec 2011 19:04:28 +0000 (19:04 +0000)] 
drd.h: Add macro DRD_STOP_TRACE_VAR(). To do: update manual

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

13 years agoDRD: make DRD_(stop_tracing_address_range)() work at an acceptable speed
Bart Van Assche [Mon, 12 Dec 2011 19:02:34 +0000 (19:02 +0000)] 
DRD: make DRD_(stop_tracing_address_range)() work at an acceptable speed

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

13 years agoDRD help text: remove a superfluous dot
Bart Van Assche [Mon, 12 Dec 2011 15:49:00 +0000 (15:49 +0000)] 
DRD help text: remove a superfluous dot

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

13 years agoRemove trailing whitespace
Bart Van Assche [Sun, 11 Dec 2011 20:34:03 +0000 (20:34 +0000)] 
Remove trailing whitespace

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

13 years agoDisable drd/tests/std_thread until libstdc++ gets fixed (see also http://gcc.gnu...
Bart Van Assche [Sun, 11 Dec 2011 20:30:46 +0000 (20:30 +0000)] 
Disable drd/tests/std_thread until libstdc++ gets fixed (see also http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51504).

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

13 years agoDRD: Make --trace-addr work for atomic loads and stores. To do: update manual
Bart Van Assche [Sun, 11 Dec 2011 20:17:57 +0000 (20:17 +0000)] 
DRD: Make --trace-addr work for atomic loads and stores. To do: update manual

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

13 years agoDRD, --trace-addr: trace stored values too
Bart Van Assche [Sun, 11 Dec 2011 18:49:39 +0000 (18:49 +0000)] 
DRD, --trace-addr: trace stored values too

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

13 years agoUpdate Subversion ignore lists
Bart Van Assche [Sun, 11 Dec 2011 18:40:13 +0000 (18:40 +0000)] 
Update Subversion ignore lists

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

13 years agoDRD: Two non-functional changes: adjust source code indentation and fix
Bart Van Assche [Sun, 11 Dec 2011 17:54:17 +0000 (17:54 +0000)] 
DRD: Two non-functional changes: adjust source code indentation and fix
second argument of unsafeIRDirty_0_N() in the memory access tracing code.

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

13 years agofix 286270 VG_(env_remove_valgrind_env_stuff)
Philippe Waroquiers [Sun, 11 Dec 2011 16:29:43 +0000 (16:29 +0000)] 
fix 286270 VG_(env_remove_valgrind_env_stuff)

rev 12001 has introduced a regression in VG_(env_remove_valgrind_env_stuff):
to avoid modifying a possibly read-only env string, the string is duplicated,
and the copy is modified. However, mash_env_column modifies the string
"in-place". The modified string was not put back in the env (and could not,
because the src string is only partially copied).

This means that the valgrind preload strings were not cleaned up and
when a 32 bit executable execs a 64 bits (or vice versa: 64 bit execs 32 bits),
LD_PRELOAD contains both the 32 bits and 64 bits versions of Valgrind
vgpreload.... => ld.so then gives an error msg, as it can't preload either
the 32 or the 64 bits version.

The patch fixes this by duplicating the whole env string, and passing
to mash_colon_env a pointer to the correct offset in the whole env string.
The duplicated string is replacing the original entry in envp.

This patch adds two regression tests : none/tests/allexec32 and
none/tests/allexec64. On a bi-arch valgrind, these will be 32bits and 64 bits
executables, exec-ing each other. On a single arch, one will be a symlink
to the other (to avoid different .exp files, and still test exec).

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

13 years agoFollow-up for r12281: update regtest expected output
Bart Van Assche [Sun, 11 Dec 2011 10:18:27 +0000 (10:18 +0000)] 
Follow-up for r12281: update regtest expected output

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

13 years agoconfigure.in: Rename the shell variable ac_have_builtin_atomic into ac_have_builtin_a...
Bart Van Assche [Sat, 10 Dec 2011 19:48:04 +0000 (19:48 +0000)] 
configure.in: Rename the shell variable ac_have_builtin_atomic into ac_have_builtin_atomic_primary

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

13 years agoDRD: Add test program for std::thread.
Bart Van Assche [Sat, 10 Dec 2011 19:42:05 +0000 (19:42 +0000)] 
DRD: Add test program for std::thread.

To do: document _GLIBCXX_SYNCHRONIZATION_HAPPENS_BEFORE/AFTER in the DRD manual.

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

13 years agoFix a typo.
Florian Krohm [Sat, 10 Dec 2011 16:06:57 +0000 (16:06 +0000)] 
Fix a typo.

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

13 years agoAdd script to assist in updating the C++ demangler from GCC trunk.
Florian Krohm [Sat, 10 Dec 2011 16:03:57 +0000 (16:03 +0000)] 
Add script to assist in updating the C++ demangler from GCC trunk.

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

13 years agoUpdate the C++ demangler by importing files from GCC trunk @ r181975.
Florian Krohm [Sat, 10 Dec 2011 16:00:25 +0000 (16:00 +0000)] 
Update the C++ demangler by importing files from GCC trunk @ r181975.
Also fixes #283413

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

13 years agoAdd command-line option --fair-sched=[no|yes|try]. Use --fair-sched=try
Bart Van Assche [Thu, 8 Dec 2011 16:14:59 +0000 (16:14 +0000)] 
Add command-line option --fair-sched=[no|yes|try]. Use --fair-sched=try
when running the annotate_hbefore regression test. Closes #270006.

To do: update manual.

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

13 years agoRemove emacs modeline and/or local variables from DRD source files
Bart Van Assche [Sun, 4 Dec 2011 15:54:19 +0000 (15:54 +0000)] 
Remove emacs modeline and/or local variables from DRD source files

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

13 years agoGive a better help message for gdbserver when VALGRIND_LIB
Philippe Waroquiers [Thu, 1 Dec 2011 19:44:34 +0000 (19:44 +0000)] 
Give a better help message for gdbserver when VALGRIND_LIB
is set. This ensures a correct help msg is given when
the valgrind installation is moved, and VALGRIND_LIB is
then set to the new valgrind lib location.
Note it does not improve the help msg when valgrind
is run "in place" (e.g. when using vg-in-place).
(Patch from Paul Pluzhnikov).

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