]> sourceware.org Git - valgrind.git/commitdiff
drd/tests: Extract start_thread which can come from libpthread or libc
authorMark Wielaard <mark@klomp.org>
Tue, 12 Oct 2021 16:51:23 +0000 (18:51 +0200)
committerMark Wielaard <mark@klomp.org>
Tue, 12 Oct 2021 16:51:23 +0000 (18:51 +0200)
The drd/tests/tc21_pthonce and drd/tests/annotate_barrier tests
would fail if start_thread came from libc (as it does in glibc 2.34)
instead of from libpthread. Extract start_thread in filter_stderr.in
and update the backtraces in annotate_barrier.stderr.exp and in
tc21_pthonce.stderr.exp

Tested against glibc 2.34, 2.33 and 2.17 on x86_64.

drd/tests/annotate_barrier.stderr.exp
drd/tests/filter_stderr.in
drd/tests/tc21_pthonce.stderr.exp

index 1ae8934c34b08ea1c332202c47e8bc0a6a4b42eb..41296531a977bed537783f8b949344b492c5db9e 100644 (file)
@@ -25,7 +25,7 @@ Thread 2:
 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:?)
index aec1d60f5d7414068ebdfd3f48aa590d1da4e850..e7d975b81b09b97856ddcc6de48548a7ada68a27 100755 (executable)
@@ -19,6 +19,7 @@ fi |
 # 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 .../" \
@@ -30,6 +31,7 @@ $SED \
 -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/" \
index b6458280f1dc5b1b3f2cdd5443e193e9f0787950..3179b98859be5abed35267a62a2990ab8126f130 100644 (file)
@@ -3,7 +3,7 @@ Thread 3:
 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)
@@ -13,7 +13,7 @@ Other segment end (thread 2)
 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)
This page took 0.033307 seconds and 5 git commands to generate.