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
(28) |
3
(21) |
4
(27) |
5
(22) |
6
(24) |
7
(25) |
8
(21) |
|
9
(18) |
10
(20) |
11
(10) |
12
(36) |
13
(18) |
14
(18) |
15
(29) |
|
16
(17) |
17
(7) |
18
(11) |
19
(17) |
20
(18) |
21
(12) |
22
(13) |
|
23
(9) |
24
(8) |
25
(7) |
26
(22) |
27
(18) |
28
(9) |
29
(15) |
|
30
(13) |
31
(7) |
|
|
|
|
|
|
From: <sv...@va...> - 2005-10-20 18:42:29
|
Author: tom Date: 2005-10-20 19:42:26 +0100 (Thu, 20 Oct 2005) New Revision: 4961 Log: Document bug #114757. Modified: trunk/docs/internals/3_0_BUGSTATUS.txt Modified: trunk/docs/internals/3_0_BUGSTATUS.txt =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/docs/internals/3_0_BUGSTATUS.txt 2005-10-20 18:38:08 UTC (rev 4= 960) +++ trunk/docs/internals/3_0_BUGSTATUS.txt 2005-10-20 18:42:26 UTC (rev 4= 961) @@ -281,7 +281,13 @@ FIXED-TRUNK: 4958 FIXED-30BRANCH: TODO =20 +---------------------------------------------------------------- +114757 Valgrind dies with assertion: Assertion 'noLargerThan > 0' faile= d =20 +FIXED-TRUNK: 4960 +FIXED-30BRANCH: TODO + + =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D=3D Bugs targeted for 3.1.0 and 3.0.1 (all done, 3.0.1 released) = =3D=3D=3D =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D |
|
From: <sv...@va...> - 2005-10-20 18:38:47
|
Author: tom
Date: 2005-10-20 19:38:08 +0100 (Thu, 20 Oct 2005)
New Revision: 4960
Log:
Don't assert if the DWARF line info reader is given so little data that
it can't even read the length of the block - just report an error as we
do if there isn't enough data for the rest of the block. Fix bug #114757.
Modified:
trunk/coregrind/m_debuginfo/dwarf.c
Modified: trunk/coregrind/m_debuginfo/dwarf.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_debuginfo/dwarf.c 2005-10-20 17:03:53 UTC (rev 4959=
)
+++ trunk/coregrind/m_debuginfo/dwarf.c 2005-10-20 18:38:08 UTC (rev 4960=
)
@@ -408,8 +408,6 @@
=3D=3D sizeof(DWARF2_Internal_LineInfo));
*/
=20
- vg_assert(noLargerThan > 0);
-
init_WordArray(&filenames);
init_WordArray(&dirnames);
init_WordArray(&fnidx2dir);
@@ -431,6 +429,12 @@
=20
external =3D (DWARF2_External_LineInfo *) data;
=20
+ if (sizeof (external->li_length) > noLargerThan) {
+ ML_(symerr)("DWARF line info appears to be corrupt "
+ "- the section is too small");
+ goto out;
+ }
+
/* Check the length of the block. */
info.li_length =3D * ((UInt *)(external->li_length));
=20
|
|
From: Nicholas N. <nj...@cs...> - 2005-10-20 18:29:03
|
On Thu, 20 Oct 2005, sv...@va... wrote: > Log: > Fix make dist (seems to work, but am unsure if this is the right fix). > > - shell_nonexec shell_nonexec.vgtest shell_nonexec.stderr.exp \ > - shell_nonexec shell_nonexec.vgtest shell_nonexec.stderr.exp \ > + shell_nonexec.vgtest shell_nonexec.stderr.exp \ It is, thanks. |
|
From: <sv...@va...> - 2005-10-20 17:04:04
|
Author: tom Date: 2005-10-20 18:03:53 +0100 (Thu, 20 Oct 2005) New Revision: 4959 Log: Document bug #114756. Modified: trunk/docs/internals/3_0_BUGSTATUS.txt Modified: trunk/docs/internals/3_0_BUGSTATUS.txt =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/docs/internals/3_0_BUGSTATUS.txt 2005-10-20 17:00:23 UTC (rev 4= 958) +++ trunk/docs/internals/3_0_BUGSTATUS.txt 2005-10-20 17:03:53 UTC (rev 4= 959) @@ -275,7 +275,13 @@ FIXED-TRUNK: 4916 FIXED-30BRANCH: TODO =20 +---------------------------------------------------------------- +114756 mbind syscall support =20 +FIXED-TRUNK: 4958 +FIXED-30BRANCH: TODO + + =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =3D=3D=3D Bugs targeted for 3.1.0 and 3.0.1 (all done, 3.0.1 released) = =3D=3D=3D =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D |
|
From: <sv...@va...> - 2005-10-20 17:00:35
|
Author: tom
Date: 2005-10-20 18:00:23 +0100 (Thu, 20 Oct 2005)
New Revision: 4958
Log:
Add support for the mbind system call on x86 and amd64. Fixes bug #114756=
.
Modified:
trunk/coregrind/m_syswrap/priv_syswrap-linux.h
trunk/coregrind/m_syswrap/syswrap-amd64-linux.c
trunk/coregrind/m_syswrap/syswrap-linux.c
trunk/coregrind/m_syswrap/syswrap-x86-linux.c
Modified: trunk/coregrind/m_syswrap/priv_syswrap-linux.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_syswrap/priv_syswrap-linux.h 2005-10-20 01:57:29 UT=
C (rev 4957)
+++ trunk/coregrind/m_syswrap/priv_syswrap-linux.h 2005-10-20 17:00:23 UT=
C (rev 4958)
@@ -85,6 +85,7 @@
DECL_TEMPLATE(linux, sys_io_submit);
DECL_TEMPLATE(linux, sys_io_cancel);
=20
+DECL_TEMPLATE(linux, sys_mbind);
DECL_TEMPLATE(linux, sys_set_mempolicy);
DECL_TEMPLATE(linux, sys_get_mempolicy);
=20
Modified: trunk/coregrind/m_syswrap/syswrap-amd64-linux.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_syswrap/syswrap-amd64-linux.c 2005-10-20 01:57:29 U=
TC (rev 4957)
+++ trunk/coregrind/m_syswrap/syswrap-amd64-linux.c 2005-10-20 17:00:23 U=
TC (rev 4958)
@@ -1463,7 +1463,7 @@
=20
// (__NR_utimes, sys_utimes), // 235=20
// (__NR_vserver, sys_ni_syscall), // 236=20
- // (__NR_mbind, sys_mbind), // 237=20
+ LINX_(__NR_mbind, sys_mbind), // 237=20
LINX_(__NR_set_mempolicy, sys_set_mempolicy), // 238=20
LINXY(__NR_get_mempolicy, sys_get_mempolicy), // 239
=20
Modified: trunk/coregrind/m_syswrap/syswrap-linux.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_syswrap/syswrap-linux.c 2005-10-20 01:57:29 UTC (re=
v 4957)
+++ trunk/coregrind/m_syswrap/syswrap-linux.c 2005-10-20 17:00:23 UTC (re=
v 4958)
@@ -852,6 +852,18 @@
*_mempolicy wrappers
------------------------------------------------------------------ */
=20
+PRE(sys_mbind)
+{
+ PRINT("sys_mbind ( %p, %lu, %d, %p, %lu, %u )", ARG1,ARG2,ARG3,ARG4,A=
RG5,ARG6);
+ PRE_REG_READ6(long, "mbind",
+ unsigned long, start, unsigned long, len,
+ unsigned long, policy, unsigned long *, nodemask,
+ unsigned long, maxnode, unsigned, flags);
+ if (ARG1 !=3D 0)
+ PRE_MEM_READ( "mbind(nodemask)", ARG4,
+ VG_ROUNDUP( ARG5, sizeof(UWord) ) / sizeof(UWord) );
+}
+
PRE(sys_set_mempolicy)
{
PRINT("sys_set_mempolicy ( %d, %p, %d )", ARG1,ARG2,ARG3);
Modified: trunk/coregrind/m_syswrap/syswrap-x86-linux.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_syswrap/syswrap-x86-linux.c 2005-10-20 01:57:29 UTC=
(rev 4957)
+++ trunk/coregrind/m_syswrap/syswrap-x86-linux.c 2005-10-20 17:00:23 UTC=
(rev 4958)
@@ -2272,8 +2272,8 @@
GENX_(__NR_utimes, sys_utimes), // 271
LINX_(__NR_fadvise64_64, sys_fadvise64_64), // 272 */(Linux?)
GENX_(__NR_vserver, sys_ni_syscall), // 273
-//zz // (__NR_mbind, sys_mbind), // 274 ?/?
-//zz=20
+ LINX_(__NR_mbind, sys_mbind), // 274 ?/?
+
LINXY(__NR_get_mempolicy, sys_get_mempolicy), // 275 ?/?
LINX_(__NR_set_mempolicy, sys_set_mempolicy), // 276 ?/?
LINXY(__NR_mq_open, sys_mq_open), // 277
|
|
From: <sv...@va...> - 2005-10-20 11:56:10
|
Author: sewardj
Date: 2005-10-20 12:56:00 +0100 (Thu, 20 Oct 2005)
New Revision: 1421
Log:
Unbreak build.
Modified:
trunk/switchback/switchback.c
Modified: trunk/switchback/switchback.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/switchback/switchback.c 2005-10-18 12:01:48 UTC (rev 1420)
+++ trunk/switchback/switchback.c 2005-10-20 11:56:00 UTC (rev 1421)
@@ -564,7 +564,7 @@
=3D LibVEX_Translate (=20
VexArch, &vai,
VexArch, &vai,
- ULong_to_Ptr(guest_addr), guest_addr,
+ ULong_to_Ptr(guest_addr), guest_addr, guest_addr,
chase_into_not_ok,
&trans_table[trans_table_used],
transbuf, N_TRANSBUF, &trans_used,
|
|
From: <js...@ac...> - 2005-10-20 02:50:10
|
Nightly build on phoenix ( SuSE 9.1 ) started at 2005-10-20 03:30:00 BST Checking out vex source tree ... done Building vex ... done Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 200 tests, 2 stderr failures, 0 stdout failures ================= none/tests/faultstatus (stderr) none/tests/x86/int (stderr) |
|
From: Tom H. <to...@co...> - 2005-10-20 02:40:24
|
Nightly build on dunsmere ( athlon, Fedora Core 4 ) started at 2005-10-20 03:30: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 == 202 tests, 12 stderr failures, 5 stdout failures ================= memcheck/tests/badaddrvalue (stdout) memcheck/tests/badaddrvalue (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/mempool (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/weirdioctl (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/xml1 (stderr) none/tests/faultstatus (stderr) none/tests/map_unmap (stdout) none/tests/map_unmap (stderr) none/tests/mremap2 (stdout) none/tests/sigstackgrowth (stdout) none/tests/sigstackgrowth (stderr) none/tests/stackgrowth (stdout) none/tests/stackgrowth (stderr) none/tests/x86/int (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 == 202 tests, 11 stderr failures, 4 stdout failures ================= memcheck/tests/leak-tree (stderr) memcheck/tests/mempool (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/weirdioctl (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/xml1 (stderr) none/tests/faultstatus (stderr) none/tests/map_unmap (stdout) none/tests/map_unmap (stderr) none/tests/mremap2 (stdout) none/tests/sigstackgrowth (stdout) none/tests/sigstackgrowth (stderr) none/tests/stackgrowth (stdout) none/tests/stackgrowth (stderr) none/tests/x86/int (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Thu Oct 20 03:35:15 2005 --- new.short Thu Oct 20 03:40:19 2005 *************** *** 8,10 **** ! == 202 tests, 11 stderr failures, 4 stdout failures ================= memcheck/tests/leak-tree (stderr) --- 8,12 ---- ! == 202 tests, 12 stderr failures, 5 stdout failures ================= ! memcheck/tests/badaddrvalue (stdout) ! memcheck/tests/badaddrvalue (stderr) memcheck/tests/leak-tree (stderr) |
|
From: Tom H. <th...@cy...> - 2005-10-20 02:27:51
|
Nightly build on alvis ( i686, Red Hat 7.3 ) started at 2005-10-20 03:15: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 == 201 tests, 16 stderr failures, 1 stdout failure ================= memcheck/tests/addressable (stderr) memcheck/tests/describe-block (stderr) memcheck/tests/erringfds (stderr) memcheck/tests/leak-0 (stderr) memcheck/tests/leak-cycle (stderr) memcheck/tests/leak-regroot (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/match-overrun (stderr) memcheck/tests/mempool (stderr) memcheck/tests/nanoleak (stderr) memcheck/tests/partiallydefinedeq (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/sigkill (stderr) memcheck/tests/stack_changes (stderr) none/tests/faultstatus (stderr) none/tests/x86/int (stderr) none/tests/x86/yield (stdout) ================================================= == 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 == 201 tests, 16 stderr failures, 0 stdout failures ================= memcheck/tests/addressable (stderr) memcheck/tests/describe-block (stderr) memcheck/tests/erringfds (stderr) memcheck/tests/leak-0 (stderr) memcheck/tests/leak-cycle (stderr) memcheck/tests/leak-regroot (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/match-overrun (stderr) memcheck/tests/mempool (stderr) memcheck/tests/nanoleak (stderr) memcheck/tests/partiallydefinedeq (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/sigkill (stderr) memcheck/tests/stack_changes (stderr) none/tests/faultstatus (stderr) none/tests/x86/int (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Thu Oct 20 03:21:27 2005 --- new.short Thu Oct 20 03:27:46 2005 *************** *** 8,10 **** ! == 201 tests, 16 stderr failures, 0 stdout failures ================= memcheck/tests/addressable (stderr) --- 8,10 ---- ! == 201 tests, 16 stderr failures, 1 stdout failure ================= memcheck/tests/addressable (stderr) *************** *** 25,26 **** --- 25,27 ---- none/tests/x86/int (stderr) + none/tests/x86/yield (stdout) |
|
From: Tom H. <th...@cy...> - 2005-10-20 02:21:01
|
Nightly build on dellow ( x86_64, Fedora Core 4 ) started at 2005-10-20 03:10:08 BST 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 == 176 tests, 7 stderr failures, 2 stdout failures ================= memcheck/tests/sigprocmask (stderr) memcheck/tests/strchr (stderr) memcheck/tests/weirdioctl (stderr) memcheck/tests/xml1 (stderr) none/tests/as_mmap (stderr) none/tests/as_shm (stdout) none/tests/as_shm (stderr) none/tests/faultstatus (stderr) none/tests/mremap2 (stdout) |
|
From: Tom H. <th...@cy...> - 2005-10-20 02:18:01
|
Nightly build on aston ( x86_64, Fedora Core 3 ) started at 2005-10-20 03:05:05 BST 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 == 176 tests, 7 stderr failures, 2 stdout failures ================= memcheck/tests/sigprocmask (stderr) memcheck/tests/strchr (stderr) memcheck/tests/weirdioctl (stderr) memcheck/tests/xml1 (stderr) none/tests/as_mmap (stderr) none/tests/as_shm (stdout) none/tests/as_shm (stderr) none/tests/faultstatus (stderr) none/tests/mremap2 (stdout) |
|
From: Tom H. <th...@cy...> - 2005-10-20 02:13:47
|
Nightly build on gill ( x86_64, Fedora Core 2 ) started at 2005-10-20 03:00:03 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 == 176 tests, 8 stderr failures, 2 stdout failures ================= memcheck/tests/sigprocmask (stderr) memcheck/tests/strchr (stderr) memcheck/tests/weirdioctl (stderr) memcheck/tests/xml1 (stderr) none/tests/as_mmap (stderr) none/tests/as_shm (stdout) none/tests/as_shm (stderr) none/tests/faultstatus (stderr) none/tests/fdleak_fcntl (stderr) none/tests/tls (stdout) ================================================= == 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 == 176 tests, 8 stderr failures, 1 stdout failure ================= memcheck/tests/sigprocmask (stderr) memcheck/tests/strchr (stderr) memcheck/tests/weirdioctl (stderr) memcheck/tests/xml1 (stderr) none/tests/as_mmap (stderr) none/tests/as_shm (stdout) none/tests/as_shm (stderr) none/tests/faultstatus (stderr) none/tests/fdleak_fcntl (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Thu Oct 20 03:04:28 2005 --- new.short Thu Oct 20 03:13:39 2005 *************** *** 8,10 **** ! == 176 tests, 8 stderr failures, 1 stdout failure ================= memcheck/tests/sigprocmask (stderr) --- 8,10 ---- ! == 176 tests, 8 stderr failures, 2 stdout failures ================= memcheck/tests/sigprocmask (stderr) *************** *** 18,19 **** --- 18,20 ---- none/tests/fdleak_fcntl (stderr) + none/tests/tls (stdout) |
|
From: <sv...@va...> - 2005-10-20 01:57:35
|
Author: sewardj
Date: 2005-10-20 02:57:29 +0100 (Thu, 20 Oct 2005)
New Revision: 4957
Log:
Increase the threshold above which new errors are not shown from 300
unique / 30000 total to 1000 unique / 100000 total. Programs are
generally bigger now than 3 years ago.
Modified:
trunk/coregrind/m_errormgr.c
trunk/docs/valgrind.1
trunk/docs/xml/manual-core.xml
trunk/memcheck/tests/x86/scalar.stderr.exp
Modified: trunk/coregrind/m_errormgr.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_errormgr.c 2005-10-20 01:37:15 UTC (rev 4956)
+++ trunk/coregrind/m_errormgr.c 2005-10-20 01:57:29 UTC (rev 4957)
@@ -51,16 +51,16 @@
=20
/* After this many different unsuppressed errors have been observed,
be more conservative about collecting new ones. */
-#define M_COLLECT_ERRORS_SLOWLY_AFTER 50
+#define M_COLLECT_ERRORS_SLOWLY_AFTER 100
=20
/* After this many different unsuppressed errors have been observed,
stop collecting errors at all, and tell the user their program is
evidently a steaming pile of camel dung. */
-#define M_COLLECT_NO_ERRORS_AFTER_SHOWN 300
+#define M_COLLECT_NO_ERRORS_AFTER_SHOWN 1000
=20
/* After this many total errors have been observed, stop collecting
errors at all. Counterpart to M_COLLECT_NO_ERRORS_AFTER_SHOWN. */
-#define M_COLLECT_NO_ERRORS_AFTER_FOUND 30000
+#define M_COLLECT_NO_ERRORS_AFTER_FOUND 100000
=20
/* The list of error contexts found, both suppressed and unsuppressed.
Initially empty, and grows as errors are detected. */
Modified: trunk/docs/valgrind.1
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/docs/valgrind.1 2005-10-20 01:37:15 UTC (rev 4956)
+++ trunk/docs/valgrind.1 2005-10-20 01:57:29 UTC (rev 4957)
@@ -137,8 +137,8 @@
.TP
.B
--error-limit=3D<yes|no> [default: yes]
-When enabled, \fBvalgrind\fP stops reporting errors after 30000 in total=
,
-or 300 different ones, have been seen. This is to stop the error trackin=
g
+When enabled, \fBvalgrind\fP stops reporting errors after 100000 in tota=
l,
+or 1000 different ones, have been seen. This is to stop the error tracki=
ng
machinery from becoming a huge performance overhead in programs with
many errors.
=20
Modified: trunk/docs/xml/manual-core.xml
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/docs/xml/manual-core.xml 2005-10-20 01:37:15 UTC (rev 4956)
+++ trunk/docs/xml/manual-core.xml 2005-10-20 01:57:29 UTC (rev 4957)
@@ -348,10 +348,10 @@
expensive one and can become a significant performance overhead
if your program generates huge quantities of errors. To avoid
serious problems here, Valgrind will simply stop collecting
-errors after 300 different errors have been seen, or 30000 errors
+errors after 1000 different errors have been seen, or 100000 errors
in total have been seen. In this situation you might as well
stop your program and fix it, because Valgrind won't tell you
-anything else useful after this. Note that the 300/30000 limits
+anything else useful after this. Note that the 1000/100000 limits
apply after suppressed errors are removed. These limits are
defined in <filename>m_errormgr.c</filename> and can be increased
if necessary.</para>
@@ -769,7 +769,7 @@
[default]</para>
<para><computeroutput>--error-limit=3Dno</computeroutput></para>
<para>When enabled, Valgrind stops reporting errors after
- 30000 in total, or 300 different ones, have been seen. This
+ 100000 in total, or 1000 different ones, have been seen. This
is to stop the error tracking machinery from becoming a huge
performance overhead in programs with many errors.</para>
</listitem>
Modified: trunk/memcheck/tests/x86/scalar.stderr.exp
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/memcheck/tests/x86/scalar.stderr.exp 2005-10-20 01:37:15 UTC (r=
ev 4956)
+++ trunk/memcheck/tests/x86/scalar.stderr.exp 2005-10-20 01:57:29 UTC (r=
ev 4957)
@@ -330,9 +330,6 @@
by 0x........: __libc_start_main (in /...libc...)
by 0x........: ...
=20
-More than 50 errors detected. Subsequent errors
-will still be recorded, but in less detail than before.
-
Syscall param mount(source) points to unaddressable byte(s)
at 0x........: syscall (in /...libc...)
by 0x........: __libc_start_main (in /...libc...)
@@ -708,6 +705,9 @@
55: __NR_fcntl (GETLK) 1s 0m
-----------------------------------------------------
=20
+More than 100 errors detected. Subsequent errors
+will still be recorded, but in less detail than before.
+
Syscall param fcntl(lock) contains uninitialised byte(s)
at 0x........: syscall (in /...libc...)
by 0x........: __libc_start_main (in /...libc...)
|
|
From: <sv...@va...> - 2005-10-20 01:37:20
|
Author: sewardj
Date: 2005-10-20 02:37:15 +0100 (Thu, 20 Oct 2005)
New Revision: 4956
Log:
Remove all remaining references to pointercheck. It's sad to see it
go, but realistically we can't implement it portably, at least without
considerable performance overhead and some additional complexity.
Modified:
trunk/coregrind/m_main.c
trunk/coregrind/m_options.c
trunk/coregrind/m_signals.c
trunk/coregrind/pub_core_options.h
trunk/docs/valgrind.1
trunk/docs/xml/manual-core.xml
trunk/none/tests/cmdline1.stdout.exp
trunk/none/tests/cmdline2.stdout.exp
Modified: trunk/coregrind/m_main.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_main.c 2005-10-20 01:09:57 UTC (rev 4955)
+++ trunk/coregrind/m_main.c 2005-10-20 01:37:15 UTC (rev 4956)
@@ -885,7 +885,6 @@
" --run-libc-freeres=3Dno|yes free up glibc memory at exit? [yes]\n"
" --simulation-hints=3Dhint1,hint2,... known hints:\n"
" lax-ioctls, enable-outer [none]\n"
-" --pointercheck=3Dno|yes enforce client address space limits [ye=
s]\n"
" --show-emwarns=3Dno|yes show warnings about emulation limits? [=
no]\n"
" --smc-check=3Dnone|stack|all checks for self-modifying code: none,=
\n"
" only for code found in stacks, or all [st=
ack]\n"
@@ -1091,7 +1090,6 @@
else VG_BOOL_CLO(arg, "--db-attach", VG_(clo_db_attach))
else VG_BOOL_CLO(arg, "--demangle", VG_(clo_demangle))
else VG_BOOL_CLO(arg, "--error-limit", VG_(clo_error_limit))
- else VG_BOOL_CLO(arg, "--pointercheck", VG_(clo_pointercheck))
else VG_BOOL_CLO(arg, "--show-emwarns", VG_(clo_show_emwarns))
else VG_NUM_CLO (arg, "--max-stackframe", VG_(clo_max_stackframe=
))
else VG_BOOL_CLO(arg, "--profile", VG_(clo_profile))
@@ -2479,15 +2477,6 @@
}
=20
//--------------------------------------------------------------
- // Setup pointercheck
- // p: layout_remaining_space() [for VG_(client_{base,end})]
- // p: process_cmd_line_options() [for VG_(clo_pointercheck)]
- //--------------------------------------------------------------
- //if (VG_(clo_pointercheck))
- // VG_(clo_pointercheck) =3D
- // VG_(setup_pointercheck)( VG_(client_base), VG_(client_end));
-
- //--------------------------------------------------------------
// register client stack
//--------------------------------------------------------------
VG_(clstk_id) =3D VG_(register_stack)(VG_(clstk_base), VG_(clstk_end)=
);
Modified: trunk/coregrind/m_options.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_options.c 2005-10-20 01:09:57 UTC (rev 4955)
+++ trunk/coregrind/m_options.c 2005-10-20 01:37:15 UTC (rev 4956)
@@ -71,7 +71,6 @@
Bool VG_(clo_run_libc_freeres) =3D True;
Bool VG_(clo_track_fds) =3D False;
Bool VG_(clo_show_below_main)=3D False;
-Bool VG_(clo_pointercheck) =3D True;
Bool VG_(clo_model_pthreads) =3D False;
Bool VG_(clo_show_emwarns) =3D False;
Int VG_(clo_max_stackframe) =3D 2000000;
Modified: trunk/coregrind/m_signals.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_signals.c 2005-10-20 01:09:57 UTC (rev 4955)
+++ trunk/coregrind/m_signals.c 2005-10-20 01:37:15 UTC (rev 4956)
@@ -999,12 +999,8 @@
/* General Protection Fault: The CPU/kernel
isn't telling us anything useful, but this
is commonly the result of exceeding a
- segment limit, such as the one imposed by
- --pointercheck=3Dyes. */
- if (VG_(clo_pointercheck))
- event =3D "GPF (Pointer out of bounds?)";=20
- else
- event =3D "General Protection Fault";=20
+ segment limit. */
+ event =3D "General Protection Fault";=20
haveaddr =3D False;
break;
}
Modified: trunk/coregrind/pub_core_options.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/pub_core_options.h 2005-10-20 01:09:57 UTC (rev 4955)
+++ trunk/coregrind/pub_core_options.h 2005-10-20 01:37:15 UTC (rev 4956)
@@ -135,9 +135,6 @@
extern Bool VG_(clo_run_libc_freeres);
/* Continue stack traces below main()? Default: NO */
extern Bool VG_(clo_show_below_main);
-/* Test each client pointer dereference to check it's within the
- client address space bounds */
-extern Bool VG_(clo_pointercheck);
/* Model the pthread library */
extern Bool VG_(clo_model_pthreads);
=20
Modified: trunk/docs/valgrind.1
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/docs/valgrind.1 2005-10-20 01:09:57 UTC (rev 4955)
+++ trunk/docs/valgrind.1 2005-10-20 01:37:15 UTC (rev 4956)
@@ -486,14 +486,6 @@
=20
.TP
.B
---pointercheck=3D<yes|no> [default: yes]
-When enabled, enforces client address space limits. If this option is
-disabled, the client program has full and unfettered access to the part
-of the address space used internally by \fBvalgrind\fP. This can cause
-unexplained crashes and false error reports, so it is best left enabled.
-
-.TP
-.B
--run-libc-freeres=3D<yes|no> [default: yes]
The GNU C library (libc.so), which is used by all programs, may allocate=
=20
memory for its own uses. Usually it doesn't bother to free that memory w=
hen=20
Modified: trunk/docs/xml/manual-core.xml
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/docs/xml/manual-core.xml 2005-10-20 01:09:57 UTC (rev 4955)
+++ trunk/docs/xml/manual-core.xml 2005-10-20 01:37:15 UTC (rev 4956)
@@ -1034,19 +1034,6 @@
</itemizedlist>
</listitem>
=20
- <listitem id=3D"pointer_check">
- <para><computeroutput>--pointercheck=3Dyes</computeroutput> [default=
]</para>
- <para><computeroutput>--pointercheck=3Dno</computeroutput></para>
- <para>This option make Valgrind generate a check on every memory
- reference to make sure it is within the client's part of the
- address space. This prevents stray writes from damaging
- Valgrind itself. On x86, this uses the CPU's segmentation
- machinery, and has almost no performance cost; there's almost
- never a reason to turn it off. On the other architectures this=20
- option is currently ignored as they don't have a cheap way of achiev=
ing
- the same functionality.</para>
- </listitem>
-
<listitem id=3D"show_emwarns">
<para><computeroutput>--show-emwarns=3Dno</computeroutput> [default]=
</para>
<para><computeroutput>--show-emwarns=3Dyes</computeroutput></para>
Modified: trunk/none/tests/cmdline1.stdout.exp
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/none/tests/cmdline1.stdout.exp 2005-10-20 01:09:57 UTC (rev 495=
5)
+++ trunk/none/tests/cmdline1.stdout.exp 2005-10-20 01:37:15 UTC (rev 495=
6)
@@ -20,7 +20,6 @@
--run-libc-freeres=3Dno|yes free up glibc memory at exit? [yes]
--simulation-hints=3Dhint1,hint2,... known hints:
lax-ioctls, enable-outer [none]
- --pointercheck=3Dno|yes enforce client address space limits [yes=
]
--show-emwarns=3Dno|yes show warnings about emulation limits? [n=
o]
--smc-check=3Dnone|stack|all checks for self-modifying code: none,
only for code found in stacks, or all [sta=
ck]
Modified: trunk/none/tests/cmdline2.stdout.exp
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/none/tests/cmdline2.stdout.exp 2005-10-20 01:09:57 UTC (rev 495=
5)
+++ trunk/none/tests/cmdline2.stdout.exp 2005-10-20 01:37:15 UTC (rev 495=
6)
@@ -20,7 +20,6 @@
--run-libc-freeres=3Dno|yes free up glibc memory at exit? [yes]
--simulation-hints=3Dhint1,hint2,... known hints:
lax-ioctls, enable-outer [none]
- --pointercheck=3Dno|yes enforce client address space limits [yes=
]
--show-emwarns=3Dno|yes show warnings about emulation limits? [n=
o]
--smc-check=3Dnone|stack|all checks for self-modifying code: none,
only for code found in stacks, or all [sta=
ck]
|
|
From: <sv...@va...> - 2005-10-20 01:09:59
|
Author: sewardj
Date: 2005-10-20 02:09:57 +0100 (Thu, 20 Oct 2005)
New Revision: 4955
Log:
The Spin-Doctor arrives in Valgrind-Land: rename --weird-hacks=3D to
--simulation-hints=3D. Bwaha.
Modified:
trunk/coregrind/m_main.c
trunk/coregrind/m_options.c
trunk/coregrind/m_syswrap/syswrap-generic.c
trunk/coregrind/pub_core_options.h
trunk/docs/valgrind.1
trunk/docs/xml/manual-core.xml
trunk/memcheck/tests/weirdioctl.c
trunk/none/tests/cmdline1.stdout.exp
trunk/none/tests/cmdline2.stdout.exp
Modified: trunk/coregrind/m_main.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_main.c 2005-10-20 00:31:31 UTC (rev 4954)
+++ trunk/coregrind/m_main.c 2005-10-20 01:09:57 UTC (rev 4955)
@@ -883,8 +883,8 @@
"\n"
" uncommon user options for all Valgrind tools:\n"
" --run-libc-freeres=3Dno|yes free up glibc memory at exit? [yes]\n"
-" --weird-hacks=3Dhack1,hack2,... known hacks: lax-ioctls\n"
-" enable-outer [none]\n"
+" --simulation-hints=3Dhint1,hint2,... known hints:\n"
+" lax-ioctls, enable-outer [none]\n"
" --pointercheck=3Dno|yes enforce client address space limits [ye=
s]\n"
" --show-emwarns=3Dno|yes show warnings about emulation limits? [=
no]\n"
" --smc-check=3Dnone|stack|all checks for self-modifying code: none,=
\n"
@@ -1111,7 +1111,7 @@
else VG_BOOL_CLO(arg, "--model-pthreads", VG_(clo_model_pthreads=
))
=20
else VG_STR_CLO (arg, "--db-command", VG_(clo_db_command))
- else VG_STR_CLO (arg, "--weird-hacks", VG_(clo_weird_hacks))
+ else VG_STR_CLO (arg, "--simulation-hints", VG_(clo_simulation_hin=
ts))
=20
else VG_NUM_CLO (arg, "--dump-error", VG_(clo_dump_error))
else VG_NUM_CLO (arg, "--input-fd", VG_(clo_input_fd))
Modified: trunk/coregrind/m_options.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_options.c 2005-10-20 00:31:31 UTC (rev 4954)
+++ trunk/coregrind/m_options.c 2005-10-20 01:09:57 UTC (rev 4955)
@@ -67,7 +67,7 @@
Bool VG_(clo_trace_pthreads) =3D False;
Int VG_(clo_dump_error) =3D 0;
Int VG_(clo_backtrace_size) =3D 12;
-Char* VG_(clo_weird_hacks) =3D NULL;
+Char* VG_(clo_simulation_hints) =3D NULL;
Bool VG_(clo_run_libc_freeres) =3D True;
Bool VG_(clo_track_fds) =3D False;
Bool VG_(clo_show_below_main)=3D False;
Modified: trunk/coregrind/m_syswrap/syswrap-generic.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_syswrap/syswrap-generic.c 2005-10-20 00:31:31 UTC (=
rev 4954)
+++ trunk/coregrind/m_syswrap/syswrap-generic.c 2005-10-20 01:09:57 UTC (=
rev 4955)
@@ -3857,7 +3857,7 @@
default: {
UInt dir =3D _VKI_IOC_DIR(ARG2);
UInt size =3D _VKI_IOC_SIZE(ARG2);
- if (VG_(strstr)(VG_(clo_weird_hacks), "lax-ioctls") !=3D NULL) {
+ if (VG_(strstr)(VG_(clo_simulation_hints), "lax-ioctls") !=3D NULL=
) {
/*=20
* Be very lax about ioctl handling; the only
* assumption is that the size is correct. Doesn't
@@ -4711,10 +4711,10 @@
PRE_REG_READ3(ssize_t, "write",
unsigned int, fd, const char *, buf, vki_size_t, count)=
;
/* check to see if it is allowed. If not, try for an exemption from
- --weird-hacks=3Denable-outer (used for self hosting). */
+ --simulation-hints=3Denable-outer (used for self hosting). */
ok =3D ML_(fd_allowed)(ARG1, "write", tid, False);
if (!ok && ARG1 =3D=3D 2/*stderr*/=20
- && VG_(strstr)(VG_(clo_weird_hacks),"enable-outer"))
+ && VG_(strstr)(VG_(clo_simulation_hints),"enable-outer"))
ok =3D True;
if (!ok)
SET_STATUS_Failure( VKI_EBADF );
Modified: trunk/coregrind/pub_core_options.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/pub_core_options.h 2005-10-20 00:31:31 UTC (rev 4954)
+++ trunk/coregrind/pub_core_options.h 2005-10-20 01:09:57 UTC (rev 4955)
@@ -122,14 +122,14 @@
/* Number of parents of a backtrace. Default: 8. */
extern Int VG_(clo_backtrace_size);
/* Engage miscellaneous weird hacks needed for some progs. */
-extern Char* VG_(clo_weird_hacks);
+extern Char* VG_(clo_simulation_hints);
=20
/* Track open file descriptors? */
extern Bool VG_(clo_track_fds);
=20
/* Should we run __libc_freeres at exit? Sometimes causes crashes.
Default: YES. Note this is subservient to VG_(needs).libc_freeres;
- if the latter says False, then the setting of VG_(clo_weird_hacks)
+ if the latter says False, then the setting of VG_(clo_run_libc_freere=
s)
is ignored. Ie if a tool says no, I don't want this to run, that
cannot be overridden from the command line. */
extern Bool VG_(clo_run_libc_freeres);
Modified: trunk/docs/valgrind.1
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/docs/valgrind.1 2005-10-20 00:31:31 UTC (rev 4954)
+++ trunk/docs/valgrind.1 2005-10-20 01:09:57 UTC (rev 4955)
@@ -521,11 +521,11 @@
=20
.TP
.B
---weird-hacks=3Dhack1,hack2,\.\.\.
+--simulation-hints=3Dhint1,hint2,\.\.\.
Pass miscellaneous hints to \fBvalgrind\fP which slightly modify the
simulated behaviour in nonstandard or dangerous ways, possibly to help
-the simulation of strange features. By default no hacks are enabled. Use
-with caution! Currently known hacks are:
+the simulation of strange features. By default no hints are enabled. Use
+with caution! Currently known hints are:
=20
.RS
.TP
Modified: trunk/docs/xml/manual-core.xml
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/docs/xml/manual-core.xml 2005-10-20 00:31:31 UTC (rev 4954)
+++ trunk/docs/xml/manual-core.xml 2005-10-20 01:09:57 UTC (rev 4955)
@@ -1009,13 +1009,13 @@
<computeroutput>libc.so</computeroutput>.</para>
</listitem>
=20
- <listitem id=3D"weird_hacks">
- <para><computeroutput>--weird-hacks=3Dhack1,hack2,...</computeroutpu=
t></para>
+ <listitem id=3D"simulation_hints">
+ <para><computeroutput>--simulation-hints=3Dhint1,hint2,...</computer=
output></para>
<para>Pass miscellaneous hints to Valgrind which slightly
modify the simulated behaviour in nonstandard or dangerous
ways, possibly to help the simulation of strange features.
- By default no hacks are enabled. Use with caution!
- Currently known hacks are:</para>
+ By default no hints are enabled. Use with caution!
+ Currently known hints are:</para>
<itemizedlist>
<listitem><para><computeroutput>lax-ioctls</computeroutput></para>
<para>Be very lax about ioctl handling; the only assumption
Modified: trunk/memcheck/tests/weirdioctl.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/memcheck/tests/weirdioctl.c 2005-10-20 00:31:31 UTC (rev 4954)
+++ trunk/memcheck/tests/weirdioctl.c 2005-10-20 01:09:57 UTC (rev 4955)
@@ -1,9 +1,9 @@
=20
/* A program which sets a readable fd to have a timeout, and therefore
- needs --weird-hacks=3Dioctl-VTIME in order to run without
+ needs --simulation-hints=3Dioctl-VTIME in order to run without
blocking.=20
=20
- [Nb: no longer true, since the ioctl-VTIME weird hack no longer exist=
s]
+ [Nb: no longer true, since the ioctl-VTIME hack no longer exists]
*/
=20
#include <stdio.h>
Modified: trunk/none/tests/cmdline1.stdout.exp
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/none/tests/cmdline1.stdout.exp 2005-10-20 00:31:31 UTC (rev 495=
4)
+++ trunk/none/tests/cmdline1.stdout.exp 2005-10-20 01:09:57 UTC (rev 495=
5)
@@ -18,8 +18,8 @@
=20
uncommon user options for all Valgrind tools:
--run-libc-freeres=3Dno|yes free up glibc memory at exit? [yes]
- --weird-hacks=3Dhack1,hack2,... known hacks: lax-ioctls
- enable-outer [none]
+ --simulation-hints=3Dhint1,hint2,... known hints:
+ lax-ioctls, enable-outer [none]
--pointercheck=3Dno|yes enforce client address space limits [yes=
]
--show-emwarns=3Dno|yes show warnings about emulation limits? [n=
o]
--smc-check=3Dnone|stack|all checks for self-modifying code: none,
Modified: trunk/none/tests/cmdline2.stdout.exp
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/none/tests/cmdline2.stdout.exp 2005-10-20 00:31:31 UTC (rev 495=
4)
+++ trunk/none/tests/cmdline2.stdout.exp 2005-10-20 01:09:57 UTC (rev 495=
5)
@@ -18,8 +18,8 @@
=20
uncommon user options for all Valgrind tools:
--run-libc-freeres=3Dno|yes free up glibc memory at exit? [yes]
- --weird-hacks=3Dhack1,hack2,... known hacks: lax-ioctls
- enable-outer [none]
+ --simulation-hints=3Dhint1,hint2,... known hints:
+ lax-ioctls, enable-outer [none]
--pointercheck=3Dno|yes enforce client address space limits [yes=
]
--show-emwarns=3Dno|yes show warnings about emulation limits? [n=
o]
--smc-check=3Dnone|stack|all checks for self-modifying code: none,
|
|
From: <sv...@va...> - 2005-10-20 00:31:36
|
Author: sewardj
Date: 2005-10-20 01:31:31 +0100 (Thu, 20 Oct 2005)
New Revision: 4954
Log:
In the spirit of other changes over the past month aimed at supporting
monster-sized programs better, increase the default freelist volume
from 1M to 5M. Maybe even that is too small.
Modified:
trunk/docs/valgrind.1
trunk/memcheck/docs/mc-manual.xml
trunk/memcheck/mac_shared.c
Modified: trunk/docs/valgrind.1
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/docs/valgrind.1 2005-10-20 00:30:30 UTC (rev 4953)
+++ trunk/docs/valgrind.1 2005-10-20 00:31:31 UTC (rev 4954)
@@ -308,7 +308,7 @@
=20
.TP
.B
---freelist-vol=3D<number> [default: 1000000]
+--freelist-vol=3D<number> [default: 5000000]
When the client program releases memory using free (in C) or delete
(C++), that memory is not immediately made available for re-allocation.
Instead it is marked inaccessible and placed in a queue of freed blocks.
Modified: trunk/memcheck/docs/mc-manual.xml
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/memcheck/docs/mc-manual.xml 2005-10-20 00:30:30 UTC (rev 4953)
+++ trunk/memcheck/docs/mc-manual.xml 2005-10-20 00:31:31 UTC (rev 4954)
@@ -120,7 +120,7 @@
=20
<listitem id=3D"freelist">
<para><computeroutput>--freelist-vol=3D<number></computeroutput>
- [default: 1000000]</para>
+ [default: 5000000]</para>
<para>When the client program releases memory using free (in
<literal>C</literal>) or delete (<literal>C++</literal>),
that memory is not immediately made available for
Modified: trunk/memcheck/mac_shared.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/memcheck/mac_shared.c 2005-10-20 00:30:30 UTC (rev 4953)
+++ trunk/memcheck/mac_shared.c 2005-10-20 00:31:31 UTC (rev 4954)
@@ -59,7 +59,7 @@
/*------------------------------------------------------------*/
=20
Bool MAC_(clo_partial_loads_ok) =3D True;
-Int MAC_(clo_freelist_vol) =3D 1000000;
+Int MAC_(clo_freelist_vol) =3D 5000000;
LeakCheckMode MAC_(clo_leak_check) =3D LC_Summary;
VgRes MAC_(clo_leak_resolution) =3D Vg_LowRes;
Bool MAC_(clo_show_reachable) =3D False;
@@ -101,7 +101,7 @@
" --leak-resolution=3Dlow|med|high how much bt merging in leak chec=
k [low]\n"
" --show-reachable=3Dno|yes show reachable blocks in leak ch=
eck? [no]\n"
" --partial-loads-ok=3Dno|yes too hard to explain here; see ma=
nual [yes]\n"
-" --freelist-vol=3D<number> volume of freed blocks queue [10=
00000]\n"
+" --freelist-vol=3D<number> volume of freed blocks queue [50=
00000]\n"
" --workaround-gcc296-bugs=3Dno|yes self explanatory [no]\n"
);
VG_(replacement_malloc_print_usage)();
|
|
From: <sv...@va...> - 2005-10-20 00:30:45
|
Author: sewardj Date: 2005-10-20 01:30:30 +0100 (Thu, 20 Oct 2005) New Revision: 4953 Log: Oops, un-break cachegrind regtesting following r4951. Modified: trunk/cachegrind/tests/filter_stderr Modified: trunk/cachegrind/tests/filter_stderr =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/cachegrind/tests/filter_stderr 2005-10-20 00:09:11 UTC (rev 495= 2) +++ trunk/cachegrind/tests/filter_stderr 2005-10-20 00:30:30 UTC (rev 495= 3) @@ -14,6 +14,6 @@ sed "s/\(\(I1\|D1\|L2\|L2i\|L2d\) *\(misses\|miss rate\):\)[ 0-9,()+rdw%= \.]*$/\1/" | =20 # Remove CPUID warnings lines for P4s and other machines -sed "/warning: Pentium with 12 K micro-op instruction trace cache/d" | -sed "/Simulating a 16 KB cache with 32 B lines/d" | +sed "/warning: Pentium 4 with 12 KB micro-op instruction trace cache/d" = | +sed "/Simulating a 16 KB I-cache with 32 B lines/d" | sed "/warning: L3 cache detected but ignored/d" |
|
From: <sv...@va...> - 2005-10-20 00:09:27
|
Author: sewardj Date: 2005-10-20 01:09:11 +0100 (Thu, 20 Oct 2005) New Revision: 4952 Log: rm the skiplist module, as it has been superseded by the AVL-tree based m_oset module. Removed: trunk/coregrind/m_skiplist.c trunk/coregrind/pub_core_skiplist.h trunk/include/pub_tool_skiplist.h Modified: trunk/coregrind/Makefile.am trunk/include/Makefile.am Modified: trunk/coregrind/Makefile.am =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/coregrind/Makefile.am 2005-10-19 23:49:45 UTC (rev 4951) +++ trunk/coregrind/Makefile.am 2005-10-20 00:09:11 UTC (rev 4952) @@ -59,7 +59,6 @@ pub_core_scheduler.h \ pub_core_sigframe.h \ pub_core_signals.h \ - pub_core_skiplist.h \ pub_core_stacks.h \ pub_core_stacktrace.h \ pub_core_syscall.h \ @@ -121,7 +120,6 @@ m_pthreadmodel.c \ m_redir.c \ m_signals.c \ - m_skiplist.c \ m_stacks.c \ m_stacktrace.c \ m_syscall.c \ Deleted: trunk/coregrind/m_skiplist.c =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/coregrind/m_skiplist.c 2005-10-19 23:49:45 UTC (rev 4951) +++ trunk/coregrind/m_skiplist.c 2005-10-20 00:09:11 UTC (rev 4952) @@ -1,511 +0,0 @@ - -/*--------------------------------------------------------------------*/ -/*--- A skiplist implementation. m_skiplist.c ---*/ -/*--------------------------------------------------------------------*/ - -/* - This file is part of Valgrind, a dynamic binary instrumentation - framework. - - Copyright (C) 2002-2005 Jeremy Fitzhardinge - je...@go... - - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307, USA. - - The GNU General Public License is contained in the file COPYING. -*/ - -/*=20 - This file implements a generic skip-list type. - - Skip-lists are described in William Pugh, Skip Lists: A - Probabilistic Alternative to Balanced Trees, CACM, 33(6):668-676, - June 1990.=20 - http://www.cs.unc.edu/~baruah/Teaching/2002f/HandOuts/skiplist-CACM.p= df - - Skip-lists are a randomized linked-list, where a node in the list - has at least one "next" pointer, but may have more. When - traversing the list, the "higher" next pointers allow you to skip - multiple list entries, allowing you to find the right place - quickly. =20 - - On average, 1/2 the entries have one next pointer, 1/4 have 2, 1/8 - have 3, etc. This means that the skiplist has the same search - complexity as a balanced binary tree, but there is no need to - rebalance or do any other structural changes. The randomness also - means that it is invulnerable to pathalogical workloads. - - Because the each node can be a different size, this implementation - puts the SkipNode structure at the end of the allocation, with the - node data starting at the beginning. - - low address ->+---------------+ ^ - | list data | | - key offset->: key : structure size - | | | - +---------------+ V - | struct | - | SkipNode | - +- - - - - - - -+ - | next pointers | - : : - - - When you declare the list with VG_SKIPLIST_INIT, you specify the - structure for each list node, structure member you want to use as a - key, and the function for comparing keys. - - Each node must be allocated with SkipNode_Alloc, which allocates - enough space for the client data, the SkipNode structure, and the - next pointers for this node. - - The helper functions data_of_node and node_of_data do the correct - pointer arithmetic to sort all this out. The SkipNode also has a - magic number which is checked after each operation to make sure - that we're really operating on a SkipNode. - - The first node of the list, the head node, is special. It contains - the maximum number of next pointers (SK_MAXHEIGHT). It has no data - associated with it, and it always compares less-than to all other - nodes. Because it has no data attached to it, it is always an - error to try and use data_of_node on it. To detect this problem, - it has a different magic number from all other SkipNodes so that it - won't be accidentally used. - */ - -#include "pub_core_basics.h" -#include "pub_core_libcbase.h" -#include "pub_core_libcassert.h" -#include "pub_core_libcprint.h" -#include "pub_core_mallocfree.h" -#include "pub_core_skiplist.h" - -#define SKIPLIST_DEBUG 0 - -#define SK_MAXHEIGHT 20 /* 2^20 elements */ -#define SKIPLIST_MAGIC 0x5b1ff872 -#define SKIPLIST_HEAD_MAGIC (~SKIPLIST_MAGIC) - - -#if SKIPLIST_DEBUG -#define inline -#endif /* SKIPLIST_DEBUG */ - -struct _SkipNode { - UInt magic; - UShort level; /* level is the max level (level =3D=3D 0 means 1 next= pointer) */ - SkipNode *next[0]; -}; - - -/*=20 - Compute the height of a new node. 1/2 will be 1, 1/4 2, 1/8 3, - etc. - */ -static inline Int get_height(void) -{ - UInt ret =3D 0; - - while((ret < SK_MAXHEIGHT - 1) && (VG_(random)(NULL) & 1)) - ret++; - - return ret; -} - -/*=20 - Given a pointer to the node's data, return a pointer to the key. - */ -static inline void *key_of_data(const SkipList *l, void *d) -{ - return (void *)((Char *)d + l->keyoff); -} - -/*=20 - Given a pointer to the node's data, return the pointer to the SkipNod= e - structure. If the node has a bad magic number, it will die with an - assertion failure. - */ -static inline SkipNode *node_of_data(const SkipList *l, const void *d) -{ - SkipNode *n =3D (SkipNode *)((Char *)d + l->size); - - if (SKIPLIST_DEBUG && n->magic !=3D SKIPLIST_MAGIC) - VG_(printf)("bad magic on node %p =3D %x (not %x)\n", - n, n->magic, SKIPLIST_MAGIC); - - vg_assert(n->magic =3D=3D SKIPLIST_MAGIC); - - return n;=20 -} - -/*=20 - Given a SkipNode structure, return the pointer to the node's data. - */ -static inline void *data_of_node(const SkipList *l, const SkipNode *n) -{ - if (SKIPLIST_DEBUG && n->magic !=3D SKIPLIST_MAGIC) - VG_(printf)("bad magic on node %p =3D %x (not %x)\n", - n, n->magic, SKIPLIST_MAGIC); - - vg_assert(n->magic =3D=3D SKIPLIST_MAGIC); - return (void *)((Char *)n - l->size); -} - -/*=20 - Given a SkipNode structure, return the pointer to the node's key. - */ -static inline void *key_of_node(const SkipList *l, const SkipNode *n) -{ - return key_of_data(l, data_of_node(l, n)); -} - -static inline void validate_skiplist(const SkipList *l, const Char *wher= e) -{ -#if SKIPLIST_DEBUG - const SkipNode *prev[SK_MAXHEIGHT]; - Int i; - const SkipNode *n, *next; - =20 - VG_(printf)("---------------- %s ----------------\n", where); - - if (l->head =3D=3D NULL) - return; - - for(i =3D 0; i <=3D l->head->level; i++) { - VG_(printf)("l->head->next[%d]=3D%p\n", - i, l->head->next[i]); - prev[i] =3D l->head->next[i]; - } - - for(n =3D l->head->next[0]; n !=3D NULL; n =3D next) { - next =3D n->next[0]; - - VG_(printf)("n=3D%p next=3D%p, n->level=3D%d k=3D%s\n", - n, next, n->level, (*l->strkey)(key_of_node(l, n))); - for(i =3D 0; i <=3D n->level; i++) { - VG_(printf)(" n->next[%d] =3D %p\n", - i, n->next[i]); - VG_(printf)(" prev[%d] =3D %p\n", - i, prev[i]); - } - =20 - vg_assert(l->head->level >=3D n->level); - - for(i =3D 0; i <=3D n->level; i++) - vg_assert(prev[i] =3D=3D n); - - for(i =3D 0; i <=3D n->level; i++) - prev[i] =3D n->next[i]; - - vg_assert(next =3D=3D NULL || (l->cmp)(key_of_node(l, n), key_of_n= ode(l, next)) < 0); - } -#endif /* SKIPLIST_DEBUG */ -} - -void *VG_(SkipNode_Alloc)(const SkipList *l) -{ - UInt size; - Int h; - SkipNode *n; - Char *ret; - - h =3D get_height(); - - size =3D l->size; - size +=3D sizeof(SkipNode) + (h+1)*sizeof(SkipNode *); - - if (l->arena =3D=3D -1) - *(Short *)&l->arena =3D VG_AR_TOOL; - - ret =3D VG_(arena_malloc)(l->arena, size); - - if (ret =3D=3D NULL) - return NULL; - - n =3D (SkipNode *)(ret + l->size); - n->level =3D h; - n->magic =3D SKIPLIST_MAGIC; - - VG_(memset)(n->next, 0, sizeof(n->next[0]) * (h+1)); - - return ret; -} - -void VG_(SkipNode_Free)(const SkipList *l, void *p) -{ - if (SKIPLIST_DEBUG) { - SkipNode *n =3D node_of_data(l, p); - - VG_(printf)("SkipNode_Free: freeing %p (node %p)\n", - p, n); - n->magic =3D 0x55ffaabb; - } - VG_(arena_free)(l->arena, p); -} - -void *VG_(SkipNode_First)(const SkipList *l) -{ - SkipNode *n =3D l->head ? l->head->next[0] : NULL; - - if (n =3D=3D NULL) - return NULL; - else - return data_of_node(l, n); -} - -void *VG_(SkipNode_Next)(const SkipList *l, void *data) -{ - SkipNode *n =3D node_of_data(l, data); - =20 - n =3D n->next[0]; - - if (n =3D=3D NULL) - return NULL; - - return data_of_node(l, n); -} - - - -static Int cmp(const SkipList *l, SkipNode *n, void *k2) -{ - void *k1 =3D key_of_node(l, n); - - if (k1 =3D=3D k2) - return 0; - - if (l->head =3D=3D n) - return -1; - - return (l->cmp)(k1, k2); -} - -/* Search the list for k; it either returns the k if it exists, or the - one before if not. */ -static SkipNode *SkipList__Find(const SkipList *l, void *k, SkipNode **p= revs) -{ - SkipNode *n; - Int lvl; - - if (SKIPLIST_DEBUG) - VG_(printf)("SkipList__Find: finding %s\n", (*l->strkey)(k)); - - validate_skiplist(l, "SkipList__Find"); - - if (l->head =3D=3D NULL) - return NULL; - - for(lvl =3D l->head->level, n =3D l->head; lvl >=3D 0; lvl--) { - while(n->next[lvl] !=3D NULL && cmp(l, n->next[lvl], k) < 0) { - if (SKIPLIST_DEBUG) - VG_(printf)("SkipList__Find: n=3D%p n->next[%d]=3D%p\n", - n, lvl, n->next[lvl]); - n =3D n->next[lvl]; - } - if (prevs) - prevs[lvl] =3D n; - } - - /* XXX Is there a cleaner way of getting this?=20 - =20 - If we get an exact match, return it. - If we get the head, return NULL. - Otherwise return the one before where the hit would be. - */ - if (n->next[0] !=3D NULL && cmp(l, n->next[0], k) =3D=3D 0) - n =3D n->next[0]; - if (n =3D=3D l->head) - n =3D NULL; - - if (SKIPLIST_DEBUG) { - - VG_(printf)("SkipList__Find returning node %p\n", n); - - if (n =3D=3D NULL) { - SkipNode *nn; - - for(nn =3D l->head->next[0]; nn !=3D NULL; nn =3D nn->next[0]) - vg_assert(cmp(l, nn, k) !=3D 0); - } else - vg_assert(cmp(l, n, k) <=3D 0); - } - - return n; -} - -/* Return list element which is <=3D k, or NULL if there is none. */ -void *VG_(SkipList_Find_Before)(const SkipList *l, void *k) -{ - SkipNode *n =3D SkipList__Find(l, k, NULL); - - if (n !=3D NULL) - return data_of_node(l, n); - return NULL; -} - -/* Return the list element which =3D=3D k, or NULL if none */ -void *VG_(SkipList_Find_Exact)(const SkipList *l, void *k) -{ - SkipNode *n =3D SkipList__Find(l, k, NULL); - - if (n !=3D NULL && (l->cmp)(key_of_node(l, n), k) =3D=3D 0) - return data_of_node(l, n); - return NULL; -} - -/* Return the list element which is >=3D k, or NULL if none */ -void *VG_(SkipList_Find_After)(const SkipList *l, void *k) -{ - SkipNode *n =3D SkipList__Find(l, k, NULL); - - if (n !=3D NULL && (l->cmp)(key_of_node(l, n), k) < 0) - n =3D n->next[0]; - - if (n !=3D NULL) - return data_of_node(l, n); - - return NULL; -} - -void VG_(SkipList_Insert)(SkipList *l, void *data) -{ - SkipNode *update[SK_MAXHEIGHT]; - SkipNode *n, *nn; - void *k =3D key_of_data(l, data); - Int i; - - if (SKIPLIST_DEBUG) - VG_(printf)("inserting node %p, key %s, height %d\n", - data, (*l->strkey)(key_of_data(l, data)), node_of_data(l, data)->lev= el); - - validate_skiplist(l, "SkipList_Insert before"); - - if (l->head =3D=3D NULL) { - Int size =3D sizeof(SkipNode) + sizeof(SkipNode *) * SK_MAXHEIGHT; - - if (l->arena =3D=3D -1) - *(Short *)&l->arena =3D VG_AR_TOOL; - =20 - l->head =3D VG_(arena_malloc)(l->arena, size); - VG_(memset)(l->head, 0, size); - - l->head->magic =3D SKIPLIST_HEAD_MAGIC; - l->head->level =3D 0; - } - - n =3D node_of_data(l, data); - - /* update size of head's next vector to fit this new node */ - vg_assert(l->head !=3D NULL); - if (l->head->level < n->level) { - for(i =3D l->head->level+1; i <=3D n->level; i++) - l->head->next[i] =3D NULL; - l->head->level =3D n->level; - } - - /* Look for the node, but we're mostly interested in setting - "update", which is the set of previous nodes with next pointers - we need to fix up. */ - nn =3D SkipList__Find(l, k, update); - =20 - /* check the new entry is unique */ - vg_assert(nn =3D=3D NULL || (l->cmp)(key_of_node(l, nn), k) !=3D 0); - - /* update the previous node's next pointers */ - for(i =3D 0; i <=3D n->level; i++) { - n->next[i] =3D update[i]->next[i]; - update[i]->next[i] =3D n; - } - - validate_skiplist(l, "SkipList_Insert after"); -} - -void *VG_(SkipList_Remove)(SkipList *l, void *k) -{ - SkipNode *update[SK_MAXHEIGHT]; - SkipNode *n; - Int i; - =20 - validate_skiplist(l, "SkipList_Remove before"); - - n =3D SkipList__Find(l, k, update); - if (n =3D=3D NULL) - return NULL; - - vg_assert((l->cmp)(k, key_of_node(l, n)) =3D=3D 0); - - for(i =3D 0; i <=3D n->level; i++) { - update[i]->next[i] =3D n->next[i]; - n->next[i] =3D NULL; - } - - validate_skiplist(l, "SkipList_Remove after"); - - return data_of_node(l, n); -} - - -/* -------------------------------------------------- - Comparison functions - -------------------------------------------------- */ -Int VG_(cmp_Int)(const void *v1, const void *v2) -{ - Int a =3D *(const Int *)v1; - Int b =3D *(const Int *)v2; - - if (a < b) - return -1; - if (a =3D=3D b) - return 0; - return 1; -} - -Int VG_(cmp_UInt)(const void *v1, const void *v2) -{ - UInt a =3D *(const UInt *)v1; - UInt b =3D *(const UInt *)v2; - - if (a < b) - return -1; - if (a =3D=3D b) - return 0; - return 1; -} - -Int VG_(cmp_Addr)(const void *v1, const void *v2) -{ - Addr a =3D *(const Addr *)v1; - Addr b =3D *(const Addr *)v2; - - if (a < b) - return -1; - if (a =3D=3D b) - return 0; - return 1; -} - -Int VG_(cmp_string)(const void *v1, const void *v2) -{ - const Char *a =3D *(const Char **)v1; - const Char *b =3D *(const Char **)v2; - - return VG_(strcmp)(a, b); -} - -/*--------------------------------------------------------------------*/ -/*--- end ---*/ -/*--------------------------------------------------------------------*/ - Deleted: trunk/coregrind/pub_core_skiplist.h =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/coregrind/pub_core_skiplist.h 2005-10-19 23:49:45 UTC (rev 4951= ) +++ trunk/coregrind/pub_core_skiplist.h 2005-10-20 00:09:11 UTC (rev 4952= ) @@ -1,47 +0,0 @@ - -/*--------------------------------------------------------------------*/ -/*--- A skip-list implemenation. pub_core_skiplist.h ---*/ -/*--------------------------------------------------------------------*/ - -/* - This file is part of Valgrind, a dynamic binary instrumentation - framework. - - Copyright (C) 2000-2005 Julian Seward - js...@ac... - - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307, USA. - - The GNU General Public License is contained in the file COPYING. -*/ - -#ifndef __PUB_CORE_SKIPLIST_H -#define __PUB_CORE_SKIPLIST_H - -//-------------------------------------------------------------------- -// PURPOSE: A generic data structure with amortised log(n) operations. -//-------------------------------------------------------------------- - -#include "pub_tool_skiplist.h" - -// No core-only exports; everything in this module is visible to both -// the core and tools. - -#endif // __PUB_CORE_SKIPLIST_H - -/*--------------------------------------------------------------------*/ -/*--- end ---*/ -/*--------------------------------------------------------------------*/ Modified: trunk/include/Makefile.am =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/include/Makefile.am 2005-10-19 23:49:45 UTC (rev 4951) +++ trunk/include/Makefile.am 2005-10-20 00:09:11 UTC (rev 4952) @@ -25,7 +25,6 @@ pub_tool_redir.h \ pub_tool_replacemalloc.h \ pub_tool_signals.h \ - pub_tool_skiplist.h \ pub_tool_stacktrace.h \ pub_tool_threadstate.h \ pub_tool_tooliface.h \ Deleted: trunk/include/pub_tool_skiplist.h =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- trunk/include/pub_tool_skiplist.h 2005-10-19 23:49:45 UTC (rev 4951) +++ trunk/include/pub_tool_skiplist.h 2005-10-20 00:09:11 UTC (rev 4952) @@ -1,122 +0,0 @@ - -/*--------------------------------------------------------------------*/ -/*--- SkipList: a skiplist implementaiton. pub_tool_skiplist.h ---*/ -/*--------------------------------------------------------------------*/ - -/* - This file is part of Valgrind, a dynamic binary instrumentation - framework. - - Copyright (C) 2000-2005 Julian Seward - js...@ac... - - This program is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public License as - published by the Free Software Foundation; either version 2 of the - License, or (at your option) any later version. - - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307, USA. - - The GNU General Public License is contained in the file COPYING. -*/ - -#ifndef __PUB_TOOL_SKIPLIST_H -#define __PUB_TOOL_SKIPLIST_H - -/*=20 - The idea here is that the skiplist puts its per-element data at the - end of the structure. When you initialize the skiplist, you tell - it what structure your list elements are going to be. Then you - should allocate them with VG_(SkipNode_Alloc), which will allocate - enough memory for the extra bits. - */ - -typedef struct _SkipList SkipList; -typedef struct _SkipNode SkipNode; - -typedef Int (*SkipCmp_t)(const void *key1, const void *key2); - -struct _SkipList { - const Short arena; // allocation arena - const UShort size; // structure size (excluding Skip= Node) - const UShort keyoff; // key offset - const SkipCmp_t cmp; // compare two keys - Char * (*strkey)(void *); // stringify a key (for debugging= ) - SkipNode *head; // list head -}; - -/* Use this macro to initialize your skiplist head: - _type is the type of your element structure - _key is the field within that type which you want to use as the key - _cmp is the comparison function for keys - it gets two typeof(_key)=20 - pointers as args - _strkey is a function which can return a string of your key - it's on= ly - used for debugging - _arena is the arena to use for allocation - -1 is the default - */ -#define VG_SKIPLIST_INIT(_type, _key, _cmp, _strkey, _arena) \ - { \ - .arena =3D _arena, \ - .size =3D sizeof(_type), \ - .keyoff =3D offsetof(_type, _key), \ - .cmp =3D _cmp, \ - .strkey =3D _strkey, \ - .head =3D NULL, \ - } - -/* List operations: - SkipList_Find_* search a list. The 3 variants are: - Before: returns a node which is <=3D key, or NULL if none - Exact: returns a node which is =3D=3D key, or NULL if none - After: returns a node which is >=3D key, or NULL if none - SkipList_Insert inserts a new element into the list. Duplicates are - forbidden. The element must have been created with SkipNode_Alloc= ! - SkipList_Remove removes an element from the list and returns it. It - doesn't free the memory. -*/ -extern void *VG_(SkipList_Find_Before) (const SkipList *l, void *key); -extern void *VG_(SkipList_Find_Exact) (const SkipList *l, void *key); -extern void *VG_(SkipList_Find_After) (const SkipList *l, void *key); -extern void VG_(SkipList_Insert) ( SkipList *l, void *data); -extern void *VG_(SkipList_Remove) ( SkipList *l, void *key); - -/* Some useful standard comparisons */ -extern Int VG_(cmp_Addr) (const void *a, const void *b); -extern Int VG_(cmp_Int) (const void *a, const void *b); -extern Int VG_(cmp_UInt) (const void *a, const void *b); -extern Int VG_(cmp_string)(const void *a, const void *b); - -/* Node (element) operations: - SkipNode_Alloc: allocate memory for a new element on the list. Must = be - used before an element can be inserted! Returns NULL if not enoug= h - memory. - SkipNode_Free: free memory allocated above - SkipNode_First: return the first element on the list - SkipNode_Next: return the next element after "data" on the list -=20 - NULL for none - - You can iterate through a SkipList like this: - - for (x =3D VG_(SkipNode_First)(&list); - x !=3D NULL; - x =3D VG_(SkipNode_Next)(&list, x)) { ... } -*/ -extern void *VG_(SkipNode_Alloc) (const SkipList *l); -extern void VG_(SkipNode_Free) (const SkipList *l, void *p); -extern void *VG_(SkipNode_First) (const SkipList *l); -extern void *VG_(SkipNode_Next) (const SkipList *l, void *data); - - -#endif // __PUB_TOOL_SKIPLIST_H - -/*--------------------------------------------------------------------*/ -/*--- end ---*/ -/*--------------------------------------------------------------------*/ |