You can subscribe to this list here.
| 2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
(122) |
Nov
(152) |
Dec
(69) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2003 |
Jan
(6) |
Feb
(25) |
Mar
(73) |
Apr
(82) |
May
(24) |
Jun
(25) |
Jul
(10) |
Aug
(11) |
Sep
(10) |
Oct
(54) |
Nov
(203) |
Dec
(182) |
| 2004 |
Jan
(307) |
Feb
(305) |
Mar
(430) |
Apr
(312) |
May
(187) |
Jun
(342) |
Jul
(487) |
Aug
(637) |
Sep
(336) |
Oct
(373) |
Nov
(441) |
Dec
(210) |
| 2005 |
Jan
(385) |
Feb
(480) |
Mar
(636) |
Apr
(544) |
May
(679) |
Jun
(625) |
Jul
(810) |
Aug
(838) |
Sep
(634) |
Oct
(521) |
Nov
(965) |
Dec
(543) |
| 2006 |
Jan
(494) |
Feb
(431) |
Mar
(546) |
Apr
(411) |
May
(406) |
Jun
(322) |
Jul
(256) |
Aug
(401) |
Sep
(345) |
Oct
(542) |
Nov
(308) |
Dec
(481) |
| 2007 |
Jan
(427) |
Feb
(326) |
Mar
(367) |
Apr
(255) |
May
(244) |
Jun
(204) |
Jul
(223) |
Aug
(231) |
Sep
(354) |
Oct
(374) |
Nov
(497) |
Dec
(362) |
| 2008 |
Jan
(322) |
Feb
(482) |
Mar
(658) |
Apr
(422) |
May
(476) |
Jun
(396) |
Jul
(455) |
Aug
(267) |
Sep
(280) |
Oct
(253) |
Nov
(232) |
Dec
(304) |
| 2009 |
Jan
(486) |
Feb
(470) |
Mar
(458) |
Apr
(423) |
May
(696) |
Jun
(461) |
Jul
(551) |
Aug
(575) |
Sep
(134) |
Oct
(110) |
Nov
(157) |
Dec
(102) |
| 2010 |
Jan
(226) |
Feb
(86) |
Mar
(147) |
Apr
(117) |
May
(107) |
Jun
(203) |
Jul
(193) |
Aug
(238) |
Sep
(300) |
Oct
(246) |
Nov
(23) |
Dec
(75) |
| 2011 |
Jan
(133) |
Feb
(195) |
Mar
(315) |
Apr
(200) |
May
(267) |
Jun
(293) |
Jul
(353) |
Aug
(237) |
Sep
(278) |
Oct
(611) |
Nov
(274) |
Dec
(260) |
| 2012 |
Jan
(303) |
Feb
(391) |
Mar
(417) |
Apr
(441) |
May
(488) |
Jun
(655) |
Jul
(590) |
Aug
(610) |
Sep
(526) |
Oct
(478) |
Nov
(359) |
Dec
(372) |
| 2013 |
Jan
(467) |
Feb
(226) |
Mar
(391) |
Apr
(281) |
May
(299) |
Jun
(252) |
Jul
(311) |
Aug
(352) |
Sep
(481) |
Oct
(571) |
Nov
(222) |
Dec
(231) |
| 2014 |
Jan
(185) |
Feb
(329) |
Mar
(245) |
Apr
(238) |
May
(281) |
Jun
(399) |
Jul
(382) |
Aug
(500) |
Sep
(579) |
Oct
(435) |
Nov
(487) |
Dec
(256) |
| 2015 |
Jan
(338) |
Feb
(357) |
Mar
(330) |
Apr
(294) |
May
(191) |
Jun
(108) |
Jul
(142) |
Aug
(261) |
Sep
(190) |
Oct
(54) |
Nov
(83) |
Dec
(22) |
| 2016 |
Jan
(49) |
Feb
(89) |
Mar
(33) |
Apr
(50) |
May
(27) |
Jun
(34) |
Jul
(53) |
Aug
(53) |
Sep
(98) |
Oct
(206) |
Nov
(93) |
Dec
(53) |
| 2017 |
Jan
(65) |
Feb
(82) |
Mar
(102) |
Apr
(86) |
May
(187) |
Jun
(67) |
Jul
(23) |
Aug
(93) |
Sep
(65) |
Oct
(45) |
Nov
(35) |
Dec
(17) |
| 2018 |
Jan
(26) |
Feb
(35) |
Mar
(38) |
Apr
(32) |
May
(8) |
Jun
(43) |
Jul
(27) |
Aug
(30) |
Sep
(43) |
Oct
(42) |
Nov
(38) |
Dec
(67) |
| 2019 |
Jan
(32) |
Feb
(37) |
Mar
(53) |
Apr
(64) |
May
(49) |
Jun
(18) |
Jul
(14) |
Aug
(53) |
Sep
(25) |
Oct
(30) |
Nov
(49) |
Dec
(31) |
| 2020 |
Jan
(87) |
Feb
(45) |
Mar
(37) |
Apr
(51) |
May
(99) |
Jun
(36) |
Jul
(11) |
Aug
(14) |
Sep
(20) |
Oct
(24) |
Nov
(40) |
Dec
(23) |
| 2021 |
Jan
(14) |
Feb
(53) |
Mar
(85) |
Apr
(15) |
May
(19) |
Jun
(3) |
Jul
(14) |
Aug
(1) |
Sep
(57) |
Oct
(73) |
Nov
(56) |
Dec
(22) |
| 2022 |
Jan
(3) |
Feb
(22) |
Mar
(6) |
Apr
(55) |
May
(46) |
Jun
(39) |
Jul
(15) |
Aug
(9) |
Sep
(11) |
Oct
(34) |
Nov
(20) |
Dec
(36) |
| 2023 |
Jan
(79) |
Feb
(41) |
Mar
(99) |
Apr
(169) |
May
(48) |
Jun
(16) |
Jul
(16) |
Aug
(57) |
Sep
(19) |
Oct
|
Nov
|
Dec
|
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
|
|
|
1
(33) |
2
(15) |
3
(20) |
4
(22) |
5
(13) |
|
6
(12) |
7
(32) |
8
(17) |
9
(31) |
10
(21) |
11
(7) |
12
(13) |
|
13
(13) |
14
(12) |
15
(10) |
16
(8) |
17
(7) |
18
(28) |
19
(5) |
|
20
(5) |
21
(7) |
22
(11) |
23
(7) |
24
(13) |
25
(7) |
26
(7) |
|
27
(7) |
28
(15) |
29
(30) |
30
(21) |
31
(6) |
|
|
|
From: <sv...@va...> - 2008-07-08 20:46:42
|
Author: sewardj
Date: 2008-07-08 21:46:48 +0100 (Tue, 08 Jul 2008)
New Revision: 8404
Log:
Fix floating point and vector support enough to make large apps (Qt
Designer) run on amd64-linux.
Modified:
branches/PTRCHECK/exp-ptrcheck/pc_main.c
Modified: branches/PTRCHECK/exp-ptrcheck/pc_main.c
===================================================================
--- branches/PTRCHECK/exp-ptrcheck/pc_main.c 2008-07-08 16:24:52 UTC (rev 8403)
+++ branches/PTRCHECK/exp-ptrcheck/pc_main.c 2008-07-08 20:46:48 UTC (rev 8404)
@@ -49,6 +49,10 @@
// is called first, then post_syscall.
// FIXME: deal with Ist_PutI, Iex_GetI kludges
+// PutI kludge: it is assumed that PutIs are to unshadowed areas, so
+// no instrumentation is generated -- can silently generate wrong
+// instrumentation
+// GetI kludge: is at least safe; will abort in unhandled cases
// XXX: recycle freed segments
@@ -962,7 +966,7 @@
return sizeof(LoadStoreExtra);
}
case ArithErr:
- return 0;
+ return sizeof(ArithExtra);
case SysParamErr:
return sizeof(SysParamExtra);
default:
@@ -1525,7 +1529,17 @@
if (o == GOF(XMM9) && isXmmF) goto none;
if (o == GOF(XMM10) && isXmmF) goto none;
if (o == GOF(XMM11) && isXmmF) goto none;
+ if (o == GOF(XMM12) && isXmmF) goto none;
+ if (o == GOF(XMM13) && isXmmF) goto none;
+ if (o == GOF(XMM14) && isXmmF) goto none;
+ if (o == GOF(XMM15) && isXmmF) goto none;
+ if (o == GOF(FPROUND) && is8) goto none;
+ if (o == GOF(EMWARN) && sz == 4) goto none;
+ if (o == GOF(FTOP) && sz == 4) goto none;
+ if (o == GOF(FPTAG) && sz == 8) goto none;
+ if (o == GOF(FC3210) && sz == 8) goto none;
+
VG_(printf)("get_IntRegInfo(amd64):failing on (%d,%d)\n", o, sz);
tl_assert(0);
# undef GOF
@@ -1891,8 +1905,12 @@
case __NR_sched_getscheduler:
case __NR_select:
case __NR_setrlimit:
+# if defined(__NR_shutdown)
+ case __NR_shutdown:
+# endif
case __NR_statfs:
case __NR_time:
+ case __NR_truncate:
case __NR_umask:
case __NR_unlink:
case __NR_writev:
@@ -2168,10 +2186,18 @@
// ------------------ Load handlers ------------------ //
/* On 32 bit targets, we will use:
- check_load1 check_load2 check_load4W
+ check_load1 check_load2 check_load4_P
On 64 bit targets, we will use:
- check_load1 check_load2 check_load4 check_load8W
+ check_load1 check_load2 check_load4 check_load8_P
+ check_load8 (64-bit FP reads)
check_load16 (for xmm reads)
+
+ A "_P" handler reads a pointer from memory, and so returns a value
+ to the generated code -- the pointer's shadow value. That implies
+ that check_load4_P is only to be called on a 32 bit host and
+ check_load8_P is only to be called on a 64 bit host. For all other
+ cases no shadow value is returned; we merely check that the pointer
+ (m) matches the block described by its shadow value (mptr_vseg).
*/
// This handles 128 bit loads on both 32 bit and 64 bit targets.
@@ -2182,11 +2208,20 @@
check_load_or_store(/*is_write*/False, m, 16, mptr_vseg);
}
+// This handles 64 bit FP-or-otherwise-nonpointer loads on both
+// 32 bit and 64 bit targets.
+static VG_REGPARM(2)
+void check_load8(Addr m, Seg mptr_vseg)
+{
+checkSeg(mptr_vseg);
+ check_load_or_store(/*is_write*/False, m, 8, mptr_vseg);
+}
+
// This handles 64 bit loads on 64 bit targets. It must
// not be called on 32 bit targets.
// return m.vseg
static VG_REGPARM(2)
-Seg check_load8W(Addr m, Seg mptr_vseg)
+Seg check_load8_P(Addr m, Seg mptr_vseg)
{
Seg vseg;
tl_assert(sizeof(UWord) == 8); /* DO NOT REMOVE */
@@ -2204,7 +2239,7 @@
// not be called on 64 bit targets.
// return m.vseg
static VG_REGPARM(2)
-Seg check_load4W(Addr m, Seg mptr_vseg)
+Seg check_load4_P(Addr m, Seg mptr_vseg)
{
Seg vseg;
tl_assert(sizeof(UWord) == 4); /* DO NOT REMOVE */
@@ -2250,11 +2285,20 @@
check_store1 check_store2 check_store4_P
On 64 bit targets, we will use:
check_store1 check_store2 check_store4 check_store8_P
-*/
+ A "_P" handler writes a pointer to memory, and so has an extra
+ argument -- the pointer's shadow value. That implies that
+ check_store4_P is only to be called on a 32 bit host and
+ check_store8_P is only to be called on a 64 bit host. For all
+ other cases, and for the misaligned _P cases, the strategy is to
+ let the store go through, and then snoop around with
+ nonptr_or_unknown to fix up the shadow values of any affected
+ words. */
+
/* Apply nonptr_or_unknown to all the words intersecting
[a, a+len). */
-static void pessimise_words_intersecting ( Addr a, SizeT len )
+static VG_REGPARM(2)
+void nonptr_or_unknown_range ( Addr a, SizeT len )
{
const SizeT wszB = sizeof(UWord);
Addr wfirst = VG_ROUNDDN(a, wszB);
@@ -2266,6 +2310,37 @@
}
}
+// This handles 128 bit stores on 64 bit targets. The
+// store data is passed in 2 pieces, the most significant
+// bits first.
+static VG_REGPARM(3)
+void check_store16_msb8B_lsb8B(Addr m, Seg mptr_vseg,
+ UWord msb8B, UWord lsb8B)
+{
+ tl_assert(sizeof(UWord) == 8); /* DO NOT REMOVE */
+ // Actually *do* the STORE here
+ if (host_is_little_endian()) {
+ // FIXME: aren't we really concerned whether the guest
+ // is little endian, not whether the host is?
+ *(UWord*)(m + 0) = lsb8B;
+ *(UWord*)(m + 8) = msb8B;
+ } else {
+ tl_assert(0);
+ }
+ nonptr_or_unknown_range(m, 16);
+}
+
+// This handles 64 bit non pointer stores on 64 bit targets.
+// It must not be called on 32 bit targets.
+static VG_REGPARM(3)
+void check_store8_all8B(Addr m, Seg mptr_vseg, UWord all8B)
+{
+ tl_assert(sizeof(UWord) == 8); /* DO NOT REMOVE */
+ // Actually *do* the STORE here
+ *(UWord*)m = all8B;
+ nonptr_or_unknown_range(m, 8);
+}
+
// This handles 64 bit stores on 64 bit targets. It must
// not be called on 32 bit targets.
static VG_REGPARM(3)
@@ -2281,7 +2356,7 @@
set_mem_vseg( m, t_vseg );
} else {
// straddling two words
- pessimise_words_intersecting(m, 8);
+ nonptr_or_unknown_range(m, 8);
}
}
@@ -2300,7 +2375,7 @@
set_mem_vseg( m, t_vseg );
} else {
// straddling two words
- pessimise_words_intersecting(m, 4);
+ nonptr_or_unknown_range(m, 4);
}
}
@@ -2314,7 +2389,7 @@
check_load_or_store(/*is_write*/True, m, 4, mptr_vseg);
// Actually *do* the STORE here (Nb: cast must be to 4-byte type!)
*(UInt*)m = t;
- pessimise_words_intersecting(m, 4);
+ nonptr_or_unknown_range(m, 4);
}
// Used for both 32 bit and 64 bit targets.
@@ -2325,7 +2400,7 @@
check_load_or_store(/*is_write*/True, m, 2, mptr_vseg);
// Actually *do* the STORE here (Nb: cast must be to 2-byte type!)
*(UShort*)m = t;
- pessimise_words_intersecting(m, 2);
+ nonptr_or_unknown_range(m, 2);
}
// Used for both 32 bit and 64 bit targets.
@@ -2336,7 +2411,7 @@
check_load_or_store(/*is_write*/True, m, 1, mptr_vseg);
// Actually *do* the STORE here (Nb: cast must be to 1-byte type!)
*(UChar*)m = t;
- pessimise_words_intersecting(m, 1);
+ nonptr_or_unknown_range(m, 1);
}
//zz
@@ -3349,11 +3424,20 @@
}
}
+static
+void gen_call_nonptr_or_unknown_range ( PCEnv* pce,
+ IRAtom* addr, IRAtom* len )
+{
+ gen_dirty_v_WW( pce,
+ &nonptr_or_unknown_range,
+ "nonptr_or_unknown_range",
+ addr, len );
+}
/* iii describes zero or more non-exact integer register updates. For
each one, generate IR to get the containing register, apply
nonptr_or_unknown to it, and write it back again. */
-static void do_nonptr_or_unknown_for_III( PCEnv* pce, IntRegInfo* iii )
+static void gen_nonptr_or_unknown_for_III( PCEnv* pce, IntRegInfo* iii )
{
Int i;
tl_assert(iii && iii->n_offsets >= 0);
@@ -3426,7 +3510,6 @@
+ pce->guest_state_sizeB,
mkexpr(a2) ));
} else {
- tl_assert(0); /* awaiting test case */
/* when == 0: case (3): no instrumentation needed */
/* when > 0: case (2) .. complex case. Fish out the
stored value for the whole register, heave it
@@ -3434,12 +3517,16 @@
shadow value. */
tl_assert(iii.n_offsets >= 0
&& iii.n_offsets <= N_INTREGINFO_OFFSETS);
- do_nonptr_or_unknown_for_III( pce, &iii );
+ gen_nonptr_or_unknown_for_III( pce, &iii );
}
} /* for (i = 0; i < di->nFxState; i++) */
- /* punt on memory outputs */
- if (di->mFx != Ifx_None)
- goto unhandled;
+ /* finally, deal with memory outputs */
+ if (di->mFx != Ifx_None) {
+ tl_assert(di->mAddr && isIRAtom(di->mAddr));
+ tl_assert(di->mSize > 0);
+ gen_call_nonptr_or_unknown_range( pce, di->mAddr,
+ mkIRExpr_HWord(di->mSize));
+ }
break;
}
@@ -3456,6 +3543,10 @@
case Ist_PutI:
stmt( 'C', pce, st );
+ if (st->Ist.PutI.descr->elemTy == pce->gWordTy)
+ goto unhandled;
+ /* If the element type isn't pointer-capable, we assume
+ there's nothing to be done. */
break;
case Ist_Put: {
@@ -3489,7 +3580,7 @@
value. */
tl_assert(iii.n_offsets >= 0
&& iii.n_offsets <= N_INTREGINFO_OFFSETS);
- do_nonptr_or_unknown_for_III( pce, &iii );
+ gen_nonptr_or_unknown_for_III( pce, &iii );
}
break;
} /* case Ist_Put */
@@ -3511,9 +3602,9 @@
IRType d_ty = typeOfIRExpr(pce->bb->tyenv, data);
HChar* h_nm = NULL;
void* h_fn = NULL;
- IRExpr* addrv = NULL;
+ IRExpr* addrv = schemeEw_Atom( pce, addr );
if (pce->gWordTy == Ity_I32) {
- /* 32 bit host/guest (cough, cough) */
+ /* ------ 32 bit host/guest (cough, cough) ------ */
switch (d_ty) {
case Ity_I32: h_fn = &check_store4_P;
h_nm = "check_store4_P"; break;
@@ -3523,7 +3614,6 @@
h_nm = "check_store1"; break;
default: tl_assert(0);
}
- addrv = schemeEw_Atom( pce, addr );
if (d_ty == Ity_I32) {
IRExpr* datav = schemeEw_Atom( pce, data );
gen_dirty_v_WWWW( pce, h_fn, h_nm, addr, addrv,
@@ -3533,27 +3623,61 @@
uwiden_to_host_word( pce, data ));
}
} else {
- /* 64 bit host/guest (cough, cough) */
+ /* ------ 64 bit host/guest (cough, cough) ------ */
switch (d_ty) {
- case Ity_I64: h_fn = &check_store8_P;
- h_nm = "check_store8_P"; break;
- case Ity_I32: h_fn = &check_store4;
- h_nm = "check_store4"; break;
- case Ity_I16: h_fn = &check_store2;
- h_nm = "check_store2"; break;
- case Ity_I8: h_fn = &check_store1;
- h_nm = "check_store1"; break;
- default: ppIRType(d_ty); tl_assert(0);
+ /* Integer word case */
+ case Ity_I64: {
+ IRExpr* datav = schemeEw_Atom( pce, data );
+ gen_dirty_v_WWWW( pce,
+ &check_store8_P, "check_store8_P",
+ addr, addrv, data, datav );
+ break;
+ }
+ /* Integer subword cases */
+ case Ity_I32:
+ gen_dirty_v_WWW( pce,
+ &check_store4, "check_store4",
+ addr, addrv,
+ uwiden_to_host_word( pce, data ));
+ break;
+ case Ity_I16:
+ gen_dirty_v_WWW( pce,
+ &check_store2, "check_store2",
+ addr, addrv,
+ uwiden_to_host_word( pce, data ));
+ break;
+ case Ity_I8:
+ gen_dirty_v_WWW( pce,
+ &check_store1, "check_store1",
+ addr, addrv,
+ uwiden_to_host_word( pce, data ));
+ break;
+ /* 128-bit vector. Pass store data in 2 64-bit pieces. */
+ case Ity_V128: {
+ IRAtom* dHi64 = assignNew( 'I', pce, Ity_I64,
+ unop(Iop_V128HIto64, data) );
+ IRAtom* dLo64 = assignNew( 'I', pce, Ity_I64,
+ unop(Iop_V128to64, data) );
+ gen_dirty_v_WWWW( pce,
+ &check_store16_msb8B_lsb8B,
+ "check_store16_msb8B_lsb8B",
+ addr, addrv, dHi64, dLo64 );
+ break;
+ }
+ /* 64-bit float. */
+ case Ity_F64: {
+ IRAtom* dI = assignNew( 'I', pce, Ity_I64,
+ unop(Iop_ReinterpF64asI64,
+ data ) );
+ gen_dirty_v_WWW( pce,
+ &check_store8_all8B,
+ "check_store8_all8B",
+ addr, addrv, dI );
+ break;
+ }
+ default:
+ ppIRType(d_ty); tl_assert(0);
}
- addrv = schemeEw_Atom( pce, addr );
- if (d_ty == Ity_I64) {
- IRExpr* datav = schemeEw_Atom( pce, data );
- gen_dirty_v_WWWW( pce, h_fn, h_nm, addr, addrv,
- data, datav );
- } else {
- gen_dirty_v_WWW( pce, h_fn, h_nm, addr, addrv,
- uwiden_to_host_word( pce, data ));
- }
}
/* And don't copy the original, since the helper does the
store. Ick. */
@@ -3618,8 +3742,8 @@
if (pce->gWordTy == Ity_I32) {
/* 32 bit host/guest (cough, cough) */
switch (e_ty) {
- case Ity_I32: h_fn = &check_load4W;
- h_nm = "check_load4W"; break;
+ case Ity_I32: h_fn = &check_load4_P;
+ h_nm = "check_load4_P"; break;
case Ity_I16: h_fn = &check_load2;
h_nm = "check_load2"; break;
case Ity_I8: h_fn = &check_load1;
@@ -3637,19 +3761,22 @@
} else {
/* 64 bit host/guest (cough, cough) */
switch (e_ty) {
+ /* Ity_I64: helper returns shadow value. */
+ case Ity_I64: h_fn = &check_load8_P;
+ h_nm = "check_load8_P"; break;
+ /* all others: helper does not return a shadow
+ value. */
case Ity_V128: h_fn = &check_load16;
h_nm = "check_load16"; break;
- case Ity_F64: /* a hack: check_load8W's
- result is ignored */
- case Ity_I64: h_fn = &check_load8W;
- h_nm = "check_load8W"; break;
+ case Ity_F64: h_fn = &check_load8;
+ h_nm = "check_load8"; break;
case Ity_F32:
- case Ity_I32: h_fn = &check_load4;
- h_nm = "check_load4"; break;
- case Ity_I16: h_fn = &check_load2;
- h_nm = "check_load2"; break;
- case Ity_I8: h_fn = &check_load1;
- h_nm = "check_load1"; break;
+ case Ity_I32: h_fn = &check_load4;
+ h_nm = "check_load4"; break;
+ case Ity_I16: h_fn = &check_load2;
+ h_nm = "check_load2"; break;
+ case Ity_I8: h_fn = &check_load1;
+ h_nm = "check_load1"; break;
default: ppIRType(e_ty); tl_assert(0);
}
addrv = schemeEw_Atom( pce, addr );
@@ -3668,6 +3795,7 @@
case Iex_GetI: {
stmt( 'C', pce, st );
+ tl_assert(e_ty == e->Iex.GetI.descr->elemTy);
if (isWord) goto unhandled;
break;
}
|
|
From: <sv...@va...> - 2008-07-08 16:24:48
|
Author: bart
Date: 2008-07-08 17:24:52 +0100 (Tue, 08 Jul 2008)
New Revision: 8403
Log:
Removed some code that is no longer needed.
Modified:
branches/DRDDEV/drd/drd_thread.c
Modified: branches/DRDDEV/drd/drd_thread.c
===================================================================
--- branches/DRDDEV/drd/drd_thread.c 2008-07-08 16:00:57 UTC (rev 8402)
+++ branches/DRDDEV/drd/drd_thread.c 2008-07-08 16:24:52 UTC (rev 8403)
@@ -33,7 +33,6 @@
#include "pub_tool_libcassert.h" // tl_assert()
#include "pub_tool_libcbase.h" // VG_(strlen)()
#include "pub_tool_libcprint.h" // VG_(printf)()
-#include "pub_tool_libcproc.h" // VG_(getenv)()
#include "pub_tool_machine.h"
#include "pub_tool_mallocfree.h" // VG_(malloc)(), VG_(free)()
#include "pub_tool_options.h" // VG_(clo_backtrace_size)
@@ -46,7 +45,6 @@
static void thread_append_segment(const DrdThreadId tid,
Segment* const sg);
static void thread_discard_segment(const DrdThreadId tid, Segment* const sg);
-static Bool thread_conflict_set_up_to_date(const DrdThreadId tid);
static void thread_compute_conflict_set(struct bitmap** conflict_set,
const DrdThreadId tid);
@@ -687,10 +685,6 @@
thread_compute_conflict_set(&s_conflict_set, s_drd_running_tid);
s_conflict_set_new_segment_count++;
}
- else if (tid == s_drd_running_tid)
- {
- tl_assert(thread_conflict_set_up_to_date(s_drd_running_tid));
- }
thread_discard_ordered_segments();
@@ -901,29 +895,6 @@
}
}
-/** Verify whether the conflict set for thread tid is up to date. Only perform
- * the check if the environment variable DRD_VERIFY_CONFLICT_SET has been set.
- */
-static Bool thread_conflict_set_up_to_date(const DrdThreadId tid)
-{
- static int do_verify_conflict_set = -1;
- Bool result;
- struct bitmap* computed_conflict_set = 0;
-
- if (do_verify_conflict_set < 0)
- {
- //VG_(message)(Vg_DebugMsg, "%s", VG_(getenv)("DRD_VERIFY_CONFLICT_SET"));
- do_verify_conflict_set = VG_(getenv)("DRD_VERIFY_CONFLICT_SET") != 0;
- }
- if (do_verify_conflict_set == 0)
- return True;
-
- thread_compute_conflict_set(&computed_conflict_set, tid);
- result = bm_equal(s_conflict_set, computed_conflict_set);
- bm_delete(computed_conflict_set);
- return result;
-}
-
/** Compute a bitmap that represents the union of all memory accesses of all
* segments that are unordered to the current segment of the thread tid.
*/
|
Author: bart Date: 2008-07-08 17:00:57 +0100 (Tue, 08 Jul 2008) New Revision: 8402 Log: Merged trunk r7782:8401 to DRDDEV branch. Added: branches/DRDDEV/drd/ branches/DRDDEV/glibc-2.X.supp.in branches/DRDDEV/memcheck/mc_errors.c branches/DRDDEV/memcheck/mc_machine.c branches/DRDDEV/memcheck/tests/file_locking.c branches/DRDDEV/memcheck/tests/file_locking.stderr.exp branches/DRDDEV/memcheck/tests/file_locking.vgtest branches/DRDDEV/memcheck/tests/filter_malloc_free_fill branches/DRDDEV/memcheck/tests/linux-syscalls-2007.c branches/DRDDEV/memcheck/tests/linux-syscalls-2007.stderr.exp branches/DRDDEV/memcheck/tests/linux-syscalls-2007.vgtest branches/DRDDEV/memcheck/tests/linux-syslog-syscall.c branches/DRDDEV/memcheck/tests/linux-syslog-syscall.stderr.exp branches/DRDDEV/memcheck/tests/linux-syslog-syscall.vgtest branches/DRDDEV/memcheck/tests/linux-timerfd-syscall.c branches/DRDDEV/memcheck/tests/linux-timerfd-syscall.stderr.exp branches/DRDDEV/memcheck/tests/linux-timerfd-syscall.stdout.exp branches/DRDDEV/memcheck/tests/linux-timerfd-syscall.vgtest branches/DRDDEV/memcheck/tests/mallinfo.c branches/DRDDEV/memcheck/tests/mallinfo.stderr.exp branches/DRDDEV/memcheck/tests/mallinfo.vgtest branches/DRDDEV/memcheck/tests/malloc_free_fill.stderr.exp branches/DRDDEV/memcheck/tests/origin1-yes.c branches/DRDDEV/memcheck/tests/origin1-yes.stderr.exp branches/DRDDEV/memcheck/tests/origin1-yes.stdout.exp branches/DRDDEV/memcheck/tests/origin1-yes.vgtest branches/DRDDEV/memcheck/tests/origin2-not-quite.c branches/DRDDEV/memcheck/tests/origin2-not-quite.stderr.exp branches/DRDDEV/memcheck/tests/origin2-not-quite.stdout.exp branches/DRDDEV/memcheck/tests/origin2-not-quite.vgtest branches/DRDDEV/memcheck/tests/origin3-no.c branches/DRDDEV/memcheck/tests/origin3-no.stderr.exp branches/DRDDEV/memcheck/tests/origin3-no.stdout.exp branches/DRDDEV/memcheck/tests/origin3-no.vgtest branches/DRDDEV/memcheck/tests/origin4-many.c branches/DRDDEV/memcheck/tests/origin4-many.stderr.exp-glibc25-amd64 branches/DRDDEV/memcheck/tests/origin4-many.stderr.exp-glibc25-x86 branches/DRDDEV/memcheck/tests/origin4-many.stdout.exp branches/DRDDEV/memcheck/tests/origin4-many.vgtest branches/DRDDEV/memcheck/tests/origin5-bz2.c branches/DRDDEV/memcheck/tests/origin5-bz2.stderr.exp-glibc25-amd64 branches/DRDDEV/memcheck/tests/origin5-bz2.stderr.exp-glibc25-x86 branches/DRDDEV/memcheck/tests/origin5-bz2.stderr.exp-glibc27-ppc64 branches/DRDDEV/memcheck/tests/origin5-bz2.stdout.exp branches/DRDDEV/memcheck/tests/origin5-bz2.vgtest branches/DRDDEV/memcheck/tests/origin6-fp.c branches/DRDDEV/memcheck/tests/origin6-fp.stderr.exp-glibc25-amd64 branches/DRDDEV/memcheck/tests/origin6-fp.stderr.exp-glibc27-ppc64 branches/DRDDEV/memcheck/tests/origin6-fp.stdout.exp branches/DRDDEV/memcheck/tests/origin6-fp.vgtest branches/DRDDEV/memcheck/tests/x86/fxsave.c branches/DRDDEV/memcheck/tests/x86/fxsave.stderr.exp branches/DRDDEV/memcheck/tests/x86/fxsave.stdout.exp branches/DRDDEV/memcheck/tests/x86/fxsave.vgtest branches/DRDDEV/memcheck/tests/x86/pushfw_x86.c branches/DRDDEV/memcheck/tests/x86/pushfw_x86.stderr.exp branches/DRDDEV/memcheck/tests/x86/pushfw_x86.stdout.exp branches/DRDDEV/memcheck/tests/x86/pushfw_x86.vgtest branches/DRDDEV/memcheck/tests/zeropage.stdout.exp-glibc27 branches/DRDDEV/none/tests/fdleak.h branches/DRDDEV/none/tests/mremap.stderr.exp-glibc27 branches/DRDDEV/none/tests/shell.stderr.exp-dash branches/DRDDEV/none/tests/shell_zerolength.stderr.exp-dash branches/DRDDEV/none/tests/x86/bug152818-x86.c branches/DRDDEV/none/tests/x86/bug152818-x86.stderr.exp branches/DRDDEV/none/tests/x86/bug152818-x86.stdout.exp branches/DRDDEV/none/tests/x86/bug152818-x86.vgtest Removed: branches/DRDDEV/exp-drd/ branches/DRDDEV/memcheck/tests/malloc_free_fill.stderr.exp-glibc25-amd64 branches/DRDDEV/memcheck/tests/malloc_free_fill.stderr.exp-glibc25-x86 Modified: branches/DRDDEV/ branches/DRDDEV/Makefile.am branches/DRDDEV/Makefile.flags.am branches/DRDDEV/NEWS branches/DRDDEV/README_MISSING_SYSCALL_OR_IOCTL branches/DRDDEV/README_PACKAGERS branches/DRDDEV/auxprogs/libmpiwrap.c branches/DRDDEV/cachegrind/cg_main.c branches/DRDDEV/cachegrind/docs/cg-manual.xml branches/DRDDEV/callgrind/bb.c branches/DRDDEV/callgrind/bbcc.c branches/DRDDEV/callgrind/callgrind.h branches/DRDDEV/callgrind/callstack.c branches/DRDDEV/callgrind/context.c branches/DRDDEV/callgrind/debug.c branches/DRDDEV/callgrind/dump.c branches/DRDDEV/callgrind/fn.c branches/DRDDEV/callgrind/main.c branches/DRDDEV/callgrind/sim.c branches/DRDDEV/configure.in branches/DRDDEV/coregrind/m_aspacemgr/aspacemgr-aix5.c branches/DRDDEV/coregrind/m_debuginfo/d3basics.c branches/DRDDEV/coregrind/m_debuginfo/debuginfo.c branches/DRDDEV/coregrind/m_debuginfo/priv_storage.h branches/DRDDEV/coregrind/m_debuginfo/readdwarf.c branches/DRDDEV/coregrind/m_debuginfo/readdwarf3.c branches/DRDDEV/coregrind/m_debuginfo/readelf.c branches/DRDDEV/coregrind/m_debuginfo/storage.c branches/DRDDEV/coregrind/m_debuginfo/tytypes.c branches/DRDDEV/coregrind/m_debuglog.c branches/DRDDEV/coregrind/m_errormgr.c branches/DRDDEV/coregrind/m_execontext.c branches/DRDDEV/coregrind/m_initimg/initimg-aix5.c branches/DRDDEV/coregrind/m_initimg/initimg-linux.c branches/DRDDEV/coregrind/m_libcprint.c branches/DRDDEV/coregrind/m_libcproc.c branches/DRDDEV/coregrind/m_machine.c branches/DRDDEV/coregrind/m_main.c branches/DRDDEV/coregrind/m_mallocfree.c branches/DRDDEV/coregrind/m_redir.c branches/DRDDEV/coregrind/m_scheduler/scheduler.c branches/DRDDEV/coregrind/m_sigframe/sigframe-amd64-linux.c branches/DRDDEV/coregrind/m_sigframe/sigframe-ppc32-aix5.c branches/DRDDEV/coregrind/m_sigframe/sigframe-ppc32-linux.c branches/DRDDEV/coregrind/m_sigframe/sigframe-ppc64-aix5.c branches/DRDDEV/coregrind/m_sigframe/sigframe-ppc64-linux.c branches/DRDDEV/coregrind/m_sigframe/sigframe-x86-linux.c branches/DRDDEV/coregrind/m_signals.c branches/DRDDEV/coregrind/m_stacks.c branches/DRDDEV/coregrind/m_stacktrace.c branches/DRDDEV/coregrind/m_syswrap/priv_syswrap-generic.h branches/DRDDEV/coregrind/m_syswrap/priv_syswrap-linux.h branches/DRDDEV/coregrind/m_syswrap/syswrap-amd64-linux.c branches/DRDDEV/coregrind/m_syswrap/syswrap-generic.c branches/DRDDEV/coregrind/m_syswrap/syswrap-linux.c branches/DRDDEV/coregrind/m_syswrap/syswrap-main.c branches/DRDDEV/coregrind/m_syswrap/syswrap-ppc32-linux.c branches/DRDDEV/coregrind/m_syswrap/syswrap-ppc64-linux.c branches/DRDDEV/coregrind/m_syswrap/syswrap-x86-linux.c branches/DRDDEV/coregrind/m_tooliface.c branches/DRDDEV/coregrind/m_translate.c branches/DRDDEV/coregrind/m_transtab.c branches/DRDDEV/coregrind/pub_core_aspacemgr.h branches/DRDDEV/coregrind/pub_core_execontext.h branches/DRDDEV/coregrind/pub_core_options.h branches/DRDDEV/coregrind/pub_core_stacks.h branches/DRDDEV/coregrind/pub_core_threadstate.h branches/DRDDEV/coregrind/pub_core_tooliface.h branches/DRDDEV/docs/internals/3_3_BUGSTATUS.txt branches/DRDDEV/docs/internals/xml-output.txt branches/DRDDEV/docs/xml/manual-core.xml branches/DRDDEV/docs/xml/manual.xml branches/DRDDEV/drd/docs/ branches/DRDDEV/drd/scripts/ branches/DRDDEV/drd/tests/ branches/DRDDEV/exp-omega/o_main.c branches/DRDDEV/glibc-2.34567-NPTL-helgrind.supp branches/DRDDEV/glibc-2.X-drd.supp branches/DRDDEV/helgrind/docs/hg-manual.xml branches/DRDDEV/helgrind/hg_main.c branches/DRDDEV/helgrind/hg_wordset.c branches/DRDDEV/helgrind/tests/tc11_XCHG.c branches/DRDDEV/helgrind/tests/tc17_sembar.c branches/DRDDEV/include/pub_tool_debuginfo.h branches/DRDDEV/include/pub_tool_execontext.h branches/DRDDEV/include/pub_tool_libcprint.h branches/DRDDEV/include/pub_tool_machine.h branches/DRDDEV/include/pub_tool_replacemalloc.h branches/DRDDEV/include/pub_tool_tooliface.h branches/DRDDEV/include/vki/vki-linux.h branches/DRDDEV/include/vki/vki-scnums-amd64-linux.h branches/DRDDEV/include/vki/vki-scnums-ppc32-linux.h branches/DRDDEV/include/vki/vki-scnums-ppc64-linux.h branches/DRDDEV/include/vki/vki-scnums-x86-linux.h branches/DRDDEV/lackey/lk_main.c branches/DRDDEV/massif/docs/ms-manual.xml branches/DRDDEV/massif/ms_main.c branches/DRDDEV/memcheck/Makefile.am branches/DRDDEV/memcheck/docs/mc-manual.xml branches/DRDDEV/memcheck/mc_include.h branches/DRDDEV/memcheck/mc_leakcheck.c branches/DRDDEV/memcheck/mc_main.c branches/DRDDEV/memcheck/mc_malloc_wrappers.c branches/DRDDEV/memcheck/mc_translate.c branches/DRDDEV/memcheck/memcheck.h branches/DRDDEV/memcheck/tests/ branches/DRDDEV/memcheck/tests/Makefile.am branches/DRDDEV/memcheck/tests/addressable.stderr.exp branches/DRDDEV/memcheck/tests/addressable.stderr.exp2 branches/DRDDEV/memcheck/tests/addressable.vgtest branches/DRDDEV/memcheck/tests/amd64/xor-undef-amd64.stderr.exp branches/DRDDEV/memcheck/tests/badjump.stderr.exp branches/DRDDEV/memcheck/tests/badjump.stderr.exp2 branches/DRDDEV/memcheck/tests/badjump.vgtest branches/DRDDEV/memcheck/tests/describe-block.stderr.exp branches/DRDDEV/memcheck/tests/describe-block.vgtest branches/DRDDEV/memcheck/tests/erringfds.stderr.exp branches/DRDDEV/memcheck/tests/erringfds.vgtest branches/DRDDEV/memcheck/tests/filter_allocs branches/DRDDEV/memcheck/tests/leak-pool-0.stderr.exp branches/DRDDEV/memcheck/tests/leak-pool-0.stderr.exp64 branches/DRDDEV/memcheck/tests/leak-pool-0.vgtest branches/DRDDEV/memcheck/tests/leak-pool-1.stderr.exp branches/DRDDEV/memcheck/tests/leak-pool-1.stderr.exp64 branches/DRDDEV/memcheck/tests/leak-pool-1.vgtest branches/DRDDEV/memcheck/tests/leak-pool-2.stderr.exp branches/DRDDEV/memcheck/tests/leak-pool-2.stderr.exp64 branches/DRDDEV/memcheck/tests/leak-pool-2.vgtest branches/DRDDEV/memcheck/tests/leak-pool-3.stderr.exp branches/DRDDEV/memcheck/tests/leak-pool-3.stderr.exp64 branches/DRDDEV/memcheck/tests/leak-pool-3.vgtest branches/DRDDEV/memcheck/tests/leak-pool-4.stderr.exp branches/DRDDEV/memcheck/tests/leak-pool-4.stderr.exp64 branches/DRDDEV/memcheck/tests/leak-pool-4.vgtest branches/DRDDEV/memcheck/tests/leak-pool-5.stderr.exp branches/DRDDEV/memcheck/tests/leak-pool-5.stderr.exp64 branches/DRDDEV/memcheck/tests/leak-pool-5.vgtest branches/DRDDEV/memcheck/tests/long_namespace_xml.stderr.exp branches/DRDDEV/memcheck/tests/lsframe1.stderr.exp branches/DRDDEV/memcheck/tests/lsframe1.vgtest branches/DRDDEV/memcheck/tests/lsframe2.stderr.exp branches/DRDDEV/memcheck/tests/lsframe2.vgtest branches/DRDDEV/memcheck/tests/malloc_free_fill.vgtest branches/DRDDEV/memcheck/tests/match-overrun.stderr.exp branches/DRDDEV/memcheck/tests/match-overrun.vgtest branches/DRDDEV/memcheck/tests/noisy_child.stderr.exp branches/DRDDEV/memcheck/tests/noisy_child.vgtest branches/DRDDEV/memcheck/tests/oset_test.c branches/DRDDEV/memcheck/tests/partial_load_dflt.stderr.exp branches/DRDDEV/memcheck/tests/partial_load_dflt.stderr.exp64 branches/DRDDEV/memcheck/tests/partial_load_dflt.vgtest branches/DRDDEV/memcheck/tests/partial_load_ok.stderr.exp branches/DRDDEV/memcheck/tests/partial_load_ok.stderr.exp64 branches/DRDDEV/memcheck/tests/partial_load_ok.vgtest branches/DRDDEV/memcheck/tests/partiallydefinedeq.stderr.exp branches/DRDDEV/memcheck/tests/partiallydefinedeq.stderr.exp2 branches/DRDDEV/memcheck/tests/partiallydefinedeq.vgtest branches/DRDDEV/memcheck/tests/sigkill.c branches/DRDDEV/memcheck/tests/sigkill.stderr.exp branches/DRDDEV/memcheck/tests/sigkill.stderr.exp2 branches/DRDDEV/memcheck/tests/sigkill.stderr.exp3 branches/DRDDEV/memcheck/tests/sigkill.vgtest branches/DRDDEV/memcheck/tests/varinfo1.stderr.exp branches/DRDDEV/memcheck/tests/varinfo2.stderr.exp branches/DRDDEV/memcheck/tests/varinfo3.stderr.exp branches/DRDDEV/memcheck/tests/varinfo4.stderr.exp branches/DRDDEV/memcheck/tests/varinfo5.stderr.exp branches/DRDDEV/memcheck/tests/varinfo6.stderr.exp-glibc25-amd64 branches/DRDDEV/memcheck/tests/varinfo6.stderr.exp-glibc25-x86 branches/DRDDEV/memcheck/tests/x86/Makefile.am branches/DRDDEV/memcheck/tests/x86/xor-undef-x86.stderr.exp branches/DRDDEV/memcheck/tests/xml1.stderr.exp branches/DRDDEV/memcheck/tests/xml1.stderr.exp2 branches/DRDDEV/memcheck/tests/xml1.stderr.exp3 branches/DRDDEV/memcheck/tests/xml1.stderr.exp64 branches/DRDDEV/memcheck/tests/xml1.stderr.exp64_2 branches/DRDDEV/none/tests/Makefile.am branches/DRDDEV/none/tests/amd64/ branches/DRDDEV/none/tests/fdleak_cmsg.c branches/DRDDEV/none/tests/fdleak_creat.c branches/DRDDEV/none/tests/fdleak_dup.c branches/DRDDEV/none/tests/fdleak_dup2.c branches/DRDDEV/none/tests/fdleak_fcntl.c branches/DRDDEV/none/tests/fdleak_ipv4.c branches/DRDDEV/none/tests/fdleak_open.c branches/DRDDEV/none/tests/fdleak_pipe.c branches/DRDDEV/none/tests/fdleak_socketpair.c branches/DRDDEV/none/tests/ppc32/Makefile.am branches/DRDDEV/none/tests/ppc32/jm-insns.c branches/DRDDEV/none/tests/ppc64/Makefile.am branches/DRDDEV/none/tests/rlimit_nofile.c branches/DRDDEV/none/tests/x86/Makefile.am branches/DRDDEV/vg-in-place branches/DRDDEV/xfree-4.supp [... diff too large to include ...] |
|
From: <sv...@va...> - 2008-07-08 15:57:42
|
Author: bart
Date: 2008-07-08 16:57:49 +0100 (Tue, 08 Jul 2008)
New Revision: 8401
Log:
Removed some changes such that DRDDEV branch is now identical to trunk r7782.
Modified:
branches/DRDDEV/coregrind/m_replacemalloc/vg_replace_malloc.c
branches/DRDDEV/exp-drd/Testing.txt
branches/DRDDEV/memcheck/tests/oset_test.c
Modified: branches/DRDDEV/coregrind/m_replacemalloc/vg_replace_malloc.c
===================================================================
--- branches/DRDDEV/coregrind/m_replacemalloc/vg_replace_malloc.c 2008-07-08 11:41:29 UTC (rev 8400)
+++ branches/DRDDEV/coregrind/m_replacemalloc/vg_replace_malloc.c 2008-07-08 15:57:49 UTC (rev 8401)
@@ -68,10 +68,6 @@
# error "Unknown platform"
#endif
-/* --- Soname of libjemalloc. --- */
-
-#define m_jemalloc_soname libjemallocZdsoZa /* libjemalloc.so* */
-
/* --- Soname of the GNU C++ library. --- */
#define m_libstdcxx_soname libstdcZpZpZa // libstdc++*
@@ -207,7 +203,6 @@
// (from_so, from_fn, v's replacement)
// malloc
-ALLOC_or_NULL(m_jemalloc_soname, malloc, malloc);
ALLOC_or_NULL(m_libstdcxx_soname, malloc, malloc);
ALLOC_or_NULL(m_libc_soname, malloc, malloc);
#if defined(VGP_ppc32_aix5) || defined(VGP_ppc64_aix5)
@@ -324,7 +319,6 @@
}
// free
-FREE(m_jemalloc_soname, free, free );
FREE(m_libstdcxx_soname, free, free );
FREE(m_libc_soname, free, free );
#if defined(VGP_ppc32_aix5) || defined(VGP_ppc64_aix5)
@@ -400,7 +394,6 @@
return v; \
}
-CALLOC(m_jemalloc_soname, calloc);
CALLOC(m_libc_soname, calloc);
#if defined(VGP_ppc32_aix5) || defined(VGP_ppc64_aix5)
CALLOC(m_libc_soname, calloc_common);
@@ -433,7 +426,6 @@
return v; \
}
-REALLOC(m_jemalloc_soname, realloc);
REALLOC(m_libc_soname, realloc);
#if defined(VGP_ppc32_aix5) || defined(VGP_ppc64_aix5)
REALLOC(m_libc_soname, realloc_common);
@@ -465,7 +457,6 @@
return v; \
}
-MEMALIGN(m_jemalloc_soname, memalign);
MEMALIGN(m_libc_soname, memalign);
@@ -492,7 +483,6 @@
((SizeT)pszB, size); \
}
-VALLOC(m_jemalloc_soname, valloc);
VALLOC(m_libc_soname, valloc);
@@ -576,7 +566,6 @@
return VKI_ENOMEM; \
}
-POSIX_MEMALIGN(m_jemalloc_soname, posix_memalign);
POSIX_MEMALIGN(m_libc_soname, posix_memalign);
#if defined(VGP_ppc32_aix5) || defined(VGP_ppc64_aix5)
/* 27 Nov 07: it appears that xlc links into executables, a
@@ -607,7 +596,6 @@
return pszB; \
}
-MALLOC_USABLE_SIZE(m_jemalloc_soname, malloc_usable_size);
MALLOC_USABLE_SIZE(m_libc_soname, malloc_usable_size);
Modified: branches/DRDDEV/exp-drd/Testing.txt
===================================================================
--- branches/DRDDEV/exp-drd/Testing.txt 2008-07-08 11:41:29 UTC (rev 8400)
+++ branches/DRDDEV/exp-drd/Testing.txt 2008-07-08 15:57:49 UTC (rev 8401)
@@ -3,19 +3,28 @@
1. Run the regression tests. After having compiled DRD, run the following
command:
- perl tests/vg_regtest exp-drd
-2. Test whether DRD works with standard KDE applications and whether it does
+ perl tests/vg_regtest exp-drd
+2. Test the slowdown for matinv for various matrix sizes (must be less
+ than 100):
+ time exp-drd/tests/matinv 200
+ for ((i=1;i<=10;i++))
+ do
+ echo "==== $i ===="
+ time ./vg-in-place --tool=exp-drd exp-drd/tests/matinv 200 -t$i
+ done
+3. Test whether DRD works with standard KDE applications and whether it does
not print any error messages:
- ./vg-in-place --tool=exp-drd kate
- ./vg-in-place --trace-children=yes --tool=exp-drd knode
-3. Test DRD with Firefox. First of all, build and install Firefox 3. Next,
+ ./vg-in-place --tool=exp-drd kate
+ ./vg-in-place --trace-children=yes --tool=exp-drd knode
+4. Test DRD with Firefox. First of all, build and install Firefox 3. Next,
run the following command:
- LD_LIBRARY_PATH=$HOME/firefox3: ./vg-in-place --tool=exp-drd \
- $HOME/firefox3/firefox-bin
+ LD_LIBRARY_PATH=$HOME/software/mozilla-build/dist/lib: ./vg-in-place --tool=exp-drd $HOME/software/mozilla-build/dist/bin/firefox-bin
+
+
The Firefox source code can be obtained here:
ftp://ftp.mozilla.org/pub/mozilla.org/firefox/releases/${version}/source
@@ -30,6 +39,7 @@
BUILD=${SRC}-build
PREFIX=$HOME/firefox3
MOZCONFIG=$BUILD/mozconfig-firefox
+export MOZCONFIG
rm -rf ${BUILD} || exit $?
rm -rf ${PREFIX} || exit $?
@@ -47,7 +57,6 @@
ac_add_options --prefix $PREFIX
EOF
-export MOZCONFIG
export CFLAGS=-pipe
${SRC}/configure
Modified: branches/DRDDEV/memcheck/tests/oset_test.c
===================================================================
--- branches/DRDDEV/memcheck/tests/oset_test.c 2008-07-08 11:41:29 UTC (rev 8400)
+++ branches/DRDDEV/memcheck/tests/oset_test.c 2008-07-08 15:57:49 UTC (rev 8401)
@@ -28,9 +28,6 @@
#define vgPlain_memset memset
#define vgPlain_memcpy memcpy
-static void* VG_(malloc)( SizeT nbytes ) { return malloc(nbytes); }
-static void VG_(free) ( void* p ) { return free(p); }
-
#include "coregrind/m_oset.c"
#define NN 1000 // Size of OSets being created
|
|
From: <sv...@va...> - 2008-07-08 11:41:32
|
Author: sewardj
Date: 2008-07-08 12:41:29 +0100 (Tue, 08 Jul 2008)
New Revision: 8400
Log:
MAX_FORWARD needs to be 64 on 64 bit platforms, otherwise this library
segfaults sometimes. Make it equal to the number of bits in a word.
Modified:
branches/PTRCHECK/exp-ptrcheck/pc_list.c
Modified: branches/PTRCHECK/exp-ptrcheck/pc_list.c
===================================================================
--- branches/PTRCHECK/exp-ptrcheck/pc_list.c 2008-07-08 10:40:38 UTC (rev 8399)
+++ branches/PTRCHECK/exp-ptrcheck/pc_list.c 2008-07-08 11:41:29 UTC (rev 8400)
@@ -119,7 +119,7 @@
// Miscellaneous
//-------------------------------------------------------------------
-#define MAX_FORWARD 32 // Maximum number of forward pointers
+#define MAX_FORWARD (8*sizeof(Addr)) // Maximum number of forward pointers
static void print_Addr(Addr a)
{
@@ -366,7 +366,7 @@
return o;
}
-// Nb: Intervals must be freeed elsewh, because there are possibly
+// Nb: Intervals must be freed elsewhere, because there are possibly
// multiple pointers to each Interval in the ISList; freeing them here
// could cause double-freeing.
static void INode__destruct(INode* o)
@@ -729,7 +729,6 @@
// the top edge coming into x, but never higher.
IList__empty(&promoted);
- //tl_assert(x); tl_assert(update); VG_(printf)("PREL %d %p\n",i, update[i]);
for (i = 0; i < x->topLevel && !ISNode__isHeader(update[i+1]); i++)
{
IList__copy(&tempMarkList, update[i]->markers[i]);
@@ -772,7 +771,6 @@
// add newPromoted to promoted and make newPromoted empty
IList__copy(&promoted, &newPromoted);
IList__empty(&newPromoted);
- //tl_assert(x); tl_assert(update); VG_(printf)("IN-L %d %p\n",i, update[i]);
}
/* Assertion: i=x->level()-1 OR update[i+1] is the header.
|
|
From: <sv...@va...> - 2008-07-08 10:40:35
|
Author: sewardj
Date: 2008-07-08 11:40:38 +0100 (Tue, 08 Jul 2008)
New Revision: 8399
Log:
various changes:
* Change out-parameter 'n' in Seg__compare from signed to unsigned.
It's not possible to represent the absolute difference of two
pointers using a signed value. Change callers accordingly.
* handle Vg_CoreSignal in post_reg_write_demux, as many of the regtests
require signal handling to work
Modified:
branches/PTRCHECK/exp-ptrcheck/pc_list.c
branches/PTRCHECK/exp-ptrcheck/pc_list.h
branches/PTRCHECK/exp-ptrcheck/pc_main.c
Modified: branches/PTRCHECK/exp-ptrcheck/pc_list.c
===================================================================
--- branches/PTRCHECK/exp-ptrcheck/pc_list.c 2008-07-08 10:35:47 UTC (rev 8398)
+++ branches/PTRCHECK/exp-ptrcheck/pc_list.c 2008-07-08 10:40:38 UTC (rev 8399)
@@ -272,7 +272,6 @@
{
my_assert(Interval__hasValidMagic(seg));
if (seg->is_zero) {
- Interval__print(seg);
my_assert(seg->left == seg->right);
return False;
} else {
@@ -287,7 +286,7 @@
// Determines if 'a' is before, within, or after seg's range. Sets 'cmp' to
// -1/0/1 accordingly. Sets 'n' to the number of bytes before/within/after.
-void Seg__cmp(Seg seg, Addr a, Int* cmp, Word* n)
+void Seg__cmp(Seg seg, Addr a, Int* cmp, UWord* n)
{
if (a < seg->left) {
*cmp = -1;
@@ -730,7 +729,7 @@
// the top edge coming into x, but never higher.
IList__empty(&promoted);
-
+ //tl_assert(x); tl_assert(update); VG_(printf)("PREL %d %p\n",i, update[i]);
for (i = 0; i < x->topLevel && !ISNode__isHeader(update[i+1]); i++)
{
IList__copy(&tempMarkList, update[i]->markers[i]);
@@ -773,6 +772,7 @@
// add newPromoted to promoted and make newPromoted empty
IList__copy(&promoted, &newPromoted);
IList__empty(&newPromoted);
+ //tl_assert(x); tl_assert(update); VG_(printf)("IN-L %d %p\n",i, update[i]);
}
/* Assertion: i=x->level()-1 OR update[i+1] is the header.
Modified: branches/PTRCHECK/exp-ptrcheck/pc_list.h
===================================================================
--- branches/PTRCHECK/exp-ptrcheck/pc_list.h 2008-07-08 10:35:47 UTC (rev 8398)
+++ branches/PTRCHECK/exp-ptrcheck/pc_list.h 2008-07-08 10:40:38 UTC (rev 8399)
@@ -64,7 +64,7 @@
extern Bool Seg__is_freed(Seg seg);
extern Bool Seg__containsI(Seg seg, Addr l, Addr r);
extern Bool Seg__contains(Seg seg, Addr a);
-extern void Seg__cmp(Seg seg, Addr a, Int* cmp, Word* n);
+extern void Seg__cmp(Seg seg, Addr a, Int* cmp, UWord* n);
extern void Seg__resize(Seg seg, SizeT new_size, ExeContext* where) ;
extern Char* Seg__status_str(Seg seg);
Modified: branches/PTRCHECK/exp-ptrcheck/pc_main.c
===================================================================
--- branches/PTRCHECK/exp-ptrcheck/pc_main.c 2008-07-08 10:35:47 UTC (rev 8398)
+++ branches/PTRCHECK/exp-ptrcheck/pc_main.c 2008-07-08 10:40:38 UTC (rev 8399)
@@ -218,6 +218,9 @@
#define PC_MALLOC_REDZONE_SZB 0 /* no need for client heap redzones */
+static __inline__ VG_REGPARM(1) Seg nonptr_or_unknown(UWord x); /*fwds*/
+
+
//zz /*------------------------------------------------------------*/
//zz /*--- Profiling events ---*/
//zz /*------------------------------------------------------------*/
@@ -797,7 +800,7 @@
} else {
// Access via a pointer, but outside its range.
Int cmp;
- Word miss_size;
+ UWord miss_size;
Seg__cmp(vseg, a, &cmp, &miss_size);
if (cmp < 0) place = "before";
else if (cmp == 0) place = "inside";
@@ -811,10 +814,10 @@
VG_(pp_ExeContext)( VG_(get_error_where)(err) );
VG_(message)(Vg_UserMsg,
- " Address %p is %ld bytes %s the accessing pointer's",
+ " Address %p is %lu bytes %s the accessing pointer's",
a, miss_size, place);
VG_(message)(Vg_UserMsg,
- " %slegitimate range, a block of size %ld %s",
+ " %slegitimate range, a block of size %lu %s",
legit, Seg__size(vseg), Seg__status_str(vseg) );
VG_(pp_ExeContext)(Seg__where(vseg));
}
@@ -1612,26 +1615,22 @@
// VG_(set_thread_shadow_archreg)( tid, reg, (UInt)NONPTR );
}
-//zz static void post_reg_write_nonptr_or_unknown(ThreadId tid, UInt reg)
-//zz {
-//zz // deliver_signal: called from two places; one sets the reg to zero, the
-//zz // other sets the stack pointer.
-//zz //
-//zz // pthread_return: All the pthread_* functions return non-pointers,
-//zz // except pthread_getspecific(), but it's ok: even though the
-//zz // allocation/getting of the specifics pointer happens on the real CPU,
-//zz // the set/get of the specific value is done in vg_libpthread.c on the
-//zz // simd CPU, using the specifics pointer.
-//zz //
-//zz // The MALLOC request is also (unfortunately) lumped in with the pthread
-//zz // ops... it does most certainly return a pointer, and one to a heap
-//zz // block, which is marked as UNKNOWN. Inaccurately marking it is not
-//zz // really a problem, as the heap-blocks are entirely local to
-//zz // vg_libpthread.c.
-//zz //
-//zz Seg seg = ( VG_(get_thread_archreg)(tid, reg) ? UNKNOWN : NONPTR );
-//zz VG_(set_thread_shadow_archreg)( tid, reg, (UInt)seg );
-//zz }
+static void post_reg_write_nonptr_or_unknown ( ThreadId tid,
+ OffT offset, SizeT size )
+{
+ // deliver_signal: called from two places; one sets the reg to zero, the
+ // other sets the stack pointer.
+ //
+ if (is_integer_guest_reg( (Int)offset, (Int)size )) {
+ put_guest_intreg(
+ tid, 1/*shadowno*/, offset, size,
+ (UWord)nonptr_or_unknown(
+ get_guest_intreg( tid, 0/*shadowno*/,
+ offset, size )));
+ } else {
+ tl_assert(0);
+ }
+}
static
void post_reg_write_demux ( CorePart part, ThreadId tid,
@@ -1657,6 +1656,9 @@
case Vg_CoreClientReq:
post_reg_write_nonptr( tid, guest_state_offset, size );
break;
+ case Vg_CoreSignal:
+ post_reg_write_nonptr_or_unknown( tid, guest_state_offset, size );
+ break;
default:
tl_assert(0);
}
@@ -1766,8 +1768,6 @@
/*--- System calls ---*/
/*--------------------------------------------------------------------*/
-static __inline__ VG_REGPARM(1) Seg nonptr_or_unknown(UWord x); /*fwds*/
-
static void pre_syscall ( ThreadId tid, UInt syscallno )
{
//zz #if 0
@@ -1901,12 +1901,12 @@
# if defined(__NR_arch_prctl)
case __NR_arch_prctl: {
- put_guest_intreg(
- tid, 1/*shadowno*/, PC_OFF_FS_ZERO, PC_SZB_FS_ZERO,
- (UWord)
- nonptr_or_unknown(
- get_guest_intreg( tid, 0/*shadowno*/,
- PC_OFF_FS_ZERO, PC_SZB_FS_ZERO )));
+ /* This is nasty. On amd64-linux, arch_prctl may write a
+ value to guest_FS_ZERO, and we need to shadow that value.
+ Hence apply nonptr_or_unknown to it here, after the
+ syscall completes. */
+ post_reg_write_nonptr_or_unknown( tid, PC_OFF_FS_ZERO,
+ PC_SZB_FS_ZERO );
VG_(set_syscall_return_shadows)( tid, (UWord)NONPTR, 0 );
}
# endif
@@ -4454,8 +4454,8 @@
//zz 0
//zz };
- VG_(details_name) ("Ptrcheck");
- VG_(details_version) ("0.0.2");
+ VG_(details_name) ("exp-ptrcheck");
+ VG_(details_version) (NULL);
VG_(details_description) ("a pointer-use checker");
VG_(details_copyright_author)(
"Copyright (C) 2003-2008, and GNU GPL'd, by Nicholas Nethercote.");
|
|
From: Bart V. A. <bar...@gm...> - 2008-07-08 10:38:52
|
DRD is a pure happens-before data race detector implemented as a Valgrind tool. The happens-before algorithm which DRD is based upon guarantees not to report any false positives. An experimental version of the DRD tool, called exp-drd, was already included with the Valgrind releases 3.3.0 and 3.3.1. This tool has been renamed to drd and will be included with the 3.4.0 release of Valgrind. Since release 3.3.1 the DRD tool became significantly faster, uses less memory, supports detection of lock contention, and supports now also POSIX reader-writer locks, barriers and the Qt4 library. A release candidate of DRD can be found on the Valgrind trunk, and can be downloaded, compiled and installed as follows: svn co svn://svn.valgrind.org/valgrind/trunk valgrind cd valgrind && ./autogen.sh && ./configure --prefix=$HOME/valgrind-3.4.0.SVN make -s && make -C docs -s html-docs && make -s install konqueror ~/valgrind-3.4.0.SVN/share/doc/valgrind/html/drd-manual.html & Any feedback about the tool or its documentation is welcome. Please keep in mind that the feature freeze date for the Valgrind 3.4.0 release is on Friday August 1, 2008. Bart. |
|
From: <sv...@va...> - 2008-07-08 10:35:41
|
Author: sewardj Date: 2008-07-08 11:35:47 +0100 (Tue, 08 Jul 2008) New Revision: 8398 Log: Import regression tests from original tarball. Added: branches/PTRCHECK/exp-ptrcheck/tests/add.c branches/PTRCHECK/exp-ptrcheck/tests/add.stderr.exp branches/PTRCHECK/exp-ptrcheck/tests/add.vgtest branches/PTRCHECK/exp-ptrcheck/tests/and.c branches/PTRCHECK/exp-ptrcheck/tests/and.stderr.exp branches/PTRCHECK/exp-ptrcheck/tests/and.vgtest branches/PTRCHECK/exp-ptrcheck/tests/arith.c branches/PTRCHECK/exp-ptrcheck/tests/arith.stderr.diff branches/PTRCHECK/exp-ptrcheck/tests/arith.stderr.exp branches/PTRCHECK/exp-ptrcheck/tests/arith.stderr.out branches/PTRCHECK/exp-ptrcheck/tests/arith.vgtest branches/PTRCHECK/exp-ptrcheck/tests/arith_include1.c branches/PTRCHECK/exp-ptrcheck/tests/arith_include2.c branches/PTRCHECK/exp-ptrcheck/tests/base.c branches/PTRCHECK/exp-ptrcheck/tests/base.stderr.diff branches/PTRCHECK/exp-ptrcheck/tests/base.stderr.exp branches/PTRCHECK/exp-ptrcheck/tests/base.stderr.out branches/PTRCHECK/exp-ptrcheck/tests/base.vgtest branches/PTRCHECK/exp-ptrcheck/tests/ccc.cpp branches/PTRCHECK/exp-ptrcheck/tests/ccc.stderr.diff branches/PTRCHECK/exp-ptrcheck/tests/ccc.stderr.exp branches/PTRCHECK/exp-ptrcheck/tests/ccc.stderr.out branches/PTRCHECK/exp-ptrcheck/tests/ccc.vgtest branches/PTRCHECK/exp-ptrcheck/tests/cmp.c branches/PTRCHECK/exp-ptrcheck/tests/cmp.stderr.exp branches/PTRCHECK/exp-ptrcheck/tests/cmp.vgtest branches/PTRCHECK/exp-ptrcheck/tests/filter_add branches/PTRCHECK/exp-ptrcheck/tests/filter_stderr branches/PTRCHECK/exp-ptrcheck/tests/filter_suppgen branches/PTRCHECK/exp-ptrcheck/tests/fp.c branches/PTRCHECK/exp-ptrcheck/tests/fp.stderr.diff branches/PTRCHECK/exp-ptrcheck/tests/fp.stderr.exp branches/PTRCHECK/exp-ptrcheck/tests/fp.stderr.out branches/PTRCHECK/exp-ptrcheck/tests/fp.vgtest branches/PTRCHECK/exp-ptrcheck/tests/hp_bounds.c branches/PTRCHECK/exp-ptrcheck/tests/hp_bounds.stderr.diff branches/PTRCHECK/exp-ptrcheck/tests/hp_bounds.stderr.exp branches/PTRCHECK/exp-ptrcheck/tests/hp_bounds.stderr.out branches/PTRCHECK/exp-ptrcheck/tests/hp_bounds.vgtest branches/PTRCHECK/exp-ptrcheck/tests/hp_dangle.c branches/PTRCHECK/exp-ptrcheck/tests/hp_dangle.stderr.diff branches/PTRCHECK/exp-ptrcheck/tests/hp_dangle.stderr.exp branches/PTRCHECK/exp-ptrcheck/tests/hp_dangle.stderr.out branches/PTRCHECK/exp-ptrcheck/tests/hp_dangle.vgtest branches/PTRCHECK/exp-ptrcheck/tests/idiv.c branches/PTRCHECK/exp-ptrcheck/tests/idiv.stderr.diff branches/PTRCHECK/exp-ptrcheck/tests/idiv.stderr.exp branches/PTRCHECK/exp-ptrcheck/tests/idiv.stderr.out branches/PTRCHECK/exp-ptrcheck/tests/idiv.vgtest branches/PTRCHECK/exp-ptrcheck/tests/imul.c branches/PTRCHECK/exp-ptrcheck/tests/imul.stderr.diff branches/PTRCHECK/exp-ptrcheck/tests/imul.stderr.exp branches/PTRCHECK/exp-ptrcheck/tests/imul.stderr.out branches/PTRCHECK/exp-ptrcheck/tests/imul.vgtest branches/PTRCHECK/exp-ptrcheck/tests/justify.c branches/PTRCHECK/exp-ptrcheck/tests/justify.stderr.diff branches/PTRCHECK/exp-ptrcheck/tests/justify.stderr.exp branches/PTRCHECK/exp-ptrcheck/tests/justify.stderr.out branches/PTRCHECK/exp-ptrcheck/tests/justify.vgtest branches/PTRCHECK/exp-ptrcheck/tests/mm.c branches/PTRCHECK/exp-ptrcheck/tests/mm.stderr.diff branches/PTRCHECK/exp-ptrcheck/tests/mm.stderr.exp branches/PTRCHECK/exp-ptrcheck/tests/mm.stderr.out branches/PTRCHECK/exp-ptrcheck/tests/mm.vgtest branches/PTRCHECK/exp-ptrcheck/tests/neg.c branches/PTRCHECK/exp-ptrcheck/tests/neg.stderr.diff branches/PTRCHECK/exp-ptrcheck/tests/neg.stderr.exp branches/PTRCHECK/exp-ptrcheck/tests/neg.stderr.out branches/PTRCHECK/exp-ptrcheck/tests/neg.vgtest branches/PTRCHECK/exp-ptrcheck/tests/not.c branches/PTRCHECK/exp-ptrcheck/tests/not.stderr.diff branches/PTRCHECK/exp-ptrcheck/tests/not.stderr.exp branches/PTRCHECK/exp-ptrcheck/tests/not.stderr.out branches/PTRCHECK/exp-ptrcheck/tests/not.vgtest branches/PTRCHECK/exp-ptrcheck/tests/or.c branches/PTRCHECK/exp-ptrcheck/tests/or.stderr.diff branches/PTRCHECK/exp-ptrcheck/tests/or.stderr.exp branches/PTRCHECK/exp-ptrcheck/tests/or.stderr.out branches/PTRCHECK/exp-ptrcheck/tests/or.vgtest branches/PTRCHECK/exp-ptrcheck/tests/partial.c branches/PTRCHECK/exp-ptrcheck/tests/partial_bad.stderr.diff branches/PTRCHECK/exp-ptrcheck/tests/partial_bad.stderr.exp branches/PTRCHECK/exp-ptrcheck/tests/partial_bad.stderr.out branches/PTRCHECK/exp-ptrcheck/tests/partial_bad.vgtest branches/PTRCHECK/exp-ptrcheck/tests/partial_good.stderr.diff branches/PTRCHECK/exp-ptrcheck/tests/partial_good.stderr.exp branches/PTRCHECK/exp-ptrcheck/tests/partial_good.stderr.out branches/PTRCHECK/exp-ptrcheck/tests/partial_good.vgtest branches/PTRCHECK/exp-ptrcheck/tests/pth_create.c branches/PTRCHECK/exp-ptrcheck/tests/pth_create.stderr.diff branches/PTRCHECK/exp-ptrcheck/tests/pth_create.stderr.exp branches/PTRCHECK/exp-ptrcheck/tests/pth_create.stderr.out branches/PTRCHECK/exp-ptrcheck/tests/pth_create.vgtest branches/PTRCHECK/exp-ptrcheck/tests/pth_specific.c branches/PTRCHECK/exp-ptrcheck/tests/pth_specific.stderr.diff branches/PTRCHECK/exp-ptrcheck/tests/pth_specific.stderr.exp branches/PTRCHECK/exp-ptrcheck/tests/pth_specific.stderr.out branches/PTRCHECK/exp-ptrcheck/tests/pth_specific.vgtest branches/PTRCHECK/exp-ptrcheck/tests/realloc.c branches/PTRCHECK/exp-ptrcheck/tests/realloc.stderr.diff branches/PTRCHECK/exp-ptrcheck/tests/realloc.stderr.exp branches/PTRCHECK/exp-ptrcheck/tests/realloc.stderr.out branches/PTRCHECK/exp-ptrcheck/tests/realloc.vgtest branches/PTRCHECK/exp-ptrcheck/tests/sh_script branches/PTRCHECK/exp-ptrcheck/tests/sh_script.stderr.diff branches/PTRCHECK/exp-ptrcheck/tests/sh_script.stderr.exp branches/PTRCHECK/exp-ptrcheck/tests/sh_script.stderr.out branches/PTRCHECK/exp-ptrcheck/tests/sh_script.vgtest branches/PTRCHECK/exp-ptrcheck/tests/strcpy.c branches/PTRCHECK/exp-ptrcheck/tests/strcpy.stderr.exp branches/PTRCHECK/exp-ptrcheck/tests/strcpy.vgtest branches/PTRCHECK/exp-ptrcheck/tests/strlen.c branches/PTRCHECK/exp-ptrcheck/tests/strlen_bad.stderr.diff branches/PTRCHECK/exp-ptrcheck/tests/strlen_bad.stderr.exp branches/PTRCHECK/exp-ptrcheck/tests/strlen_bad.stderr.out branches/PTRCHECK/exp-ptrcheck/tests/strlen_bad.vgtest branches/PTRCHECK/exp-ptrcheck/tests/strlen_good.stderr.diff branches/PTRCHECK/exp-ptrcheck/tests/strlen_good.stderr.exp branches/PTRCHECK/exp-ptrcheck/tests/strlen_good.stderr.out branches/PTRCHECK/exp-ptrcheck/tests/strlen_good.vgtest branches/PTRCHECK/exp-ptrcheck/tests/sub.c branches/PTRCHECK/exp-ptrcheck/tests/sub.stderr.exp branches/PTRCHECK/exp-ptrcheck/tests/sub.vgtest branches/PTRCHECK/exp-ptrcheck/tests/supp.c branches/PTRCHECK/exp-ptrcheck/tests/supp.stderr.diff branches/PTRCHECK/exp-ptrcheck/tests/supp.stderr.exp branches/PTRCHECK/exp-ptrcheck/tests/supp.stderr.out branches/PTRCHECK/exp-ptrcheck/tests/supp.supp branches/PTRCHECK/exp-ptrcheck/tests/supp.vgtest branches/PTRCHECK/exp-ptrcheck/tests/suppgen.stderr.diff branches/PTRCHECK/exp-ptrcheck/tests/suppgen.stderr.exp branches/PTRCHECK/exp-ptrcheck/tests/suppgen.stderr.out branches/PTRCHECK/exp-ptrcheck/tests/suppgen.stdin branches/PTRCHECK/exp-ptrcheck/tests/suppgen.vgtest branches/PTRCHECK/exp-ptrcheck/tests/syscall.c branches/PTRCHECK/exp-ptrcheck/tests/syscall.stderr.diff branches/PTRCHECK/exp-ptrcheck/tests/syscall.stderr.exp branches/PTRCHECK/exp-ptrcheck/tests/syscall.stderr.out branches/PTRCHECK/exp-ptrcheck/tests/syscall.vgtest branches/PTRCHECK/exp-ptrcheck/tests/tricky.c branches/PTRCHECK/exp-ptrcheck/tests/tricky.stderr.exp branches/PTRCHECK/exp-ptrcheck/tests/tricky.vgtest branches/PTRCHECK/exp-ptrcheck/tests/unaligned.c branches/PTRCHECK/exp-ptrcheck/tests/unaligned.stderr.diff branches/PTRCHECK/exp-ptrcheck/tests/unaligned.stderr.exp branches/PTRCHECK/exp-ptrcheck/tests/unaligned.stderr.out branches/PTRCHECK/exp-ptrcheck/tests/unaligned.vgtest branches/PTRCHECK/exp-ptrcheck/tests/x86/ branches/PTRCHECK/exp-ptrcheck/tests/x86/Makefile.am branches/PTRCHECK/exp-ptrcheck/tests/x86/asm.S branches/PTRCHECK/exp-ptrcheck/tests/x86/asm.stderr.diff branches/PTRCHECK/exp-ptrcheck/tests/x86/asm.stderr.exp branches/PTRCHECK/exp-ptrcheck/tests/x86/asm.stderr.out branches/PTRCHECK/exp-ptrcheck/tests/x86/asm.vgtest branches/PTRCHECK/exp-ptrcheck/tests/x86/filter_stderr branches/PTRCHECK/exp-ptrcheck/tests/x86/lea.S branches/PTRCHECK/exp-ptrcheck/tests/x86/lea.stderr.diff branches/PTRCHECK/exp-ptrcheck/tests/x86/lea.stderr.exp branches/PTRCHECK/exp-ptrcheck/tests/x86/lea.stderr.out branches/PTRCHECK/exp-ptrcheck/tests/x86/lea.vgtest branches/PTRCHECK/exp-ptrcheck/tests/xor.c branches/PTRCHECK/exp-ptrcheck/tests/xor.stderr.diff branches/PTRCHECK/exp-ptrcheck/tests/xor.stderr.exp branches/PTRCHECK/exp-ptrcheck/tests/xor.stderr.out branches/PTRCHECK/exp-ptrcheck/tests/xor.vgtest branches/PTRCHECK/exp-ptrcheck/tests/zero.c branches/PTRCHECK/exp-ptrcheck/tests/zero.stderr.exp branches/PTRCHECK/exp-ptrcheck/tests/zero.vgtest Modified: branches/PTRCHECK/exp-ptrcheck/tests/Makefile.am [... diff too large to include ...] |
|
From: <sv...@va...> - 2008-07-08 09:29:12
|
Author: bart
Date: 2008-07-08 10:29:19 +0100 (Tue, 08 Jul 2008)
New Revision: 8397
Log:
Added libglib and libQtCore suppression patterns.
Modified:
trunk/glibc-2.X-drd.supp
Modified: trunk/glibc-2.X-drd.supp
===================================================================
--- trunk/glibc-2.X-drd.supp 2008-07-08 08:53:15 UTC (rev 8396)
+++ trunk/glibc-2.X-drd.supp 2008-07-08 09:29:19 UTC (rev 8397)
@@ -331,3 +331,41 @@
fun:pthread_cond_destroy*
fun:xcb_wait_for_reply
}
+{
+ libglib-access-g_threads_got_initialized
+ drd:ConflictingAccess
+ fun:g_slice_alloc
+ fun:g_ptr_array_sized_new
+ fun:g_main_context_new
+}
+{
+ libglib-access-g_threads_got_initialized
+ drd:ConflictingAccess
+ fun:_ZN27QEventDispatcherGlibPrivateC1EP13_GMainContext
+ fun:_ZN20QEventDispatcherGlibC1EP7QObject
+ obj:/usr/lib*/libQtCore.so.4.*
+ obj:/usr/lib*/libQtCore.so.4.*
+}
+{
+ libglib-access-g_mem_initialized
+ drd:ConflictingAccess
+ fun:g_malloc0
+}
+{
+ libglib-g_private_get_posix_impl
+ drd:ConflictingAccess
+ fun:g_private_get_posix_impl
+}
+{
+ libglib-g_private_set_posix_impl
+ drd:ConflictingAccess
+ fun:g_private_set_posix_impl
+}
+{
+ libQtCore-QObjectPrivate::clearGuards(QObject*)
+ drd:ConflictingAccess
+ fun:_ZN14QReadWriteLock12lockForWriteEv
+ fun:_ZN14QObjectPrivate11clearGuardsEP7QObject
+ fun:_ZN7QObjectD2Ev
+ fun:_ZN20QEventDispatcherGlibD0Ev
+}
|
|
From: <sv...@va...> - 2008-07-08 08:53:08
|
Author: bart Date: 2008-07-08 09:53:15 +0100 (Tue, 08 Jul 2008) New Revision: 8396 Log: Added /usr/include/qt4 to search path for C++ header files. Made Qt4 detection test portable. Modified: trunk/configure.in Modified: trunk/configure.in =================================================================== --- trunk/configure.in 2008-07-08 08:51:51 UTC (rev 8395) +++ trunk/configure.in 2008-07-08 08:53:15 UTC (rev 8396) @@ -52,6 +52,8 @@ # Checks for programs. CFLAGS="-Wno-long-long" +CXXFLAGS="-I/usr/include/qt4" +CPPFLAGS="-I/usr/include/qt4" AC_PROG_LN_S AC_PROG_CC @@ -1388,17 +1390,21 @@ AC_MSG_CHECKING([for Qt4 core library]) -# The test below looks up some symbol definitions in the temporary file generated by the -# configure script, namely confdefs.h. -if grep -q -w '^#define HAVE_LIBQTCORE 1$' confdefs.h \ - && grep -q -w '^#define HAVE_QTCORE_QMUTEX 1$' confdefs.h -then +AC_TRY_COMPILE([ ], +[ +#if ! defined(HAVE_LIBQTCORE) || ! defined(HAVE_QTCORE_QMUTEX) +#error Qt4 not supported. +#endif + return 0; +], +[ ac_have_qtcore=yes AC_MSG_RESULT([yes]) -else +], +[ ac_have_qtcore=no AC_MSG_RESULT([no]) -fi +]) AM_CONDITIONAL([HAVE_QTCORE], [test x$ac_have_qtcore = xyes]) |
|
From: <sv...@va...> - 2008-07-08 08:51:46
|
Author: bart
Date: 2008-07-08 09:51:51 +0100 (Tue, 08 Jul 2008)
New Revision: 8395
Log:
Switched back from recursive to non-recursive reader-writer lock because Qt4.3 does not support recursive reader-writer locks.
Modified:
trunk/drd/tests/qt4_rwlock.cpp
Modified: trunk/drd/tests/qt4_rwlock.cpp
===================================================================
--- trunk/drd/tests/qt4_rwlock.cpp 2008-07-08 06:19:31 UTC (rev 8394)
+++ trunk/drd/tests/qt4_rwlock.cpp 2008-07-08 08:51:51 UTC (rev 8395)
@@ -49,15 +49,11 @@
{
// Stack-allocated reader-writer lock.
- QReadWriteLock RWL(QReadWriteLock::Recursive);
+ QReadWriteLock RWL;
RWL.lockForRead();
- RWL.lockForRead();
RWL.unlock();
- RWL.unlock();
RWL.lockForWrite();
- RWL.lockForWrite();
RWL.unlock();
- RWL.unlock();
}
pthread_barrier_init(&s_barrier, 0, n_threads);
|
|
From: <sv...@va...> - 2008-07-08 06:19:25
|
Author: bart
Date: 2008-07-08 07:19:31 +0100 (Tue, 08 Jul 2008)
New Revision: 8394
Log:
Updated expected output file.
Modified:
trunk/drd/tests/tc20_verifywrap2.stderr.exp-glibc2.3-b
Modified: trunk/drd/tests/tc20_verifywrap2.stderr.exp-glibc2.3-b
===================================================================
--- trunk/drd/tests/tc20_verifywrap2.stderr.exp-glibc2.3-b 2008-07-08 06:19:06 UTC (rev 8393)
+++ trunk/drd/tests/tc20_verifywrap2.stderr.exp-glibc2.3-b 2008-07-08 06:19:31 UTC (rev 8394)
@@ -22,9 +22,9 @@
at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
by 0x........: main (tc20_verifywrap.c:92)
[1/1] mutex_init mutex 0x........
-[1/1] pre_mutex_lock mutex 0x........ rc 0 owner 0
+[1/1] mutex_trylock mutex 0x........ rc 0 owner 0
[1/1] post_mutex_lock mutex 0x........ rc 0 owner 0
-[1/1] mutex_destroy mutex 0x........
+[1/1] mutex_destroy mutex 0x........ rc 1 owner 1
Destroying locked mutex: mutex 0x........, recursion count 1, owner 1.
at 0x........: pthread_mutex_destroy (drd_pthread_intercepts.c:?)
@@ -160,12 +160,12 @@
Destroying locked rwlock: rwlock 0x.........
at 0x........: main (tc20_verifywrap.c:262)
-[1/1] mutex_destroy error checking mutex 0x........
+[1/1] mutex_destroy error checking mutex 0x........ rc 1 owner 1
Destroying locked mutex: mutex 0x........, recursion count 1, owner 1.
at 0x........: main (tc20_verifywrap.c:262)
-[1/1] mutex_destroy invalid mutex 0x........
-[1/1] pre_mutex_lock recursive mutex 0x........ rc 0 owner 0
+[1/1] mutex_destroy invalid 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
|
|
From: <sv...@va...> - 2008-07-08 06:19:08
|
Author: bart
Date: 2008-07-08 07:19:06 +0100 (Tue, 08 Jul 2008)
New Revision: 8393
Log:
Updated expected output file.
Modified:
trunk/drd/tests/tc20_verifywrap2.stderr.exp-glibc2.3
Modified: trunk/drd/tests/tc20_verifywrap2.stderr.exp-glibc2.3
===================================================================
--- trunk/drd/tests/tc20_verifywrap2.stderr.exp-glibc2.3 2008-07-07 22:00:56 UTC (rev 8392)
+++ trunk/drd/tests/tc20_verifywrap2.stderr.exp-glibc2.3 2008-07-08 06:19:06 UTC (rev 8393)
@@ -22,9 +22,9 @@
at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
by 0x........: main (tc20_verifywrap.c:92)
[1/1] mutex_init mutex 0x........
-[1/1] pre_mutex_lock mutex 0x........ rc 0 owner 0
+[1/1] mutex_trylock mutex 0x........ rc 0 owner 0
[1/1] post_mutex_lock mutex 0x........ rc 0 owner 0
-[1/1] mutex_destroy mutex 0x........
+[1/1] mutex_destroy mutex 0x........ rc 1 owner 1
Destroying locked mutex: mutex 0x........, recursion count 1, owner 1.
at 0x........: pthread_mutex_destroy (drd_pthread_intercepts.c:?)
|
|
From: Tom H. <th...@cy...> - 2008-07-08 03:08:03
|
Nightly build on aston ( x86_64, Fedora Core 5 ) started at 2008-07-08 03:20:11 BST Results differ from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 442 tests, 7 stderr failures, 1 stdout failure, 0 post failures == memcheck/tests/file_locking (stderr) memcheck/tests/malloc_free_fill (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/x86/scalar (stderr) none/tests/blockfault (stderr) none/tests/mremap2 (stdout) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc22_exit_w_lock (stderr) ================================================= == Results from 24 hours ago == ================================================= Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 441 tests, 8 stderr failures, 2 stdout failures, 0 post failures == memcheck/tests/file_locking (stderr) memcheck/tests/malloc_free_fill (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/x86/scalar (stderr) none/tests/blockfault (stderr) none/tests/mremap2 (stdout) helgrind/tests/tc08_hbl2 (stdout) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc21_pthonce (stderr) helgrind/tests/tc22_exit_w_lock (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Tue Jul 8 03:43:46 2008 --- new.short Tue Jul 8 04:08:09 2008 *************** *** 8,10 **** ! == 441 tests, 8 stderr failures, 2 stdout failures, 0 post failures == memcheck/tests/file_locking (stderr) --- 8,10 ---- ! == 442 tests, 7 stderr failures, 1 stdout failure, 0 post failures == memcheck/tests/file_locking (stderr) *************** *** 15,19 **** none/tests/mremap2 (stdout) - helgrind/tests/tc08_hbl2 (stdout) helgrind/tests/tc20_verifywrap (stderr) - helgrind/tests/tc21_pthonce (stderr) helgrind/tests/tc22_exit_w_lock (stderr) --- 15,17 ---- |
|
From: Tom H. <th...@cy...> - 2008-07-08 02:50:52
|
Nightly build on lloyd ( x86_64, Fedora 7 ) started at 2008-07-08 03:05:09 BST Results differ from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 436 tests, 5 stderr failures, 2 stdout failures, 0 post failures == memcheck/tests/file_locking (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/vcpu_fnfns (stdout) memcheck/tests/x86/scalar (stderr) none/tests/mremap2 (stdout) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc22_exit_w_lock (stderr) ================================================= == Results from 24 hours ago == ================================================= Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 435 tests, 5 stderr failures, 2 stdout failures, 0 post failures == memcheck/tests/file_locking (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/vcpu_fnfns (stdout) memcheck/tests/x86/scalar (stderr) none/tests/mremap2 (stdout) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc22_exit_w_lock (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Tue Jul 8 03:28:44 2008 --- new.short Tue Jul 8 03:50:59 2008 *************** *** 8,10 **** ! == 435 tests, 5 stderr failures, 2 stdout failures, 0 post failures == memcheck/tests/file_locking (stderr) --- 8,10 ---- ! == 436 tests, 5 stderr failures, 2 stdout failures, 0 post failures == memcheck/tests/file_locking (stderr) |
|
From: Tom H. <th...@cy...> - 2008-07-08 02:49:05
|
Nightly build on trojan ( x86_64, Fedora Core 6 ) started at 2008-07-08 03:25:04 BST Results differ from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 440 tests, 8 stderr failures, 5 stdout failures, 0 post failures == memcheck/tests/file_locking (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/vcpu_fnfns (stdout) memcheck/tests/x86/bug133694 (stdout) memcheck/tests/x86/bug133694 (stderr) memcheck/tests/x86/scalar (stderr) none/tests/cmdline1 (stdout) none/tests/cmdline2 (stdout) none/tests/mremap2 (stdout) helgrind/tests/tc17_sembar (stderr) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc21_pthonce (stderr) helgrind/tests/tc22_exit_w_lock (stderr) ================================================= == Results from 24 hours ago == ================================================= Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 439 tests, 8 stderr failures, 5 stdout failures, 0 post failures == memcheck/tests/file_locking (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/vcpu_fnfns (stdout) memcheck/tests/x86/bug133694 (stdout) memcheck/tests/x86/bug133694 (stderr) memcheck/tests/x86/scalar (stderr) none/tests/cmdline1 (stdout) none/tests/cmdline2 (stdout) none/tests/mremap2 (stdout) helgrind/tests/tc17_sembar (stderr) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc21_pthonce (stderr) helgrind/tests/tc22_exit_w_lock (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Tue Jul 8 03:36:22 2008 --- new.short Tue Jul 8 03:49:08 2008 *************** *** 8,10 **** ! == 439 tests, 8 stderr failures, 5 stdout failures, 0 post failures == memcheck/tests/file_locking (stderr) --- 8,10 ---- ! == 440 tests, 8 stderr failures, 5 stdout failures, 0 post failures == memcheck/tests/file_locking (stderr) |
|
From: Tom H. <th...@cy...> - 2008-07-08 02:27:52
|
Nightly build on gill ( x86_64, Fedora Core 2 ) started at 2008-07-08 03:00:05 BST Results differ from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 442 tests, 32 stderr failures, 3 stdout failures, 0 post failures == memcheck/tests/file_locking (stderr) memcheck/tests/malloc_free_fill (stderr) memcheck/tests/origin5-bz2 (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/varinfo6 (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) none/tests/amd64/insn_ssse3 (stdout) none/tests/amd64/insn_ssse3 (stderr) none/tests/amd64/ssse3_misaligned (stderr) none/tests/blockfault (stderr) none/tests/fdleak_fcntl (stderr) none/tests/mremap2 (stdout) none/tests/x86/insn_ssse3 (stdout) none/tests/x86/insn_ssse3 (stderr) none/tests/x86/ssse3_misaligned (stderr) helgrind/tests/hg01_all_ok (stderr) helgrind/tests/hg02_deadlock (stderr) helgrind/tests/hg03_inherit (stderr) helgrind/tests/hg04_race (stderr) helgrind/tests/hg05_race2 (stderr) helgrind/tests/tc01_simple_race (stderr) helgrind/tests/tc05_simple_race (stderr) helgrind/tests/tc06_two_races (stderr) helgrind/tests/tc09_bad_unlock (stderr) helgrind/tests/tc14_laog_dinphils (stderr) helgrind/tests/tc16_byterace (stderr) helgrind/tests/tc17_sembar (stderr) helgrind/tests/tc19_shadowmem (stderr) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc21_pthonce (stderr) helgrind/tests/tc22_exit_w_lock (stderr) helgrind/tests/tc23_bogus_condwait (stderr) drd/tests/tc20_verifywrap2 (stderr) ================================================= == Results from 24 hours ago == ================================================= Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 441 tests, 31 stderr failures, 3 stdout failures, 0 post failures == memcheck/tests/file_locking (stderr) memcheck/tests/malloc_free_fill (stderr) memcheck/tests/origin5-bz2 (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/varinfo6 (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) none/tests/amd64/insn_ssse3 (stdout) none/tests/amd64/insn_ssse3 (stderr) none/tests/amd64/ssse3_misaligned (stderr) none/tests/blockfault (stderr) none/tests/fdleak_fcntl (stderr) none/tests/mremap2 (stdout) none/tests/x86/insn_ssse3 (stdout) none/tests/x86/insn_ssse3 (stderr) none/tests/x86/ssse3_misaligned (stderr) helgrind/tests/hg01_all_ok (stderr) helgrind/tests/hg02_deadlock (stderr) helgrind/tests/hg03_inherit (stderr) helgrind/tests/hg04_race (stderr) helgrind/tests/hg05_race2 (stderr) helgrind/tests/tc01_simple_race (stderr) helgrind/tests/tc05_simple_race (stderr) helgrind/tests/tc06_two_races (stderr) helgrind/tests/tc09_bad_unlock (stderr) helgrind/tests/tc14_laog_dinphils (stderr) helgrind/tests/tc16_byterace (stderr) helgrind/tests/tc17_sembar (stderr) helgrind/tests/tc19_shadowmem (stderr) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc21_pthonce (stderr) helgrind/tests/tc22_exit_w_lock (stderr) helgrind/tests/tc23_bogus_condwait (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Tue Jul 8 03:12:13 2008 --- new.short Tue Jul 8 03:27:57 2008 *************** *** 8,10 **** ! == 441 tests, 31 stderr failures, 3 stdout failures, 0 post failures == memcheck/tests/file_locking (stderr) --- 8,10 ---- ! == 442 tests, 32 stderr failures, 3 stdout failures, 0 post failures == memcheck/tests/file_locking (stderr) *************** *** 43,44 **** --- 43,45 ---- helgrind/tests/tc23_bogus_condwait (stderr) + drd/tests/tc20_verifywrap2 (stderr) |