|
From: <sv...@va...> - 2014-08-08 16:18:13
|
Author: bart
Date: Fri Aug 8 16:17:58 2014
New Revision: 14242
Log:
drd: Add command-line option --verify-conflict-set
Modified:
trunk/drd/drd_main.c
trunk/drd/drd_thread.c
trunk/drd/drd_thread.h
Modified: trunk/drd/drd_main.c
==============================================================================
--- trunk/drd/drd_main.c (original)
+++ trunk/drd/drd_main.c Fri Aug 8 16:17:58 2014
@@ -121,6 +121,8 @@
else if VG_BOOL_CLO(arg, "--trace-semaphore", trace_semaphore) {}
else if VG_BOOL_CLO(arg, "--trace-suppr", trace_suppression) {}
else if VG_BOOL_CLO(arg, "--var-info", s_var_info) {}
+ else if VG_BOOL_CLO(arg, "--verify-conflict-set", DRD_(verify_conflict_set))
+ {}
else if VG_INT_CLO (arg, "--exclusive-threshold", exclusive_threshold_ms) {}
else if VG_STR_CLO (arg, "--ptrace-addr", ptrace_address) {}
else if VG_INT_CLO (arg, "--shared-threshold", shared_threshold_ms) {}
@@ -262,6 +264,7 @@
" which data race detection is suppressed.\n"
" --trace-segment=yes|no Trace segment actions [no].\n"
" --trace-suppr=yes|no Trace all address suppression actions [no].\n"
+" --verify-conflict-set=yes|no Verify conflict set consistency [no].\n"
);
}
Modified: trunk/drd/drd_thread.c
==============================================================================
--- trunk/drd/drd_thread.c (original)
+++ trunk/drd/drd_thread.c Fri Aug 8 16:17:58 2014
@@ -68,6 +68,7 @@
DrdThreadId DRD_(g_drd_running_tid) = DRD_INVALID_THREADID;
ThreadInfo DRD_(g_threadinfo)[DRD_N_THREADS];
struct bitmap* DRD_(g_conflict_set);
+int DRD_(verify_conflict_set) = -1;
static Bool s_trace_context_switches = False;
static Bool s_trace_conflict_set = False;
static Bool s_trace_conflict_set_bm = False;
@@ -1347,14 +1348,13 @@
*/
static Bool thread_conflict_set_up_to_date(const DrdThreadId tid)
{
- static int do_verify_conflict_set = -1;
Bool result;
struct bitmap* computed_conflict_set = 0;
- if (do_verify_conflict_set < 0)
- do_verify_conflict_set = VG_(getenv)("DRD_VERIFY_CONFLICT_SET") != 0;
+ if (DRD_(verify_conflict_set) < 0)
+ DRD_(verify_conflict_set) = VG_(getenv)("DRD_VERIFY_CONFLICT_SET") != 0;
- if (do_verify_conflict_set == 0)
+ if (DRD_(verify_conflict_set) == 0)
return True;
thread_compute_conflict_set(&computed_conflict_set, tid);
Modified: trunk/drd/drd_thread.h
==============================================================================
--- trunk/drd/drd_thread.h (original)
+++ trunk/drd/drd_thread.h Fri Aug 8 16:17:58 2014
@@ -116,6 +116,7 @@
extern ThreadInfo DRD_(g_threadinfo)[DRD_N_THREADS];
/** Conflict set for the currently running thread. */
extern struct bitmap* DRD_(g_conflict_set);
+extern int DRD_(verify_conflict_set);
/* Function declarations. */
|