Conflicting store by thread 2 at 0x........ size 4
at 0x........: threadfunc (annotate_barrier.c:?)
by 0x........: vgDrd_thread_wrapper (drd_pthread_intercepts.c:?)
- by 0x........: (within libpthread-?.?.so)
+ by 0x........: start_thread
Address 0x........ is at offset 0 from 0x......... Allocation context:
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: barriers_and_races (annotate_barrier.c:?)
# Remove line numbers referring to drd's source code.
# Remove libpthread's version number.
# Remove line numbers from stack traces.
+# Extract start_thread because it can be in libpthread or libc.
$SED \
-e "/^drd, a thread error detector$/d" \
-e "s/^Allocation context: stack of thread \([0-9]*\), offset -[0-9]*$/Allocation context: stack of thread \1, offset .../" \
-e "s/(\(functional\|thread\):[0-9]*)/(\1:...)/" \
-e "s/(tc20_verifywrap.c:261)/(tc20_verifywrap.c:262)/" \
-e "/^Copyright (C) 2006-20.., and GNU GPL'd, by Bart Van Assche.$/d" \
+-e "s/start_thread ([^)]*)/start_thread/" \
-e "s/\([A-Za-z_]*\) (clone.S:[0-9]*)/\1 (in \/...libc...)/" \
-e "s/\([A-Za-z_]*\) (swapcontext.S:[0-9]*)/\1 (in \/...libc...)/" \
-e "s/_swapcontext/swapcontext/" \
Conflicting load by thread 3 at 0x........ size 4
at 0x........: child (tc21_pthonce.c:74)
by 0x........: vgDrd_thread_wrapper (drd_pthread_intercepts.c:?)
- by 0x........: (within libpthread-?.?.so)
+ by 0x........: start_thread
Allocation context: BSS section of tc21_pthonce
Other segment start (thread 2)
(thread finished, call stack no longer available)
Conflicting store by thread 3 at 0x........ size 4
at 0x........: child (tc21_pthonce.c:74)
by 0x........: vgDrd_thread_wrapper (drd_pthread_intercepts.c:?)
- by 0x........: (within libpthread-?.?.so)
+ by 0x........: start_thread
Allocation context: BSS section of tc21_pthonce
Other segment start (thread 2)
(thread finished, call stack no longer available)