at 0x........: __pthread_mutex_lock (vg_libpthread.c:...)
by 0x........: t2 (deadlock.c:20)
by 0x........: thread_wrapper (vg_libpthread.c:...)
- by 0x........: do__quit (vg_scheduler.c:1791)
+ by 0x........: do__quit (vg_scheduler.c:...)
while holding locks 0x........(m2)
0x........(m2) last locked at
at 0x........: __pthread_mutex_lock (vg_libpthread.c:...)
by 0x........: t2 (deadlock.c:19)
by 0x........: thread_wrapper (vg_libpthread.c:...)
- by 0x........: do__quit (vg_scheduler.c:1791)
+ by 0x........: do__quit (vg_scheduler.c:...)
while depending on locks 0x........(m1)
# Anonymise paths like "section of /foo/bar/helgrind/tests/baz)"
sed "s/section of \/.*helgrind\/tests.*$/section of \/...helgrind\/tests.../" |
+# Anonymise line numbers in vg_scheduler.c
+sed "s/vg_scheduler.c:[0-9]\+/vg_scheduler.c:.../" |
+
# Output looks like...
#
# ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
Possible data race writing variable at 0x........ (shared)
at 0x........: th (race.c:10)
by 0x........: thread_wrapper (vg_libpthread.c:...)
- by 0x........: do__quit (vg_scheduler.c:1791)
+ by 0x........: do__quit (vg_scheduler.c:...)
Address 0x........ is in BSS section of /...helgrind/tests...
Previous state: shared RO, no locks
Possible data race writing variable at 0x........
at 0x........: th (race2.c:17)
by 0x........: thread_wrapper (vg_libpthread.c:...)
- by 0x........: do__quit (vg_scheduler.c:1791)
+ by 0x........: do__quit (vg_scheduler.c:...)
Address 0x........ == &(f->poot[5].plop[11]) at race2.c:17
Previous state: shared RO, no locks