Bart Van Assche
283d0d3d12
Renamed bm_compare() into bm_equal(). Fixed a bug in bm_equal().
...
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@8001
2008-05-04 07:46:20 +00:00
Bart Van Assche
3e273124af
Disabled complex logic in danger_set_update_needed() since it did not result in any speedup.
...
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7890
2008-04-19 15:15:12 +00:00
Bart Van Assche
8c1facafab
Enable danger set checking when the environment variable DRD_VERIFY_DANGER_SET is set.
...
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7867
2008-04-13 17:35:08 +00:00
Bart Van Assche
b5bd427ecb
Renamed thread_update_danger_set() into thread_compute_danger_set().
...
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7866
2008-04-13 15:39:38 +00:00
Bart Van Assche
a0becdd86b
Added more counters. Reduced number of danger set updates slightly.
...
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7856
2008-04-06 15:02:17 +00:00
Bart Van Assche
21822e583e
Commented out the too frequently called tl_assert() statements.
...
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7845
2008-04-05 12:53:00 +00:00
Bart Van Assche
d052279628
Changed the way how data races in NPTL's thread-private data on the top of the stack are ignored: instead of clearing the corresponding region in the bitmap of every thread when the stack pointer is increased, the appropriate bits in the suppression bitmap are set at thread creation time.
...
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7841
2008-04-04 16:54:37 +00:00
Bart Van Assche
8d4a6c4012
Introduced bm_test_and_clear().
...
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7824
2008-03-30 17:56:43 +00:00
Bart Van Assche
b136f8009f
Added thread_get_stack_size() and thread_get_stack_min_min().
...
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7800
2008-03-29 09:27:08 +00:00
Bart Van Assche
a160fcb54e
Minor optimization.
...
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7751
2008-03-22 09:49:40 +00:00
Bart Van Assche
fd57d8b1f8
Implemented segment merging.
...
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7750
2008-03-22 09:38:48 +00:00
Bart Van Assche
4bc9d8c635
Added reference counting to segments. Synchronization objects (mutex, semaphore, barrier, rwlock) now keep a pointer to a segment instead of copying a vector clock for modeling causal relationships.
...
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7727
2008-03-17 18:32:39 +00:00
Bart Van Assche
8a980611eb
All error and trace messages now show both Valgrind's and DRD's thread ID.
...
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7716
2008-03-16 17:57:01 +00:00
Bart Van Assche
5425ee1fbe
Fixed stack red zone handling.
...
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7713
2008-03-16 17:29:20 +00:00
Bart Van Assche
1e97c6854d
Removed support for thread names.
...
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7704
2008-03-16 10:42:33 +00:00
Bart Van Assche
a6e5dc8917
Declared thread_set_stack_min() inline.
...
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7698
2008-03-16 08:36:23 +00:00
Bart Van Assche
f43006ea78
Made indentation in the DRD source code uniform: indentation size is now two spaces in all soure files.
...
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7684
2008-03-15 08:11:03 +00:00
Bart Van Assche
7c9e606612
Inlined thread_conflicting_access(). Changed thread_get_danger_set() and thread_get_segment() from extern to inline.
...
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7673
2008-03-13 19:03:38 +00:00
Bart Van Assche
1f8899b954
Added inline function running_thread_is_recording(). Removed function thread_is_recording().
...
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7672
2008-03-13 18:49:23 +00:00
Bart Van Assche
bd1e6d9da1
Added support for OpenMP barriers -- if libgomp.so has been built with debug information. More in general, added support for nested synchronization constructs.
...
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7642
2008-03-11 20:10:21 +00:00
Bart Van Assche
a3fa010c86
Removed too restrictive assert.
...
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7629
2008-03-10 18:37:22 +00:00
Bart Van Assche
8eb391f87d
Added new command-line option --trace-rwlock. Added regression test exp-drd/tests/rwlock_race. Updated to do list. Fixed bug in vc_min(), the function that computes the elementwise minimum of two vector clocks. Fixed bug in thread_update_danger_set(). Fixed recently introduced bug in mutex code with regard to vector clock combining.
...
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7549
2008-03-03 20:31:58 +00:00
Bart Van Assche
1a03c31785
Eliminated per-thread start/stop recording mechanism, which should make DRD a little bit faster. malloc()/free() is now intercepted on all platforms instead of just on i386.
...
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7519
2008-03-01 10:49:37 +00:00
Bart Van Assche
074b6ed137
Added -Wsign-compare.
...
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7517
2008-03-01 07:35:52 +00:00
Bart Van Assche
22fb174482
Corrected various comments. Removed commented out code. Added code for tracing thread context switches and danger set updating. Fixed memory leak. Danger set is now updated every time a new segment is created instead of only at every context switch, which fixes the bug that no data races were reported for the pth_barrier test program.
...
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7448
2008-02-24 18:37:08 +00:00
Julian Seward
22b3fe2a3e
DRD updates (Bart Van Assche):
...
- Updated copyright statement: replaced 2006-2007 by 2006-2008.
- Added copyright statement in the files where it was missing
(drd_track.h and drd_clientreq.c)
- Eliminated dependencies on core header files -- there are no more
#include "pub_core....h" directives in the exp-drd source code.
- Added semaphore support.
- Added barrier support.
- Added pthread_mutex_timedlock() support.
- Stack depth of stack traces printed by exp-drd can now be set via
--num-callers=...
- Added command-line option --trace-barrier=[yes|no].
- Added regression test for pthread_barrier() (matinv, a program that
performs matrix inversion).
- Added regression test sem_as_mutex, which tests whether race
detection works correctly when a semaphore is used to ensure mutual
exclusion of critical sections.
- Some of helgrind's regression tests are now used to test both
helgrind and exp-drd: tc17_sembar and tc18_semabuse.
- Cleaned up bitmap implementation code now that the const keyword has
been added to the declarations of the OSet functions.
- Cleaned up exp-drd/Makefile.am
- Updated exp-drd/TODO.txt
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7346
2008-01-14 11:54:56 +00:00
Tom Hughes
d3def869f3
Mark the main thread as running while the initial memory declarations
...
are made to the tool so that the tool can associate that memory with
the main thread if it wishes.
Also cleanup existing hacks in the drd tool which worked around the
fact that the core did not set the current thread while declaring the
initial memory.
Path from Bart Van Assche <bart.vanassche@gmail.com >.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7310
2008-01-02 10:13:04 +00:00
Julian Seward
de4d2156cc
DRD changes (Bart Van Assche)
...
* Add docs: exp-drd/docs/README.txt
* Added one drd suppression pattern, and cleaned up the suppression file.
* All regression tests now pass on x86_64 and i386, including sigalrm.
* Updated TODO.txt file.
* pth_create_chain test is now started with 100 threads instead of 10
-- 10 was not enough.
* DRD no longer exits on PPC32 and PPC64 but just prints a warning
message before it starts.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7275
2007-12-04 21:27:18 +00:00
Julian Seward
ec903846a6
Remove pthread_object_size.h and associated hardwired constants.
...
(Bart Van Assche)
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7252
2007-11-30 08:30:29 +00:00
Julian Seward
dc1dbea937
Add DRD as an experimental tool. Bart Van Assche is the maintainer.
...
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7211
2007-11-25 14:01:38 +00:00