]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Merged trunk revisions 9398, 9399, 9400 and 9407 to the 3.4 branch. Fixes bug #187048.
authorBart Van Assche <bvanassche@acm.org>
Sat, 14 Mar 2009 09:07:28 +0000 (09:07 +0000)
committerBart Van Assche <bvanassche@acm.org>
Sat, 14 Mar 2009 09:07:28 +0000 (09:07 +0000)
git-svn-id: svn://svn.valgrind.org/valgrind/branches/VALGRIND_3_4_BRANCH@9408

13 files changed:
drd/drd_pthread_intercepts.c
drd/tests/Makefile.am
drd/tests/pth_process_shared_mutex.c [new file with mode: 0644]
drd/tests/pth_process_shared_mutex.stderr.exp [new file with mode: 0644]
drd/tests/pth_process_shared_mutex.vgtest [new file with mode: 0644]
drd/tests/tc20_verifywrap.stderr.exp-glibc2.5
drd/tests/tc20_verifywrap.stderr.exp-glibc2.5-ppc
drd/tests/tc20_verifywrap.stderr.exp-glibc2.8
drd/tests/tc20_verifywrap2.stderr.exp-glibc2.3
drd/tests/tc20_verifywrap2.stderr.exp-glibc2.3-b
drd/tests/tc20_verifywrap2.stderr.exp-glibc2.5
drd/tests/tc20_verifywrap2.stderr.exp-glibc2.5-ppc
drd/tests/tc20_verifywrap2.stderr.exp-glibc2.8

