Added detection of more types of runtime errors. Cleaned up tracing output. Added test for tracing output (tc20_verifywrap2).

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@7511 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/exp-drd/drd_error.h b/exp-drd/drd_error.h
index e9a54c4..9dfdd61 100644
--- a/exp-drd/drd_error.h
+++ b/exp-drd/drd_error.h
@@ -39,9 +39,12 @@
 typedef enum {
    DataRaceErr    = 1,
    MutexErr       = 2,
-   CondRaceErr    = 3,
-   CondErr        = 4,
-   GenericErr     = 5,
+   CondErr        = 3,
+   CondRaceErr    = 4,
+   CondDestrErr   = 5,
+   SemaphoreErr   = 6,
+   BarrierErr     = 7,
+   GenericErr     = 8,
 } DrdErrorKind;
 
 /* The classification of a faulting address. */
@@ -88,12 +91,26 @@
 
 typedef struct {
    Addr cond;
+} CondErrInfo;
+
+typedef struct {
+   Addr cond;
    Addr mutex;
 } CondRaceErrInfo;
 
 typedef struct {
-   Addr cond;
-} CondErrInfo;
+   Addr        cond;
+   Addr        mutex;
+   DrdThreadId tid;
+} CondDestrErrInfo;
+
+typedef struct {
+   Addr semaphore;
+} SemaphoreErrInfo;
+
+typedef struct {
+   Addr barrier;
+} BarrierErrInfo;
 
 typedef struct {
 } GenericErrInfo;