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
(1) |
2
(4) |
3
(3) |
4
(6) |
5
(14) |
6
(10) |
7
(4) |
|
8
(2) |
9
(4) |
10
(7) |
11
(8) |
12
(5) |
13
(11) |
14
(4) |
|
15
(4) |
16
(9) |
17
(6) |
18
|
19
|
20
|
21
|
|
22
(3) |
23
(1) |
24
(7) |
25
(12) |
26
(8) |
27
(13) |
28
(4) |
|
29
(3) |
30
(4) |
|
|
|
|
|
|
From: Tom H. <to...@co...> - 2009-11-16 09:08:17
|
On 15/11/09 13:05, Johan Björk wrote: > This commit broke all the redirection functionality on Darwin. > Attached patch fixes it. (trivial. don't forget to initialize the > isIFunc field + add assert to make it not happen again) Committed (with some additional fixes to other places). Thanks for the heads up. Tom -- Tom Hughes (to...@co...) http://www.compton.nu/ |
|
From: <sv...@va...> - 2009-11-16 09:07:19
|
Author: tom
Date: 2009-11-16 09:07:07 +0000 (Mon, 16 Nov 2009)
New Revision: 10944
Log:
Make sure isIFunc is initialised whenever we add a symbol.
Modified:
trunk/coregrind/m_debuginfo/readmacho.c
trunk/coregrind/m_debuginfo/readpdb.c
trunk/coregrind/m_debuginfo/readxcoff.c
Modified: trunk/coregrind/m_debuginfo/readmacho.c
===================================================================
--- trunk/coregrind/m_debuginfo/readmacho.c 2009-11-16 09:06:50 UTC (rev 10943)
+++ trunk/coregrind/m_debuginfo/readmacho.c 2009-11-16 09:07:07 UTC (rev 10944)
@@ -369,6 +369,7 @@
di->text_avma+di->text_size - sym_addr;
risym.name = ML_(addStr)(di, name, -1);
risym.isText = True;
+ risym.isIFunc = False;
// Lots of user function names get prepended with an underscore. Eg. the
// function 'f' becomes the symbol '_f'. And the "below main"
// function is called "start". So we skip the leading underscore, and
Modified: trunk/coregrind/m_debuginfo/readpdb.c
===================================================================
--- trunk/coregrind/m_debuginfo/readpdb.c 2009-11-16 09:06:50 UTC (rev 10943)
+++ trunk/coregrind/m_debuginfo/readpdb.c 2009-11-16 09:07:07 UTC (rev 10944)
@@ -1273,6 +1273,7 @@
vsym.size = sym->data_v1.p_name.namelen;
// FIXME: .namelen is sizeof(.data) including .name[]
vsym.isText = (sym->generic.id == S_PUB_V1);
+ vsym.isIFunc = False;
ML_(addSym)( di, &vsym );
n_syms_read++;
}
@@ -1299,6 +1300,7 @@
// not size of function!
vsym.isText = !!(IMAGE_SCN_CNT_CODE
& sectp[sym->data_v2.segment-1].Characteristics);
+ vsym.isIFunc = False;
ML_(addSym)( di, &vsym );
n_syms_read++;
}
@@ -1331,6 +1333,7 @@
// .text of the function
vsym.isText = !!(IMAGE_SCN_CNT_CODE
& sectp[sym->data_v2.segment-1].Characteristics);
+ vsym.isIFunc = False;
ML_(addSym)( di, &vsym );
n_syms_read++;
}
@@ -1362,6 +1365,7 @@
vsym.name = nmstr;
vsym.size = sym->proc_v1.proc_len;
vsym.isText = True;
+ vsym.isIFunc = False;
if (debug)
VG_(message)(Vg_UserMsg,
"Adding function %s addr=%#lx length=%d\n",
@@ -1382,6 +1386,7 @@
vsym.name = nmstr;
vsym.size = sym->proc_v2.proc_len;
vsym.isText = True;
+ vsym.isIFunc = False;
if (debug)
VG_(message)(Vg_UserMsg,
"Adding function %s addr=%#lx length=%d\n",
@@ -1404,6 +1409,7 @@
vsym.name = nmstr;
vsym.size = sym->proc_v3.proc_len;
vsym.isText = 1;
+ vsym.isIFunc = False;
ML_(addSym)( di, &vsym );
n_syms_read++;
}
Modified: trunk/coregrind/m_debuginfo/readxcoff.c
===================================================================
--- trunk/coregrind/m_debuginfo/readxcoff.c 2009-11-16 09:06:50 UTC (rev 10943)
+++ trunk/coregrind/m_debuginfo/readxcoff.c 2009-11-16 09:07:07 UTC (rev 10944)
@@ -1521,10 +1521,11 @@
/* Actually add the symbol (finallyatlast) */
if (sane) {
UInt nlen;
- dis.addr = addr;
- dis.size = size;
- dis.tocptr = s->r2known ? s->r2value : 0;
- dis.isText = True;
+ dis.addr = addr;
+ dis.size = size;
+ dis.tocptr = s->r2known ? s->r2value : 0;
+ dis.isText = True;
+ dis.isIFunc = False;
vg_assert(!is_empty_Name(s->name));
nlen = s->name.len;
vg_assert(nlen > 0);
|
|
From: <sv...@va...> - 2009-11-16 09:07:05
|
Author: tom
Date: 2009-11-16 09:06:50 +0000 (Mon, 16 Nov 2009)
New Revision: 10943
Log:
Handle the isIFunc flag when canonicalising the symbol table.
Modified:
trunk/coregrind/m_debuginfo/storage.c
Modified: trunk/coregrind/m_debuginfo/storage.c
===================================================================
--- trunk/coregrind/m_debuginfo/storage.c 2009-11-16 09:06:09 UTC (rev 10942)
+++ trunk/coregrind/m_debuginfo/storage.c 2009-11-16 09:06:50 UTC (rev 10943)
@@ -1214,7 +1214,7 @@
Word i, j, n_merged, n_truncated;
Addr s1, s2, e1, e2, p1, p2;
UChar *n1, *n2;
- Bool t1, t2;
+ Bool t1, t2, f1, f2;
# define SWAP(ty,aa,bb) \
do { ty tt = (aa); (aa) = (bb); (bb) = tt; } while (0)
@@ -1278,11 +1278,13 @@
p1 = di->symtab[i].tocptr;
n1 = di->symtab[i].name;
t1 = di->symtab[i].isText;
+ f1 = di->symtab[i].isIFunc;
s2 = di->symtab[i+1].addr;
e2 = s2 + di->symtab[i+1].size - 1;
p2 = di->symtab[i+1].tocptr;
n2 = di->symtab[i+1].name;
t2 = di->symtab[i+1].isText;
+ f2 = di->symtab[i+1].isIFunc;
if (s1 < s2) {
e1 = s2-1;
} else {
@@ -1298,16 +1300,18 @@
up back at cleanup_more, which will take care of it. */
}
}
- di->symtab[i].addr = s1;
- di->symtab[i].size = e1 - s1 + 1;
- di->symtab[i].tocptr = p1;
- di->symtab[i].name = n1;
- di->symtab[i].isText = t1;
- di->symtab[i+1].addr = s2;
- di->symtab[i+1].size = e2 - s2 + 1;
- di->symtab[i+1].tocptr = p2;
- di->symtab[i+1].name = n2;
- di->symtab[i+1].isText = t2;
+ di->symtab[i].addr = s1;
+ di->symtab[i].size = e1 - s1 + 1;
+ di->symtab[i].tocptr = p1;
+ di->symtab[i].name = n1;
+ di->symtab[i].isText = t1;
+ di->symtab[i].isIFunc = f1;
+ di->symtab[i+1].addr = s2;
+ di->symtab[i+1].size = e2 - s2 + 1;
+ di->symtab[i+1].tocptr = p2;
+ di->symtab[i+1].name = n2;
+ di->symtab[i+1].isText = t2;
+ di->symtab[i+1].isIFunc = f2;
vg_assert(s1 <= s2);
vg_assert(di->symtab[i].size > 0);
vg_assert(di->symtab[i+1].size > 0);
|
|
From: <sv...@va...> - 2009-11-16 09:06:23
|
Author: tom
Date: 2009-11-16 09:06:09 +0000 (Mon, 16 Nov 2009)
New Revision: 10942
Log:
Assert that the indirect function wrapper exists if we encounter a
redirection for an indirect function.
Modified:
trunk/coregrind/m_redir.c
Modified: trunk/coregrind/m_redir.c
===================================================================
--- trunk/coregrind/m_redir.c 2009-11-15 19:11:19 UTC (rev 10941)
+++ trunk/coregrind/m_redir.c 2009-11-16 09:06:09 UTC (rev 10942)
@@ -809,8 +809,10 @@
vg_assert(r->to_addr != 0);
if (isWrap)
*isWrap = r->isWrap || r->isIFunc;
- if (r->isIFunc)
+ if (r->isIFunc) {
+ vg_assert(iFuncWrapper);
return iFuncWrapper;
+ }
return r->to_addr;
}
|
|
From: Bart V. A. <bar...@gm...> - 2009-11-16 08:50:16
|
Nightly build on cellbuzz-native ( cellbuzz, ppc64, Fedora 7, native ) Started at 2009-11-16 02:23:02 EST Ended at 2009-11-16 03:49:54 EST Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... done Regression test results follow == 449 tests, 45 stderr failures, 10 stdout failures, 0 post failures == memcheck/tests/deep_templates (stdout) memcheck/tests/leak-cases-full (stderr) memcheck/tests/leak-cases-summary (stderr) memcheck/tests/leak-cycle (stderr) memcheck/tests/linux/timerfd-syscall (stdout) memcheck/tests/linux-syscalls-2007 (stderr) memcheck/tests/origin5-bz2 (stderr) memcheck/tests/partiallydefinedeq (stderr) memcheck/tests/varinfo1 (stderr) memcheck/tests/varinfo2 (stderr) memcheck/tests/varinfo3 (stderr) memcheck/tests/varinfo4 (stderr) memcheck/tests/varinfo5 (stderr) memcheck/tests/varinfo6 (stderr) memcheck/tests/wrap8 (stdout) memcheck/tests/wrap8 (stderr) none/tests/empty-exe (stderr) none/tests/linux/mremap (stderr) none/tests/ppc32/jm-fp (stdout) none/tests/ppc32/jm-vmx (stdout) none/tests/ppc32/round (stdout) none/tests/ppc32/test_gx (stdout) none/tests/ppc64/jm-fp (stdout) none/tests/ppc64/jm-vmx (stdout) none/tests/ppc64/round (stdout) none/tests/shell_valid2 (stderr) none/tests/shell_valid3 (stderr) none/tests/shell_zerolength (stderr) helgrind/tests/hg05_race2 (stderr) helgrind/tests/tc06_two_races_xml (stderr) helgrind/tests/tc22_exit_w_lock (stderr) helgrind/tests/tc23_bogus_condwait (stderr) drd/tests/tc23_bogus_condwait (stderr) exp-ptrcheck/tests/bad_percentify (stderr) exp-ptrcheck/tests/base (stderr) exp-ptrcheck/tests/ccc (stderr) exp-ptrcheck/tests/fp (stderr) exp-ptrcheck/tests/globalerr (stderr) exp-ptrcheck/tests/hackedbz2 (stderr) exp-ptrcheck/tests/hp_bounds (stderr) exp-ptrcheck/tests/hp_dangle (stderr) exp-ptrcheck/tests/hsg (stderr) exp-ptrcheck/tests/justify (stderr) exp-ptrcheck/tests/partial_bad (stderr) exp-ptrcheck/tests/partial_good (stderr) exp-ptrcheck/tests/preen_invars (stderr) exp-ptrcheck/tests/pth_create (stderr) exp-ptrcheck/tests/pth_specific (stderr) exp-ptrcheck/tests/realloc (stderr) exp-ptrcheck/tests/stackerr (stderr) exp-ptrcheck/tests/strcpy (stderr) exp-ptrcheck/tests/supp (stderr) exp-ptrcheck/tests/tricky (stderr) exp-ptrcheck/tests/unaligned (stderr) exp-ptrcheck/tests/zero (stderr) |
|
From: Tom H. <th...@cy...> - 2009-11-16 03:55:35
|
Nightly build on vauxhall ( x86_64, Fedora 11 ) Started at 2009-11-16 03:20:07 GMT Ended at 2009-11-16 03:55:15 GMT 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 == 541 tests, 9 stderr failures, 1 stdout failure, 0 post failures == memcheck/tests/linux/stack_switch (stderr) memcheck/tests/long_namespace_xml (stderr) helgrind/tests/pth_spinlock (stderr) helgrind/tests/tc06_two_races_xml (stderr) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc23_bogus_condwait (stderr) drd/tests/pth_detached2 (stdout) drd/tests/qt4_rwlock (stderr) drd/tests/qt4_semaphore (stderr) exp-ptrcheck/tests/bad_percentify (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 == 541 tests, 7 stderr failures, 0 stdout failures, 0 post failures == memcheck/tests/linux/stack_switch (stderr) memcheck/tests/long_namespace_xml (stderr) helgrind/tests/tc06_two_races_xml (stderr) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc23_bogus_condwait (stderr) drd/tests/qt4_semaphore (stderr) exp-ptrcheck/tests/bad_percentify (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Mon Nov 16 03:35:37 2009 --- new.short Mon Nov 16 03:55:15 2009 *************** *** 8,12 **** ! == 541 tests, 7 stderr failures, 0 stdout failures, 0 post failures == memcheck/tests/linux/stack_switch (stderr) memcheck/tests/long_namespace_xml (stderr) helgrind/tests/tc06_two_races_xml (stderr) --- 8,13 ---- ! == 541 tests, 9 stderr failures, 1 stdout failure, 0 post failures == memcheck/tests/linux/stack_switch (stderr) memcheck/tests/long_namespace_xml (stderr) + helgrind/tests/pth_spinlock (stderr) helgrind/tests/tc06_two_races_xml (stderr) *************** *** 14,15 **** --- 15,18 ---- helgrind/tests/tc23_bogus_condwait (stderr) + drd/tests/pth_detached2 (stdout) + drd/tests/qt4_rwlock (stderr) drd/tests/qt4_semaphore (stderr) |
|
From: Tom H. <th...@cy...> - 2009-11-16 03:50:29
|
Nightly build on lloyd ( x86_64, Fedora 7 ) Started at 2009-11-16 03:05:06 GMT Ended at 2009-11-16 03:50:13 GMT Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 531 tests, 1 stderr failure, 0 stdout failures, 0 post failures == helgrind/tests/tc06_two_races_xml (stderr) |
|
From: Tom H. <th...@cy...> - 2009-11-16 03:36:28
|
Nightly build on mg ( x86_64, Fedora 9 ) Started at 2009-11-16 03:10:06 GMT Ended at 2009-11-16 03:36:07 GMT Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 538 tests, 2 stderr failures, 0 stdout failures, 0 post failures == helgrind/tests/pth_spinlock (stderr) helgrind/tests/tc06_two_races_xml (stderr) |
|
From: Nicholas N. <n.n...@gm...> - 2009-11-16 02:51:35
|
On Tue, Nov 10, 2009 at 11:40 PM, Julian Seward <js...@ac...> wrote: > On Tuesday 10 November 2009, Konstantin Serebryany wrote: >> Hi, >> >> Memcheck reports uninitialized reads (UMRs) only when the reads cause side >> effects (e.g. cmp, syscall, etc). > > Yes. So it's not really reporting reads of uninitialised memory; > rather it's reporting dangerous uses of uninitialised values. > >> This cases the implementation to be complex and slow, especially if we need >> to have --track-origins=yes. >> >> Other tools choose to report UMRs on any first access, including move. >> This is much simpler and faster, but leads to numerous false positives >> (e.g. when copying structures with padding bytes). >> >> I wonder if these two approaches where discussed and compared somewhere in >> literature. > > I don't know of any. I too would be interested to read more about it. > Personally I don't believe it's possible to have an (essentially) zero > false positive rate without using an approach like Memcheck's. But I > would love to be proved wrong on this, since I too don't like Memcheck's > complexity and overhead. It all gets quite tricky when you think about it carefully. Using Andreas Zeller's terminology, a "bug" is a chain of three things: - A "defect" is erroneous source code; - An "infection" is erroneous program state, caused by executing erroneous source code; - A "failure" is erroneous program behaviour, caused by erroneous program state. Sometimes chains are aborted, eg. an infection may be overwritten without causing a problem. Debugging is all about working back from failures to defects. Tools like Valgrind help with that by automatically giving you a point somewhere along the chain closer to the defect. The closer the better. For UMRs the defect is usually that some code is missing, ie. there's a forgotten initialiser. The infection is that a variable has a probably-wrong value. (It may not actually be wrong, eg. you may get lucky (unlucky?) and have it initialise to the desired value, esp. if that value is zero.) We use the term "undefined" but that really just means "probably wrong". Once you have a "probably wrong" value in a C/C++ program, just about anything can happen because you have so much ability to screw up things via memory accesses. There are trade-offs with different approaches for identifying UMRs. The more aggressive you are in identifying suspicious points along the infection chain, the closer you'll be to the actual defect, but the more likely you are to reporting a false positive. Valgrind waits until the undefined value is used in a way that has a high chance of causing an immediate failure. --track-origins=yes is useful because it gives you the location where the undefined value was allocated in memory, which is often the same place that the missing initialiser was supposed to be, ie. where the defect is. All this assumes that copying undefined values is ok. It almost always is, so Valgrind allows it; John Reiser mentions an unusual counter-example. Tools have to make assumptions, sometimes they'll be wrong. There may be better approaches than Valgrind's. If you want to find one, I strongly recommend you think about it in terms of defects/infections/failures, it'll clarify your thinking greatly. Nick |