index 100dc5b813a7bdd03557f53cc9179ff26f2c65f1..9f5c3a848562a639d6f5bfba0ceca5dcaecc2032 100644 (file)
@@ -132,15 +132,18 @@ static MutexT pthread_to_drd_mutex_type(const int kind)
 
 /** @note The function mutex_type() has been declared inline in order
  *  to avoid that it shows up in call stacks.
+ * @note glibc stores the mutex type in the lowest two bits, and uses the
+ *   higher bits for flags like PTHREAD_MUTEXATTR_FLAG_ROBUST and
+ *   PTHREAD_MUTEXATTR_FLAG_PSHARED.
  */
 static __inline__ MutexT mutex_type(pthread_mutex_t* mutex)
 {
 #if defined(HAVE_PTHREAD_MUTEX_T__M_KIND)
   /* LinuxThreads. */
-  const int kind = mutex->__m_kind;
+  const int kind = mutex->__m_kind & 3;
 #elif defined(HAVE_PTHREAD_MUTEX_T__DATA__KIND)
   /* NPTL. */
-  const int kind = mutex->__data.__kind;
+  const int kind = mutex->__data.__kind & 3;
 #else
   /* Another POSIX threads implementation. Regression tests will fail. */
   const int kind = PTHREAD_MUTEX_DEFAULT;
index 36edbcb548219dfcf89bcd652e7f91bc11c0007f..dde4d52ddd65064ba7f347c36b10b28462b2d11a 100644 (file)
@@ -109,6 +109,8 @@ EXTRA_DIST =                                        \
        pth_detached_sem.vgtest                     \
        pth_inconsistent_cond_wait.stderr.exp       \
        pth_inconsistent_cond_wait.vgtest           \
+       pth_process_shared_mutex.vgtest             \
+       pth_process_shared_mutex.c                  \
        pth_spinlock.stderr.exp                     \
        pth_spinlock.vgtest                         \
        qt4_mutex.stderr.exp                        \
@@ -228,6 +230,7 @@ check_PROGRAMS =      \
   pth_create_chain    \
   pth_detached        \
   pth_detached_sem    \
+  pth_process_shared_mutex   \
   pth_inconsistent_cond_wait \
   pth_spinlock        \
   recursive_mutex     \
@@ -354,6 +357,9 @@ pth_detached_sem_LDADD      = -lpthread
 pth_inconsistent_cond_wait_SOURCES = pth_inconsistent_cond_wait.c
 pth_inconsistent_cond_wait_LDADD   = -lpthread
 
+pth_process_shared_mutex_SOURCES = pth_process_shared_mutex.c
+pth_process_shared_mutex_LDADD   = -lpthread
+
 pth_spinlock_SOURCES        = pth_spinlock.c
 pth_spinlock_LDADD          = -lpthread
 
diff --git a/drd/tests/pth_process_shared_mutex.c b/drd/tests/pth_process_shared_mutex.c
new file mode 100644 (file)
index 0000000..1344761
--- /dev/null
@@ -0,0 +1,30 @@
+/*
+ * Test program that locks and unlocks a process-shared mutex.
+ * See also https://bugs.kde.org/show_bug.cgi?id=187048.
+ */
+
+
+#define _GNU_SOURCE
+
+#include <stdio.h>
+#include <pthread.h>
+
+
+int main()
+{
+  pthread_mutex_t mutex;
+  pthread_mutexattr_t attr;
+
+  pthread_mutexattr_init(&attr);
+  pthread_mutexattr_setpshared(&attr, PTHREAD_PROCESS_SHARED);
+  pthread_mutex_init(&mutex, &attr);
+  pthread_mutexattr_destroy(&attr);
+
+  pthread_mutex_lock(&mutex);
+  pthread_mutex_unlock(&mutex);
+  pthread_mutex_destroy(&mutex);
+
+  fprintf(stderr, "Finished.\n");
+
+  return 0;
+}
diff --git a/drd/tests/pth_process_shared_mutex.stderr.exp b/drd/tests/pth_process_shared_mutex.stderr.exp
new file mode 100644 (file)
index 0000000..a7089bb
--- /dev/null
@@ -0,0 +1,4 @@
+
+Finished.
+
+ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
diff --git a/drd/tests/pth_process_shared_mutex.vgtest b/drd/tests/pth_process_shared_mutex.vgtest
new file mode 100644 (file)
index 0000000..df99168
--- /dev/null
@@ -0,0 +1,3 @@
+prereq: ./supported_libpthread
+prog: pth_process_shared_mutex
+vgopts: --var-info=yes --check-stack-var=yes
index 1e531a84c859a8820be522d11bf9e4034cdd4203..a800bc3b5f53ad9a65fc51c77b33ea88c970dcab 100644 (file)
@@ -25,28 +25,7 @@ Destroying locked mutex: mutex 0x........, recursion count 1, owner 1.
    at 0x........: pthread_mutex_destroy (drd_pthread_intercepts.c:?)
    by 0x........: main (tc20_verifywrap.c:102)
 
-The object at address 0x........ is not a mutex.
-   at 0x........: pthread_mutex_lock (drd_pthread_intercepts.c:?)
-   by 0x........: main (tc20_verifywrap.c:108)
-mutex 0x........ was first observed at:
-   at 0x........: pthread_mutex_lock (drd_pthread_intercepts.c:?)
-   by 0x........: main (tc20_verifywrap.c:108)
-
-The object at address 0x........ is not a mutex.
-   at 0x........: pthread_mutex_trylock (drd_pthread_intercepts.c:?)
-   by 0x........: main (tc20_verifywrap.c:116)
-mutex 0x........ was first observed at:
-   at 0x........: pthread_mutex_lock (drd_pthread_intercepts.c:?)
-   by 0x........: main (tc20_verifywrap.c:108)
-
-The object at address 0x........ is not a mutex.
-   at 0x........: pthread_mutex_timedlock (drd_pthread_intercepts.c:?)
-   by 0x........: main (tc20_verifywrap.c:121)
-mutex 0x........ was first observed at:
-   at 0x........: pthread_mutex_lock (drd_pthread_intercepts.c:?)
-   by 0x........: main (tc20_verifywrap.c:108)
-
-The object at address 0x........ is not a mutex.
+Mutex not locked: mutex 0x........, recursion count 0, owner 0.
    at 0x........: pthread_mutex_unlock (drd_pthread_intercepts.c:?)
    by 0x........: main (tc20_verifywrap.c:125)
 mutex 0x........ was first observed at:
@@ -140,4 +119,4 @@ Destroying locked rwlock: rwlock 0x.........
 Destroying locked mutex: mutex 0x........, recursion count 1, owner 1.
    at 0x........: main (tc20_verifywrap.c:262)
 
-ERROR SUMMARY: 16 errors from 16 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 13 errors from 13 contexts (suppressed: 0 from 0)
index 93e3d8a55ce3c99f370dac7a67b8ee8279d28bd4..1a0e33155ec0d86f65aae658933d6d3eeeec5b80 100644 (file)
@@ -25,28 +25,7 @@ Destroying locked mutex: mutex 0x........, recursion count 1, owner 1.
    at 0x........: pthread_mutex_destroy (drd_pthread_intercepts.c:?)
    by 0x........: main (tc20_verifywrap.c:102)
 
-The object at address 0x........ is not a mutex.
-   at 0x........: pthread_mutex_lock (drd_pthread_intercepts.c:?)
-   by 0x........: main (tc20_verifywrap.c:108)
-mutex 0x........ was first observed at:
-   at 0x........: pthread_mutex_lock (drd_pthread_intercepts.c:?)
-   by 0x........: main (tc20_verifywrap.c:108)
-
-The object at address 0x........ is not a mutex.
-   at 0x........: pthread_mutex_trylock (drd_pthread_intercepts.c:?)
-   by 0x........: main (tc20_verifywrap.c:116)
-mutex 0x........ was first observed at:
-   at 0x........: pthread_mutex_lock (drd_pthread_intercepts.c:?)
-   by 0x........: main (tc20_verifywrap.c:108)
-
-The object at address 0x........ is not a mutex.
-   at 0x........: pthread_mutex_timedlock (drd_pthread_intercepts.c:?)
-   by 0x........: main (tc20_verifywrap.c:121)
-mutex 0x........ was first observed at:
-   at 0x........: pthread_mutex_lock (drd_pthread_intercepts.c:?)
-   by 0x........: main (tc20_verifywrap.c:108)
-
-The object at address 0x........ is not a mutex.
+Mutex not locked: mutex 0x........, recursion count 0, owner 0.
    at 0x........: pthread_mutex_unlock (drd_pthread_intercepts.c:?)
    by 0x........: main (tc20_verifywrap.c:125)
 mutex 0x........ was first observed at:
@@ -140,4 +119,4 @@ Destroying locked mutex: mutex 0x........, recursion count 1, owner 1.
 Destroying locked rwlock: rwlock 0x.........
    at 0x........: main (tc20_verifywrap.c:262)
 
-ERROR SUMMARY: 16 errors from 16 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 13 errors from 13 contexts (suppressed: 0 from 0)
index d4e7175e5e3a7e43fd853eebcbbfb7d133c7f74c..057b5fe40317d412a9bed99ccc3f164e939927b7 100644 (file)
@@ -25,28 +25,7 @@ Destroying locked mutex: mutex 0x........, recursion count 1, owner 1.
    at 0x........: pthread_mutex_destroy (drd_pthread_intercepts.c:?)
    by 0x........: main (tc20_verifywrap.c:102)
 
-The object at address 0x........ is not a mutex.
-   at 0x........: pthread_mutex_lock (drd_pthread_intercepts.c:?)
-   by 0x........: main (tc20_verifywrap.c:108)
-mutex 0x........ was first observed at:
-   at 0x........: pthread_mutex_lock (drd_pthread_intercepts.c:?)
-   by 0x........: main (tc20_verifywrap.c:108)
-
-The object at address 0x........ is not a mutex.
-   at 0x........: pthread_mutex_trylock (drd_pthread_intercepts.c:?)
-   by 0x........: main (tc20_verifywrap.c:116)
-mutex 0x........ was first observed at:
-   at 0x........: pthread_mutex_lock (drd_pthread_intercepts.c:?)
-   by 0x........: main (tc20_verifywrap.c:108)
-
-The object at address 0x........ is not a mutex.
-   at 0x........: pthread_mutex_timedlock (drd_pthread_intercepts.c:?)
-   by 0x........: main (tc20_verifywrap.c:121)
-mutex 0x........ was first observed at:
-   at 0x........: pthread_mutex_lock (drd_pthread_intercepts.c:?)
-   by 0x........: main (tc20_verifywrap.c:108)
-
-The object at address 0x........ is not a mutex.
+Mutex not locked: mutex 0x........, recursion count 0, owner 0.
    at 0x........: pthread_mutex_unlock (drd_pthread_intercepts.c:?)
    by 0x........: main (tc20_verifywrap.c:125)
 mutex 0x........ was first observed at:
index 9e29a244e5e72dbf24ef9e6fb5de9ae60d80cef5..31447acbf9a1d8e8472661452040617e1cb7061f 100644 (file)
@@ -163,7 +163,7 @@ Destroying locked rwlock: rwlock 0x.........
 
 Destroying locked mutex: mutex 0x........, recursion count 1, owner 1.
    at 0x........: main (tc20_verifywrap.c:262)
-[1/1] mutex_destroy   invalid mutex 0x........ rc 0 owner 0
+[1/1] mutex_destroy   mutex 0x........ rc 0 owner 0
 [1/1] mutex_trylock   recursive mutex 0x........ rc 0 owner 0
 [1/1] post_mutex_lock recursive mutex 0x........ rc 0 owner 0
 [1/1] mutex_unlock    recursive mutex 0x........ rc 1
index 4be55c3794f8611ec2372ec31447780ce74210df..7fb1fe8e1d2c13e86d568ec65b78b09293de2ff3 100644 (file)
@@ -163,7 +163,7 @@ Destroying locked rwlock: rwlock 0x.........
 
 Destroying locked mutex: mutex 0x........, recursion count 1, owner 1.
    at 0x........: main (tc20_verifywrap.c:262)
-[1/1] mutex_destroy   invalid mutex 0x........ rc 0 owner 0
+[1/1] mutex_destroy   mutex 0x........ rc 0 owner 0
 [1/1] mutex_trylock   recursive mutex 0x........ rc 0 owner 0
 [1/1] post_mutex_lock recursive mutex 0x........ rc 0 owner 0
 [1/1] mutex_unlock    recursive mutex 0x........ rc 1
index 9b729075ea3c14a766ce9a55ef09c00cc0c2b6ff..aff9624e449a21eadea23f5beacbb9ced27d1905 100644 (file)
@@ -29,36 +29,15 @@ The object at address 0x........ is not a mutex.
 Destroying locked mutex: mutex 0x........, recursion count 1, owner 1.
    at 0x........: pthread_mutex_destroy (drd_pthread_intercepts.c:?)
    by 0x........: main (tc20_verifywrap.c:102)
-[1/1] mutex_trylock   invalid mutex 0x........ rc 0 owner 0
-
-The object at address 0x........ is not a mutex.
-   at 0x........: pthread_mutex_lock (drd_pthread_intercepts.c:?)
-   by 0x........: main (tc20_verifywrap.c:108)
-mutex 0x........ was first observed at:
-   at 0x........: pthread_mutex_lock (drd_pthread_intercepts.c:?)
-   by 0x........: main (tc20_verifywrap.c:108)
-[1/1] post_mutex_lock invalid mutex 0x........ rc 0 owner 0 (locking failed)
-[1/1] pre_mutex_lock  invalid mutex 0x........ rc 0 owner 0
-
-The object at address 0x........ is not a mutex.
-   at 0x........: pthread_mutex_trylock (drd_pthread_intercepts.c:?)
-   by 0x........: main (tc20_verifywrap.c:116)
-mutex 0x........ was first observed at:
-   at 0x........: pthread_mutex_lock (drd_pthread_intercepts.c:?)
-   by 0x........: main (tc20_verifywrap.c:108)
-[1/1] post_mutex_lock invalid mutex 0x........ rc 0 owner 0 (locking failed)
-[1/1] mutex_trylock   invalid mutex 0x........ rc 0 owner 0
-
-The object at address 0x........ is not a mutex.
-   at 0x........: pthread_mutex_timedlock (drd_pthread_intercepts.c:?)
-   by 0x........: main (tc20_verifywrap.c:121)
-mutex 0x........ was first observed at:
-   at 0x........: pthread_mutex_lock (drd_pthread_intercepts.c:?)
-   by 0x........: main (tc20_verifywrap.c:108)
-[1/1] post_mutex_lock invalid mutex 0x........ rc 0 owner 0 (locking failed)
-[1/1] mutex_unlock    invalid mutex 0x........ rc 0
+[1/1] mutex_trylock   mutex 0x........ rc 0 owner 0
+[1/1] post_mutex_lock mutex 0x........ rc 0 owner 0 (locking failed)
+[1/1] pre_mutex_lock  mutex 0x........ rc 0 owner 0
+[1/1] post_mutex_lock mutex 0x........ rc 0 owner 0 (locking failed)
+[1/1] mutex_trylock   mutex 0x........ rc 0 owner 0
+[1/1] post_mutex_lock mutex 0x........ rc 0 owner 0 (locking failed)
+[1/1] mutex_unlock    mutex 0x........ rc 0
 
-The object at address 0x........ is not a mutex.
+Mutex not locked: mutex 0x........, recursion count 0, owner 0.
    at 0x........: pthread_mutex_unlock (drd_pthread_intercepts.c:?)
    by 0x........: main (tc20_verifywrap.c:125)
 mutex 0x........ was first observed at:
@@ -169,7 +148,7 @@ Destroying locked rwlock: rwlock 0x.........
 
 Destroying locked mutex: mutex 0x........, recursion count 1, owner 1.
    at 0x........: main (tc20_verifywrap.c:262)
-[1/1] mutex_destroy   invalid mutex 0x........ rc 0 owner 0
+[1/1] mutex_destroy   mutex 0x........ rc 0 owner 0
 [1/1] mutex_trylock   recursive mutex 0x........ rc 0 owner 0
 [1/1] post_mutex_lock recursive mutex 0x........ rc 0 owner 0
 [1/1] mutex_unlock    recursive mutex 0x........ rc 1
@@ -219,4 +198,4 @@ Destroying locked mutex: mutex 0x........, recursion count 1, owner 1.
 [1/1] post_mutex_lock recursive mutex 0x........ rc 0 owner 1
 [1/1] mutex_unlock    recursive mutex 0x........ rc 1
 
-ERROR SUMMARY: 16 errors from 16 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 13 errors from 13 contexts (suppressed: 0 from 0)
index 0b7f0c14ae45f2ee8b0a3781bddcd1c1610f8477..a7360fc1add51a6e263ba8bdba4a2c5618018309 100644 (file)
@@ -29,36 +29,15 @@ The object at address 0x........ is not a mutex.
 Destroying locked mutex: mutex 0x........, recursion count 1, owner 1.
    at 0x........: pthread_mutex_destroy (drd_pthread_intercepts.c:?)
    by 0x........: main (tc20_verifywrap.c:102)
-[1/1] mutex_trylock   invalid mutex 0x........ rc 0 owner 0
-
-The object at address 0x........ is not a mutex.
-   at 0x........: pthread_mutex_lock (drd_pthread_intercepts.c:?)
-   by 0x........: main (tc20_verifywrap.c:108)
-mutex 0x........ was first observed at:
-   at 0x........: pthread_mutex_lock (drd_pthread_intercepts.c:?)
-   by 0x........: main (tc20_verifywrap.c:108)
-[1/1] post_mutex_lock invalid mutex 0x........ rc 0 owner 0 (locking failed)
-[1/1] pre_mutex_lock  invalid mutex 0x........ rc 0 owner 0
-
-The object at address 0x........ is not a mutex.
-   at 0x........: pthread_mutex_trylock (drd_pthread_intercepts.c:?)
-   by 0x........: main (tc20_verifywrap.c:116)
-mutex 0x........ was first observed at:
-   at 0x........: pthread_mutex_lock (drd_pthread_intercepts.c:?)
-   by 0x........: main (tc20_verifywrap.c:108)
-[1/1] post_mutex_lock invalid mutex 0x........ rc 0 owner 0 (locking failed)
-[1/1] mutex_trylock   invalid mutex 0x........ rc 0 owner 0
-
-The object at address 0x........ is not a mutex.
-   at 0x........: pthread_mutex_timedlock (drd_pthread_intercepts.c:?)
-   by 0x........: main (tc20_verifywrap.c:121)
-mutex 0x........ was first observed at:
-   at 0x........: pthread_mutex_lock (drd_pthread_intercepts.c:?)
-   by 0x........: main (tc20_verifywrap.c:108)
-[1/1] post_mutex_lock invalid mutex 0x........ rc 0 owner 0 (locking failed)
-[1/1] mutex_unlock    invalid mutex 0x........ rc 0
+[1/1] mutex_trylock   mutex 0x........ rc 0 owner 0
+[1/1] post_mutex_lock mutex 0x........ rc 0 owner 0 (locking failed)
+[1/1] pre_mutex_lock  mutex 0x........ rc 0 owner 0
+[1/1] post_mutex_lock mutex 0x........ rc 0 owner 0 (locking failed)
+[1/1] mutex_trylock   mutex 0x........ rc 0 owner 0
+[1/1] post_mutex_lock mutex 0x........ rc 0 owner 0 (locking failed)
+[1/1] mutex_unlock    mutex 0x........ rc 0
 
-The object at address 0x........ is not a mutex.
+Mutex not locked: mutex 0x........, recursion count 0, owner 0.
    at 0x........: pthread_mutex_unlock (drd_pthread_intercepts.c:?)
    by 0x........: main (tc20_verifywrap.c:125)
 mutex 0x........ was first observed at:
@@ -162,7 +141,7 @@ FIXME: can't figure out how to verify wrap of sem_post
 
 ------------ dealloc of mem holding locks ------------
 
-[1/1] mutex_destroy   invalid mutex 0x........ rc 0 owner 0
+[1/1] mutex_destroy   mutex 0x........ rc 0 owner 0
 [1/1] mutex_destroy   error checking mutex 0x........ rc 1 owner 1
 
 Destroying locked mutex: mutex 0x........, recursion count 1, owner 1.
@@ -219,4 +198,4 @@ Destroying locked rwlock: rwlock 0x.........
 [1/1] post_mutex_lock recursive mutex 0x........ rc 0 owner 1
 [1/1] mutex_unlock    recursive mutex 0x........ rc 1
 
-ERROR SUMMARY: 16 errors from 16 contexts (suppressed: 0 from 0)
+ERROR SUMMARY: 13 errors from 13 contexts (suppressed: 0 from 0)
index 26410b6d4f036a2ef1d772bd78595b06ca37146d..939ae4106f51dc97b8282b9b314daefc3bd9c0e6 100644 (file)
@@ -29,36 +29,15 @@ The object at address 0x........ is not a mutex.
 Destroying locked mutex: mutex 0x........, recursion count 1, owner 1.
    at 0x........: pthread_mutex_destroy (drd_pthread_intercepts.c:?)
    by 0x........: main (tc20_verifywrap.c:102)
-[1/1] mutex_trylock   invalid mutex 0x........ rc 0 owner 0
-
-The object at address 0x........ is not a mutex.
-   at 0x........: pthread_mutex_lock (drd_pthread_intercepts.c:?)
-   by 0x........: main (tc20_verifywrap.c:108)
-mutex 0x........ was first observed at:
-   at 0x........: pthread_mutex_lock (drd_pthread_intercepts.c:?)
-   by 0x........: main (tc20_verifywrap.c:108)
-[1/1] post_mutex_lock invalid mutex 0x........ rc 0 owner 0 (locking failed)
-[1/1] pre_mutex_lock  invalid mutex 0x........ rc 0 owner 0
-
-The object at address 0x........ is not a mutex.
-   at 0x........: pthread_mutex_trylock (drd_pthread_intercepts.c:?)
-   by 0x........: main (tc20_verifywrap.c:116)
-mutex 0x........ was first observed at:
-   at 0x........: pthread_mutex_lock (drd_pthread_intercepts.c:?)
-   by 0x........: main (tc20_verifywrap.c:108)
-[1/1] post_mutex_lock invalid mutex 0x........ rc 0 owner 0 (locking failed)
-[1/1] mutex_trylock   invalid mutex 0x........ rc 0 owner 0
-
-The object at address 0x........ is not a mutex.
-   at 0x........: pthread_mutex_timedlock (drd_pthread_intercepts.c:?)
-   by 0x........: main (tc20_verifywrap.c:121)
-mutex 0x........ was first observed at:
-   at 0x........: pthread_mutex_lock (drd_pthread_intercepts.c:?)
-   by 0x........: main (tc20_verifywrap.c:108)
-[1/1] post_mutex_lock invalid mutex 0x........ rc 0 owner 0 (locking failed)
-[1/1] mutex_unlock    invalid mutex 0x........ rc 0
+[1/1] mutex_trylock   mutex 0x........ rc 0 owner 0
+[1/1] post_mutex_lock mutex 0x........ rc 0 owner 0 (locking failed)
+[1/1] pre_mutex_lock  mutex 0x........ rc 0 owner 0
+[1/1] post_mutex_lock mutex 0x........ rc 0 owner 0 (locking failed)
+[1/1] mutex_trylock   mutex 0x........ rc 0 owner 0
+[1/1] post_mutex_lock mutex 0x........ rc 0 owner 0 (locking failed)
+[1/1] mutex_unlock    mutex 0x........ rc 0
 
-The object at address 0x........ is not a mutex.
+Mutex not locked: mutex 0x........, recursion count 0, owner 0.
    at 0x........: pthread_mutex_unlock (drd_pthread_intercepts.c:?)
    by 0x........: main (tc20_verifywrap.c:125)
 mutex 0x........ was first observed at: