Thread 3:
Mutex 0x........(m1) locked in inconsistent order
- at 0x........: __pthread_mutex_lock (vg_libpthread.c:945)
+ at 0x........: __pthread_mutex_lock (vg_libpthread.c:...)
by 0x........: t2 (deadlock.c:20)
- by 0x........: thread_wrapper (vg_libpthread.c:661)
+ by 0x........: thread_wrapper (vg_libpthread.c:...)
by 0x........: do__quit (vg_scheduler.c:1791)
while holding locks 0x........(m2)
0x........(m2) last locked at
- at 0x........: __pthread_mutex_lock (vg_libpthread.c:945)
+ at 0x........: __pthread_mutex_lock (vg_libpthread.c:...)
by 0x........: t2 (deadlock.c:19)
- by 0x........: thread_wrapper (vg_libpthread.c:661)
+ by 0x........: thread_wrapper (vg_libpthread.c:...)
by 0x........: do__quit (vg_scheduler.c:1791)
while depending on locks 0x........(m1)
$dir/../../tests/filter_stderr_basic |
$dir/../../tests/filter_addresses |
+# Anonymise paths like "section of /foo/bar/helgrind/tests/baz)"
+sed "s/section of \/.*helgrind\/tests.*$/section of \/...helgrind\/tests.../" |
+
# Output looks like...
#
# ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
# [0] = { }
# ==27116== 0 possible data races found
-
sed "/ERROR SUMMARY:/ , /0 possible data races found/ d"
Thread 3:
Possible data race writing variable at 0x........ (shared)
at 0x........: th (race.c:10)
- by 0x........: thread_wrapper (vg_libpthread.c:661)
+ by 0x........: thread_wrapper (vg_libpthread.c:...)
by 0x........: do__quit (vg_scheduler.c:1791)
- Address 0x........ is in BSS section of /home/jeremy/cvs/valgrind/helgrind/tests/race
+ Address 0x........ is in BSS section of /...helgrind/tests...
Previous state: shared RO, no locks
Thread 3:
Possible data race writing variable at 0x........
at 0x........: th (race2.c:17)
- by 0x........: thread_wrapper (vg_libpthread.c:661)
+ by 0x........: thread_wrapper (vg_libpthread.c:...)
by 0x........: do__quit (vg_scheduler.c:1791)
Address 0x........ == &(f->poot[5].plop[11]) at race2.c:17
Previous state: shared RO, no locks
# Anonymise vg_intercept lines
sed "s/vg_intercept.c:[0-9]\+/vg_intercept.c:.../" |
+# Anonymise vg_libpthread lines
+sed "s/vg_libpthread.c:[0-9]\+/vg_libpthread.c:.../" |
+
# Reduce some libc incompatibility
sed "s/ __getsockname / getsockname /" |
sed "s/ __sigaction / sigaction /" |