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: Nicholas N. <nj...@cs...> - 2005-10-06 19:31:42
|
On Thu, 6 Oct 2005, Nicholas Nethercote wrote: >>> + <para>Valgrind handles dynamically generated code without a problem. >> >> But only until such time as the Java implementation or whatever starts >> throwing away code it made and overwriting the area with new code. Then >> V will have stale translations of it. In general dealing with dynamically >> generated code in an uncooperative environment (x86,amd64) requires >> --smc-check=all, no? (On ppc32 V naturally observes the icbi insns >> that should be issued by the Java JIT and so it should Just Work (tm)). > > Ah crap, you're right. And I guess we need to use --smc-check=all when self-hosting unless we're confident the code cache won't get full. Nick |
|
From: <sv...@va...> - 2005-10-06 19:30:47
|
Author: njn
Date: 2005-10-06 20:30:40 +0100 (Thu, 06 Oct 2005)
New Revision: 4884
Log:
Clarify FAQ and Java and JITs.
Modified:
trunk/docs/xml/FAQ.xml
Modified: trunk/docs/xml/FAQ.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/FAQ.xml 2005-10-06 18:58:33 UTC (rev 4883)
+++ trunk/docs/xml/FAQ.xml 2005-10-06 19:30:40 UTC (rev 4884)
@@ -183,19 +183,34 @@
=20
<qandaentry id=3D"faq.java">
<question>
- <para>I tried running a Java program under Valgrind but Valgrind abort=
ed.
- Does Valgrind handle Java programs, dynamically generated code, etc?
+ <para>I tried running a Java program (or another program that uses a
+ just-in-time compiler) under Valgrind but something went wrong.
+ Does Valgrind handle such programs?
</para>
</question>
<answer>
- <para>Valgrind handles dynamically generated code without a problem.
- In theory, Valgrind can run any Java program just fine, even those t=
hat
- use JNI and are partially implemented in other languages like C and =
C++.
- In practice, Java implementations tend to do nasty things that most
- programs do not, and Valgrind sometimes falls over these corner
- cases.</para>
- <para>If your Java programs do not run under Valgrind, please file a
- bug report and hopefully we'll be able to fix the problem.</para>
+ <para>Valgrind can handle dynamically generated code, so long as none
+ of the generated code is later overwritten by other generated code.
+ If this happens, though, things will go wrong as Valgrind will conti=
nue
+ running its translations of the old code (this is true on x86 and AM=
D64,
+ on PPC32 there are explicit cache flush instructions which Valgrind
+ detects). You should try running with
+ <computeroutput>--smc-check=3Dall</computeroutput> in this case; Va=
lgrind
+ will run much more slowly, but should detect the use of the out-of-d=
ate
+ code.</para>
+ <para>Alternativaly, if you have the source code to the JIT compiler y=
ou
+ can insert calls to the
+ <computeroutput>VALGRIND_DISCARD_TRANSLATIONS</computeroutput> clien=
t
+ request to mark out-of-date code, saving you from using
+ <computeroutput>--smc-check=3Dall</computeroutput>.</para>
+ <para>Apart from this, in theory Valgrind can run any Java program jus=
t
+ fine, even those that use JNI and are partially implemented in other
+ languages like C and C++. In practice, Java implementations tend to=
do
+ nasty things that most programs do not, and Valgrind sometimes falls
+ over these corner cases.</para>
+ <para>If your Java programs do not run under Valgrind, even with
+ <computeroutput>--smc-check=3Dall</computeroutput>, please file a bu=
g
+ report and hopefully we'll be able to fix the problem.</para>
</answer>
</qandaentry>
=20
|
|
From: Nicholas N. <nj...@cs...> - 2005-10-06 19:14:59
|
On Thu, 6 Oct 2005, Julian Seward wrote: >> + <para>Valgrind handles dynamically generated code without a problem. > > But only until such time as the Java implementation or whatever starts > throwing away code it made and overwriting the area with new code. Then > V will have stale translations of it. In general dealing with dynamically > generated code in an uncooperative environment (x86,amd64) requires > --smc-check=all, no? (On ppc32 V naturally observes the icbi insns > that should be issued by the Java JIT and so it should Just Work (tm)). Ah crap, you're right. N |
|
From: Julian S. <js...@ac...> - 2005-10-06 19:10:36
|
> + <para>Valgrind handles dynamically generated code without a problem. But only until such time as the Java implementation or whatever starts throwing away code it made and overwriting the area with new code. Then V will have stale translations of it. In general dealing with dynamically generated code in an uncooperative environment (x86,amd64) requires --smc-check=all, no? (On ppc32 V naturally observes the icbi insns that should be issued by the Java JIT and so it should Just Work (tm)). J |
|
From: <sv...@va...> - 2005-10-06 18:58:40
|
Author: njn Date: 2005-10-06 19:58:33 +0100 (Thu, 06 Oct 2005) New Revision: 4883 Log: Added an FAQ about Java. Modified: trunk/docs/xml/FAQ.xml Modified: trunk/docs/xml/FAQ.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/FAQ.xml 2005-10-06 14:49:21 UTC (rev 4882) +++ trunk/docs/xml/FAQ.xml 2005-10-06 18:58:33 UTC (rev 4883) @@ -181,6 +181,24 @@ </answer> </qandaentry> =20 +<qandaentry id=3D"faq.java"> + <question> + <para>I tried running a Java program under Valgrind but Valgrind abort= ed. + Does Valgrind handle Java programs, dynamically generated code, etc? + </para> + </question> + <answer> + <para>Valgrind handles dynamically generated code without a problem. + In theory, Valgrind can run any Java program just fine, even those t= hat + use JNI and are partially implemented in other languages like C and = C++. + In practice, Java implementations tend to do nasty things that most + programs do not, and Valgrind sometimes falls over these corner + cases.</para> + <para>If your Java programs do not run under Valgrind, please file a + bug report and hopefully we'll be able to fix the problem.</para> + </answer> +</qandaentry> + </qandaset> </sect1> =20 |
|
From: <sv...@va...> - 2005-10-06 14:49:28
|
Author: tom
Date: 2005-10-06 15:49:21 +0100 (Thu, 06 Oct 2005)
New Revision: 4882
Log:
When looking for a heap segment to extend look for the heap limit
address rather than the base address as the heap may have been split
into more than one segment by using mprotect on it...
Modified:
trunk/coregrind/m_syswrap/syswrap-generic.c
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-06 12:06:03 UTC (=
rev 4881)
+++ trunk/coregrind/m_syswrap/syswrap-generic.c 2005-10-06 14:49:21 UTC (=
rev 4882)
@@ -952,7 +952,10 @@
}
=20
/* otherwise we're expanding the brk segment. */
- aseg =3D VG_(am_find_nsegment)( VG_(brk_base) );
+ if (VG_(brk_limit) > VG_(brk_base))
+ aseg =3D VG_(am_find_nsegment)( VG_(brk_limit)-1 );
+ else
+ aseg =3D VG_(am_find_nsegment)( VG_(brk_limit) );
rseg =3D VG_(am_next_nsegment)( aseg, True/*forwards*/ );
=20
/* These should be assured by setup_client_dataseg in m_main. */
|
|
From: <sv...@va...> - 2005-10-06 12:06:05
|
Author: tom Date: 2005-10-06 13:06:03 +0100 (Thu, 06 Oct 2005) New Revision: 4881 Log: Document memalign fix. 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-06 12:05:06 UTC (rev 4= 880) +++ trunk/docs/internals/3_0_BUGSTATUS.txt 2005-10-06 12:06:03 UTC (rev 4= 881) @@ -79,11 +79,6 @@ FIXED-TRUNK: unconfirmed (insufficient info from reporter) =20 ---------------------------------------------------------------- -112538 memalign crash - -FIXED-TRUNK: uninvestigated - ----------------------------------------------------------------- 112670 Cachegrind: cg_main.c:486 (handleOneStatement ... =20 FIXED-TRUNK: the canonical cachegrind-doesn-like-multi-mem bug @@ -247,6 +242,12 @@ FIXED-30BRANCH: TODO =20 ---------------------------------------------------------------- +112538 memalign crash + +FIXED-TRUNK: 4879 +FIXED-30BRANCH: 4880 + +---------------------------------------------------------------- 113190 Broken links in docs/html/ =20 FIXED-TRUNK: vg:4778 |
|
From: <sv...@va...> - 2005-10-06 12:05:15
|
Author: tom
Date: 2005-10-06 13:05:06 +0100 (Thu, 06 Oct 2005)
New Revision: 4880
Log:
Merge memalign fix from trunk to stable branch.
Modified:
branches/VALGRIND_3_0_BRANCH/coregrind/m_mallocfree.c
Modified: branches/VALGRIND_3_0_BRANCH/coregrind/m_mallocfree.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
--- branches/VALGRIND_3_0_BRANCH/coregrind/m_mallocfree.c 2005-10-06 12:0=
4:26 UTC (rev 4879)
+++ branches/VALGRIND_3_0_BRANCH/coregrind/m_mallocfree.c 2005-10-06 12:0=
5:06 UTC (rev 4880)
@@ -1151,6 +1151,10 @@
base_p =3D VG_(arena_malloc) ( aid, base_pszB_req );
a->bytes_on_loan =3D saved_bytes_on_loan;
=20
+ /* Give up if we couldn't allocate enough space */
+ if (base_p =3D=3D 0)
+ return 0;
+
/* Block ptr for the block we are going to split. */
base_b =3D get_payload_block ( a, base_p );
=20
|
|
From: <sv...@va...> - 2005-10-06 12:04:33
|
Author: tom
Date: 2005-10-06 13:04:26 +0100 (Thu, 06 Oct 2005)
New Revision: 4879
Log:
Stop memalign crashing if it fails to allocate the memory. Bug 112538.
Modified:
trunk/coregrind/m_mallocfree.c
Modified: trunk/coregrind/m_mallocfree.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_mallocfree.c 2005-10-06 09:15:20 UTC (rev 4878)
+++ trunk/coregrind/m_mallocfree.c 2005-10-06 12:04:26 UTC (rev 4879)
@@ -1200,6 +1200,10 @@
base_p =3D VG_(arena_malloc) ( aid, base_pszB_req );
a->bytes_on_loan =3D saved_bytes_on_loan;
=20
+ /* Give up if we couldn't allocate enough space */
+ if (base_p =3D=3D 0)
+ return 0;
+
/* Block ptr for the block we are going to split. */
base_b =3D get_payload_block ( a, base_p );
=20
|
|
From: <sv...@va...> - 2005-10-06 09:15:23
|
Author: tom Date: 2005-10-06 10:15:20 +0100 (Thu, 06 Oct 2005) New Revision: 4878 Log: The amd64 BOUND bug turned out to be bogus. 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-06 09:07:14 UTC (rev 4= 877) +++ trunk/docs/internals/3_0_BUGSTATUS.txt 2005-10-06 09:15:20 UTC (rev 4= 878) @@ -79,12 +79,6 @@ FIXED-TRUNK: unconfirmed (insufficient info from reporter) =20 ---------------------------------------------------------------- -112432 vex amd64->IR: unhandled instruction bytes: 0x4F 0x62 0x6A 0x65 - (bound, possibly invalid bug) - -FIXED-TRUNK: TODO - ----------------------------------------------------------------- 112538 memalign crash =20 FIXED-TRUNK: uninvestigated |
|
From: <sv...@va...> - 2005-10-06 09:07:21
|
Author: tom Date: 2005-10-06 10:07:14 +0100 (Thu, 06 Oct 2005) New Revision: 4877 Log: Document realloc fix. 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-06 09:06:59 UTC (rev 4= 876) +++ trunk/docs/internals/3_0_BUGSTATUS.txt 2005-10-06 09:07:14 UTC (rev 4= 877) @@ -156,6 +156,14 @@ =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D =20 ---------------------------------------------------------------- +102202 valgrind crashes when realloc'ing until out of memory +109487 =3D=3D +110536 =3D=3D + +FIXED-TRUNK: 4875 +FIXED-30BRANCH: 4876 + +---------------------------------------------------------------- 110209 --show-emwarns misses some =20 Tom says: The math/test-fenv.c file in the glibc source is the code in |
|
From: <sv...@va...> - 2005-10-06 09:07:04
|
Author: tom
Date: 2005-10-06 10:06:59 +0100 (Thu, 06 Oct 2005)
New Revision: 4876
Log:
Merge realloc fixes from trunk to stable branch.
Modified:
branches/VALGRIND_3_0_BRANCH/helgrind/hg_main.c
branches/VALGRIND_3_0_BRANCH/massif/ms_main.c
branches/VALGRIND_3_0_BRANCH/memcheck/mac_malloc_wrappers.c
Modified: branches/VALGRIND_3_0_BRANCH/helgrind/hg_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
--- branches/VALGRIND_3_0_BRANCH/helgrind/hg_main.c 2005-10-06 09:00:17 U=
TC (rev 4875)
+++ branches/VALGRIND_3_0_BRANCH/helgrind/hg_main.c 2005-10-06 09:06:59 U=
TC (rev 4876)
@@ -1964,7 +1964,6 @@
{
HG_Chunk *hc;
HG_Chunk **prev_chunks_next_ptr;
- Int i;
=20
/* First try and find the block. */
hc =3D (HG_Chunk*)VG_(HT_get_node) ( hg_malloc_list, (UWord)p,
@@ -1992,22 +1991,23 @@
/* Get new memory */
p_new =3D (Addr)VG_(cli_malloc)(VG_(clo_alignment), new_size);
=20
- /* First half kept and copied, second half new */
- copy_address_range_state( (Addr)p, p_new, hc->size );
- hg_new_mem_heap ( p_new+hc->size, new_size-hc->size,
- /*inited*/False );
+ if (p_new) {
+ /* First half kept and copied, second half new */
+ copy_address_range_state( (Addr)p, p_new, hc->size );
+ hg_new_mem_heap ( p_new+hc->size, new_size-hc->size,
+ /*inited*/False );
=20
- /* Copy from old to new */
- for (i =3D 0; i < hc->size; i++)
- ((UChar*)p_new)[i] =3D ((UChar*)p)[i];
+ /* Copy from old to new */
+ VG_(memcpy)((void *)p_new, p, hc->size);
=20
- /* Free old memory */
- die_and_free_mem ( tid, hc, prev_chunks_next_ptr );
+ /* Free old memory */
+ die_and_free_mem ( tid, hc, prev_chunks_next_ptr );
=20
- /* this has to be after die_and_free_mem, otherwise the
- former succeeds in shorting out the new block, not the
- old, in the case when both are on the same list. */
- add_HG_Chunk ( tid, p_new, new_size );
+ /* this has to be after die_and_free_mem, otherwise the
+ former succeeds in shorting out the new block, not the
+ old, in the case when both are on the same list. */
+ add_HG_Chunk ( tid, p_new, new_size );
+ }
=20
return (void*)p_new;
} =20
Modified: branches/VALGRIND_3_0_BRANCH/massif/ms_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
--- branches/VALGRIND_3_0_BRANCH/massif/ms_main.c 2005-10-06 09:00:17 UTC=
(rev 4875)
+++ branches/VALGRIND_3_0_BRANCH/massif/ms_main.c 2005-10-06 09:06:59 UTC=
(rev 4876)
@@ -823,24 +823,28 @@
// new size is bigger; make new block, copy shared contents, free=
old
p_new =3D VG_(cli_malloc)(VG_(clo_alignment), new_size);
=20
- for (i =3D 0; i < old_size; i++)
- ((UChar*)p_new)[i] =3D ((UChar*)p_old)[i];
+ if (p_new) {
+ for (i =3D 0; i < old_size; i++)
+ ((UChar*)p_new)[i] =3D ((UChar*)p_old)[i];
=20
- VG_(cli_free)(p_old);
+ VG_(cli_free)(p_old);
+ }
}
- =20
- old_where =3D hc->where;
- new_where =3D get_XCon( tid, /*custom_malloc*/False);
=20
- // Update HP_Chunk
- hc->data =3D (Addr)p_new;
- hc->size =3D new_size;
- hc->where =3D new_where;
+ if (p_new) {
+ old_where =3D hc->where;
+ new_where =3D get_XCon( tid, /*custom_malloc*/False);
=20
- // Update XPt curr_space fields
- if (clo_heap) {
- if (0 !=3D old_size) update_XCon(old_where, -old_size);
- if (0 !=3D new_size) update_XCon(new_where, new_size);
+ // Update HP_Chunk
+ hc->data =3D (Addr)p_new;
+ hc->size =3D new_size;
+ hc->where =3D new_where;
+
+ // Update XPt curr_space fields
+ if (clo_heap) {
+ if (0 !=3D old_size) update_XCon(old_where, -old_size);
+ if (0 !=3D new_size) update_XCon(new_where, new_size);
+ }
}
=20
// If block has moved, have to remove and reinsert in the malloclist
Modified: branches/VALGRIND_3_0_BRANCH/memcheck/mac_malloc_wrappers.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
--- branches/VALGRIND_3_0_BRANCH/memcheck/mac_malloc_wrappers.c 2005-10-0=
6 09:00:17 UTC (rev 4875)
+++ branches/VALGRIND_3_0_BRANCH/memcheck/mac_malloc_wrappers.c 2005-10-0=
6 09:06:59 UTC (rev 4876)
@@ -421,25 +421,27 @@
/* Get new memory */
p_new =3D (Addr)VG_(cli_malloc)(VG_(clo_alignment), new_size);
=20
- /* First half kept and copied, second half new,=20
- red zones as normal */
- MAC_(ban_mem_heap) ( p_new-MAC_MALLOC_REDZONE_SZB, MAC_MALLOC_REDZ=
ONE_SZB );
- MAC_(copy_mem_heap)( (Addr)p, p_new, mc->size );
- MAC_(new_mem_heap) ( p_new+mc->size, new_size-mc->size, /*inited*/=
False );
- MAC_(ban_mem_heap) ( p_new+new_size, MAC_MALLOC_REDZONE_SZB );
+ if (p_new) {
+ /* First half kept and copied, second half new,=20
+ red zones as normal */
+ MAC_(ban_mem_heap) ( p_new-MAC_MALLOC_REDZONE_SZB, MAC_MALLOC_R=
EDZONE_SZB );
+ MAC_(copy_mem_heap)( (Addr)p, p_new, mc->size );
+ MAC_(new_mem_heap) ( p_new+mc->size, new_size-mc->size, /*inite=
d*/False );
+ MAC_(ban_mem_heap) ( p_new+new_size, MAC_MALLOC_REDZONE_SZB );
=20
- /* Copy from old to new */
- for (i =3D 0; i < mc->size; i++)
- ((UChar*)p_new)[i] =3D ((UChar*)p)[i];
+ /* Copy from old to new */
+ for (i =3D 0; i < mc->size; i++)
+ ((UChar*)p_new)[i] =3D ((UChar*)p)[i];
=20
- /* Free old memory */
- die_and_free_mem ( tid, mc, prev_chunks_next_ptr, MAC_MALLOC_REDZO=
NE_SZB );
+ /* Free old memory */
+ die_and_free_mem ( tid, mc, prev_chunks_next_ptr, MAC_MALLOC_RE=
DZONE_SZB );
=20
- /* this has to be after die_and_free_mem, otherwise the
- former succeeds in shorting out the new block, not the
- old, in the case when both are on the same list. */
- add_MAC_Chunk ( tid, p_new, new_size,=20
- MAC_AllocMalloc, MAC_(malloc_list) );
+ /* this has to be after die_and_free_mem, otherwise the
+ former succeeds in shorting out the new block, not the
+ old, in the case when both are on the same list. */
+ add_MAC_Chunk ( tid, p_new, new_size,=20
+ MAC_AllocMalloc, MAC_(malloc_list) );
+ }
=20
VGP_POPCC(VgpCliMalloc);
return (void*)p_new;
|
|
From: <sv...@va...> - 2005-10-06 09:00:21
|
Author: tom
Date: 2005-10-06 10:00:17 +0100 (Thu, 06 Oct 2005)
New Revision: 4875
Log:
Fix realloc wrappers to handle the out of memory case properly - if
the call to VG_(cli_malloc) returns NULL then don't try and copy the
data or register a new block and just leave the old block in place
instead, but still return NULL to the caller.
Fixes bug 109487 and it's duplicates.
Modified:
trunk/helgrind/hg_main.c
trunk/massif/ms_main.c
trunk/memcheck/mac_malloc_wrappers.c
Modified: trunk/helgrind/hg_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/helgrind/hg_main.c 2005-10-06 03:32:42 UTC (rev 4874)
+++ trunk/helgrind/hg_main.c 2005-10-06 09:00:17 UTC (rev 4875)
@@ -1977,7 +1977,6 @@
{
HG_Chunk *hc;
HG_Chunk **prev_chunks_next_ptr;
- Int i;
=20
/* First try and find the block. */
hc =3D (HG_Chunk*)VG_(HT_get_node) ( hg_malloc_list, (UWord)p,
@@ -2005,22 +2004,23 @@
/* Get new memory */
p_new =3D (Addr)VG_(cli_malloc)(VG_(clo_alignment), new_size);
=20
- /* First half kept and copied, second half new */
- copy_address_range_state( (Addr)p, p_new, hc->size );
- hg_new_mem_heap ( p_new+hc->size, new_size-hc->size,
- /*inited*/False );
+ if (p_new) {
+ /* First half kept and copied, second half new */
+ copy_address_range_state( (Addr)p, p_new, hc->size );
+ hg_new_mem_heap ( p_new+hc->size, new_size-hc->size,
+ /*inited*/False );
=20
- /* Copy from old to new */
- for (i =3D 0; i < hc->size; i++)
- ((UChar*)p_new)[i] =3D ((UChar*)p)[i];
+ /* Copy from old to new */
+ VG_(memcpy)((void *)p_new, p, hc->size);
=20
- /* Free old memory */
- die_and_free_mem ( tid, hc, prev_chunks_next_ptr );
+ /* Free old memory */
+ die_and_free_mem ( tid, hc, prev_chunks_next_ptr );
=20
- /* this has to be after die_and_free_mem, otherwise the
- former succeeds in shorting out the new block, not the
- old, in the case when both are on the same list. */
- add_HG_Chunk ( tid, p_new, new_size );
+ /* this has to be after die_and_free_mem, otherwise the
+ former succeeds in shorting out the new block, not the
+ old, in the case when both are on the same list. */
+ add_HG_Chunk ( tid, p_new, new_size );
+ }
=20
return (void*)p_new;
} =20
Modified: trunk/massif/ms_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/massif/ms_main.c 2005-10-06 03:32:42 UTC (rev 4874)
+++ trunk/massif/ms_main.c 2005-10-06 09:00:17 UTC (rev 4875)
@@ -802,22 +802,26 @@
} else {
// new size is bigger; make new block, copy shared contents, free=
old
p_new =3D VG_(cli_malloc)(VG_(clo_alignment), new_size);
- VG_(memcpy)(p_new, p_old, old_size);
- VG_(cli_free)(p_old);
+ if (p_new) {
+ VG_(memcpy)(p_new, p_old, old_size);
+ VG_(cli_free)(p_old);
+ }
}
- =20
- old_where =3D hc->where;
- new_where =3D get_XCon( tid, /*custom_malloc*/False);
=20
- // Update HP_Chunk
- hc->data =3D (Addr)p_new;
- hc->size =3D new_size;
- hc->where =3D new_where;
+ if (p_new) {
+ old_where =3D hc->where;
+ new_where =3D get_XCon( tid, /*custom_malloc*/False);
=20
- // Update XPt curr_space fields
- if (clo_heap) {
- if (0 !=3D old_size) update_XCon(old_where, -old_size);
- if (0 !=3D new_size) update_XCon(new_where, new_size);
+ // Update HP_Chunk
+ hc->data =3D (Addr)p_new;
+ hc->size =3D new_size;
+ hc->where =3D new_where;
+
+ // Update XPt curr_space fields
+ if (clo_heap) {
+ if (0 !=3D old_size) update_XCon(old_where, -old_size);
+ if (0 !=3D new_size) update_XCon(new_where, new_size);
+ }
}
=20
// Now insert the new hc (with a possibly new 'data' field) into
Modified: trunk/memcheck/mac_malloc_wrappers.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_malloc_wrappers.c 2005-10-06 03:32:42 UTC (rev 487=
4)
+++ trunk/memcheck/mac_malloc_wrappers.c 2005-10-06 09:00:17 UTC (rev 487=
5)
@@ -390,23 +390,26 @@
/* Get new memory */
Addr a_new =3D (Addr)VG_(cli_malloc)(VG_(clo_alignment), new_size)=
;
=20
- /* First half kept and copied, second half new, red zones as norma=
l */
- MAC_(ban_mem_heap) ( a_new-MAC_MALLOC_REDZONE_SZB, MAC_MALLOC_REDZ=
ONE_SZB );
- MAC_(copy_mem_heap)( (Addr)p_old, a_new, mc->size );
- MAC_(new_mem_heap) ( a_new+mc->size, new_size-mc->size, /*init'd*/=
False );
- MAC_(ban_mem_heap) ( a_new+new_size, MAC_MALLOC_REDZONE_SZB );
+ if (a_new) {
+ /* First half kept and copied, second half new, red zones as no=
rmal */
+ MAC_(ban_mem_heap) ( a_new-MAC_MALLOC_REDZONE_SZB, MAC_MALLOC_R=
EDZONE_SZB );
+ MAC_(copy_mem_heap)( (Addr)p_old, a_new, mc->size );
+ MAC_(new_mem_heap) ( a_new+mc->size, new_size-mc->size, /*init'=
d*/False );
+ MAC_(ban_mem_heap) ( a_new+new_size, MAC_MALLOC_REDZONE_SZB );
=20
- /* Copy from old to new */
- VG_(memcpy)((void*)a_new, p_old, mc->size);
+ /* Copy from old to new */
+ VG_(memcpy)((void*)a_new, p_old, mc->size);
=20
- /* Free old memory */
- /* Nb: we have to allocate a new MAC_Chunk for the new memory rath=
er
- than recycling the old one, so that any erroneous accesses to t=
he
- old memory are reported. */
- die_and_free_mem ( tid, mc, MAC_MALLOC_REDZONE_SZB );
+ /* Free old memory */
+ /* Nb: we have to allocate a new MAC_Chunk for the new memory r=
ather
+ than recycling the old one, so that any erroneous accesses t=
o the
+ old memory are reported. */
+ die_and_free_mem ( tid, mc, MAC_MALLOC_REDZONE_SZB );
=20
- // Allocate a new chunk.
- mc =3D create_MAC_Chunk( tid, a_new, new_size, MAC_AllocMalloc );
+ // Allocate a new chunk.
+ mc =3D create_MAC_Chunk( tid, a_new, new_size, MAC_AllocMalloc =
);
+ }
+
p_new =3D (void*)a_new;
} =20
=20
|
|
From: <sv...@va...> - 2005-10-06 03:32:46
|
Author: njn
Date: 2005-10-06 04:32:42 +0100 (Thu, 06 Oct 2005)
New Revision: 4874
Log:
Changed some overflow-prone counters from UInt to ULong.
Changed some printf specifiers accordingly, plus some more that were
incorrect.
Also put commas in various output numbers, eg. the leak check stats. =20
This makes them much easier to read when they get big. One
exception is in XML number-only fields such as <leakedbytes>.
Modified:
trunk/coregrind/m_execontext.c
trunk/coregrind/m_scheduler/scheduler.c
trunk/coregrind/m_transtab.c
trunk/memcheck/mac_leakcheck.c
trunk/memcheck/mac_malloc_wrappers.c
trunk/memcheck/mac_shared.c
trunk/memcheck/mac_shared.h
trunk/memcheck/tests/describe-block.stderr.exp
trunk/memcheck/tests/exitprog.stderr.exp
trunk/memcheck/tests/filter_leak_check_size
trunk/memcheck/tests/memalign_test.stderr.exp
trunk/memcheck/tests/mempool.stderr.exp
trunk/memcheck/tests/mempool.stderr.exp64
trunk/memcheck/tests/nanoleak.stderr.exp
trunk/memcheck/tests/pointer-trace.stderr.exp
trunk/memcheck/tests/pointer-trace.stderr.exp2
trunk/memcheck/tests/pointer-trace.stderr.exp64
trunk/memcheck/tests/trivialleak.stderr.exp
Modified: trunk/coregrind/m_execontext.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_execontext.c 2005-10-06 03:19:49 UTC (rev 4873)
+++ trunk/coregrind/m_execontext.c 2005-10-06 03:32:42 UTC (rev 4874)
@@ -64,18 +64,18 @@
=20
/* Stats only: the number of times the system was searched to locate a
context. */
-static UInt ec_searchreqs;
+static ULong ec_searchreqs;
=20
/* Stats only: the number of full context comparisons done. */
-static UInt ec_searchcmps;
+static ULong ec_searchcmps;
=20
/* Stats only: total number of stored contexts. */
-static UInt ec_totstored;
+static ULong ec_totstored;
=20
/* Number of 2, 4 and (fast) full cmps done. */
-static UInt ec_cmp2s;
-static UInt ec_cmp4s;
-static UInt ec_cmpAlls;
+static ULong ec_cmp2s;
+static ULong ec_cmp4s;
+static ULong ec_cmpAlls;
=20
=20
/*------------------------------------------------------------*/
@@ -107,20 +107,18 @@
{
init_ExeContext_storage();
VG_(message)(Vg_DebugMsg,=20
- " exectx: %d lists, %d contexts (avg %d per list)",
- N_EC_LISTS, ec_totstored,=20
- ec_totstored / N_EC_LISTS=20
+ " exectx: %,lu lists, %,llu contexts (avg %,llu per list)",
+ N_EC_LISTS, ec_totstored, ec_totstored / N_EC_LISTS=20
);
VG_(message)(Vg_DebugMsg,=20
- " exectx: %d searches, %d full compares (%d per 1000)",
+ " exectx: %,llu searches, %,llu full compares (%,llu per 1000)",
ec_searchreqs, ec_searchcmps,=20
ec_searchreqs =3D=3D 0=20
- ? 0=20
- : (UInt)( (((ULong)ec_searchcmps) * 1000)=20
- / ((ULong)ec_searchreqs ))=20
+ ? 0L=20
+ : ( (ec_searchcmps * 1000) / ec_searchreqs )=20
);
VG_(message)(Vg_DebugMsg,=20
- " exectx: %d cmp2, %d cmp4, %d cmpAll",
+ " exectx: %,llu cmp2, %,llu cmp4, %,llu cmpAll",
ec_cmp2s, ec_cmp4s, ec_cmpAlls=20
);
}
Modified: trunk/coregrind/m_scheduler/scheduler.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_scheduler/scheduler.c 2005-10-06 03:19:49 UTC (rev =
4873)
+++ trunk/coregrind/m_scheduler/scheduler.c 2005-10-06 03:32:42 UTC (rev =
4874)
@@ -113,8 +113,8 @@
static void mostly_clear_thread_record ( ThreadId tid );
=20
/* Stats. */
-static UInt n_scheduling_events_MINOR =3D 0;
-static UInt n_scheduling_events_MAJOR =3D 0;
+static ULong n_scheduling_events_MINOR =3D 0;
+static ULong n_scheduling_events_MAJOR =3D 0;
=20
/* Sanity checking counts. */
static UInt sanity_fast_count =3D 0;
@@ -123,9 +123,9 @@
void VG_(print_scheduler_stats)(void)
{
VG_(message)(Vg_DebugMsg,
- "scheduler: %llu jumps (bb entries).", bbs_done );
+ "scheduler: %,llu jumps (bb entries).", bbs_done );
VG_(message)(Vg_DebugMsg,
- "scheduler: %d/%d major/minor sched events.",=20
+ "scheduler: %,llu/%,llu major/minor sched events.",=20
n_scheduling_events_MAJOR, n_scheduling_events_MINOR);
VG_(message)(Vg_DebugMsg,=20
" sanity: %d cheap, %d expensive checks.",
Modified: trunk/coregrind/m_transtab.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_transtab.c 2005-10-06 03:19:49 UTC (rev 4873)
+++ trunk/coregrind/m_transtab.c 2005-10-06 03:32:42 UTC (rev 4874)
@@ -703,23 +703,23 @@
void VG_(print_tt_tc_stats) ( void )
{
VG_(message)(Vg_DebugMsg,
- " tt/tc: %llu tt lookups requiring %llu probes",=20
+ " tt/tc: %,llu tt lookups requiring %,llu probes",=20
n_full_lookups, n_lookup_probes );
VG_(message)(Vg_DebugMsg,
- " tt/tc: %llu fast-cache updates, %llu flushes",=20
+ " tt/tc: %,llu fast-cache updates, %,llu flushes",=20
n_fast_updates, n_fast_flushes );
=20
VG_(message)(Vg_DebugMsg,
- "translate: new %lld "
- "(%lld -> %lld; ratio %lld:10) [%lld scs]",
+ "translate: new %,lld "
+ "(%,llu -> %,llu; ratio %,llu:10) [%,llu scs]",
n_in_count, n_in_osize, n_in_tsize,
safe_idiv(10*n_in_tsize, n_in_osize),
n_in_sc_count);
VG_(message)(Vg_DebugMsg,
- "translate: dumped %lld (%lld -> ?" "?)",
+ "translate: dumped %,llu (%,llu -> ?" "?)",
n_dump_count, n_dump_osize );
VG_(message)(Vg_DebugMsg,
- "translate: discarded %lld (%lld -> ?" "?)",
+ "translate: discarded %,llu (%,llu -> ?" "?)",
n_disc_count, n_disc_osize );
}
=20
Modified: trunk/memcheck/mac_leakcheck.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_leakcheck.c 2005-10-06 03:19:49 UTC (rev 4873)
+++ trunk/memcheck/mac_leakcheck.c 2005-10-06 03:32:42 UTC (rev 4874)
@@ -144,8 +144,8 @@
/* Their reachability. */
Reachedness loss_mode;
/* Number of blocks and total # bytes involved. */
- UInt total_bytes;
- UInt indirect_bytes;
+ SizeT total_bytes;
+ SizeT indirect_bytes;
UInt num_blocks;
}
LossRecord;
@@ -281,8 +281,8 @@
=20
if (l->indirect_bytes) {
VG_(message)(Vg_UserMsg,=20
- "%s%d (%d direct, %d indirect) bytes in %d blocks"
- " are %s in loss record %d of %d%s",
+ "%s%,lu (%,lu direct, %,lu indirect) bytes in %,u blocks"
+ " are %s in loss record %,u of %,u%s",
xpre,
l->total_bytes + l->indirect_bytes,=20
l->total_bytes, l->indirect_bytes, l->num_blocks,
@@ -290,15 +290,16 @@
xpost
);
if (VG_(clo_xml)) {
- VG_(message)(Vg_UserMsg, " <leakedbytes>%d</leakedbytes>",=20
+ // Nb: don't put commas in these XML numbers=20
+ VG_(message)(Vg_UserMsg, " <leakedbytes>%lu</leakedbytes>",=20
l->total_bytes + l->indirect_bytes);
- VG_(message)(Vg_UserMsg, " <leakedblocks>%d</leakedblocks>",=20
+ VG_(message)(Vg_UserMsg, " <leakedblocks>%u</leakedblocks>",=20
l->num_blocks);
}
} else {
VG_(message)(
Vg_UserMsg,=20
- "%s%d bytes in %d blocks are %s in loss record %d of %d%s",
+ "%s%,lu bytes in %,u blocks are %s in loss record %,u of %,u%s"=
,
xpre,
l->total_bytes, l->num_blocks,
loss, extra->n_this_record, extra->n_total_records,
@@ -314,11 +315,11 @@
VG_(pp_ExeContext)(l->allocated_at);
}
=20
-Int MAC_(bytes_leaked) =3D 0;
-Int MAC_(bytes_indirect) =3D 0;
-Int MAC_(bytes_dubious) =3D 0;
-Int MAC_(bytes_reachable) =3D 0;
-Int MAC_(bytes_suppressed) =3D 0;
+SizeT MAC_(bytes_leaked) =3D 0;
+SizeT MAC_(bytes_indirect) =3D 0;
+SizeT MAC_(bytes_dubious) =3D 0;
+SizeT MAC_(bytes_reachable) =3D 0;
+SizeT MAC_(bytes_suppressed) =3D 0;
=20
static Int lc_compar(void* n1, void* n2)
{
@@ -497,11 +498,11 @@
}
}
=20
-static Int blocks_leaked;
-static Int blocks_indirect;
-static Int blocks_dubious;
-static Int blocks_reachable;
-static Int blocks_suppressed;
+static SizeT blocks_leaked;
+static SizeT blocks_indirect;
+static SizeT blocks_dubious;
+static SizeT blocks_reachable;
+static SizeT blocks_suppressed;
=20
static void full_report(ThreadId tid)
{
@@ -577,7 +578,7 @@
for (i =3D 0; i < n_lossrecords; i++) {
Bool print_record;
LossRecord* p_min =3D NULL;
- UInt n_min =3D 0xFFFFFFFF;
+ SizeT n_min =3D ~(0x0L);
for (p =3D errlist; p !=3D NULL; p =3D p->next) {
if (p->num_blocks > 0 && p->total_bytes < n_min) {
n_min =3D p->total_bytes + p->indirect_bytes;
@@ -715,7 +716,7 @@
=20
if (VG_(clo_verbosity) > 0 && !VG_(clo_xml))
VG_(message)(Vg_UserMsg,=20
- "searching for pointers to %d not-freed blocks.",=20
+ "searching for pointers to %,d not-freed blocks.",=20
lc_n_shadows );
=20
lc_min_mallocd_addr =3D lc_shadows[0]->data;
@@ -773,7 +774,7 @@
lc_do_leakcheck(-1);
=20
if (VG_(clo_verbosity) > 0 && !VG_(clo_xml))
- VG_(message)(Vg_UserMsg, "checked %d bytes.", lc_scanned);
+ VG_(message)(Vg_UserMsg, "checked %,lu bytes.", lc_scanned);
=20
blocks_leaked =3D MAC_(bytes_leaked) =3D 0;
blocks_indirect =3D MAC_(bytes_indirect) =3D 0;
@@ -789,16 +790,16 @@
if (VG_(clo_verbosity) > 0 && !VG_(clo_xml)) {
VG_(message)(Vg_UserMsg, "");
VG_(message)(Vg_UserMsg, "LEAK SUMMARY:");
- VG_(message)(Vg_UserMsg, " definitely lost: %d bytes in %d block=
s.",=20
+ VG_(message)(Vg_UserMsg, " definitely lost: %,lu bytes in %,lu b=
locks.",
MAC_(bytes_leaked), blocks_leaked );
if (blocks_indirect > 0)
- VG_(message)(Vg_UserMsg, " indirectly lost: %d bytes in %d blocks.",=
=20
+ VG_(message)(Vg_UserMsg, " indirectly lost: %,lu bytes in %,lu block=
s.",
MAC_(bytes_indirect), blocks_indirect );
- VG_(message)(Vg_UserMsg, " possibly lost: %d bytes in %d block=
s.",=20
+ VG_(message)(Vg_UserMsg, " possibly lost: %,lu bytes in %,lu b=
locks.",
MAC_(bytes_dubious), blocks_dubious );
- VG_(message)(Vg_UserMsg, " still reachable: %d bytes in %d block=
s.",=20
+ VG_(message)(Vg_UserMsg, " still reachable: %,lu bytes in %,lu b=
locks.",
MAC_(bytes_reachable), blocks_reachable )=
;
- VG_(message)(Vg_UserMsg, " suppressed: %d bytes in %d block=
s.",=20
+ VG_(message)(Vg_UserMsg, " suppressed: %,lu bytes in %,lu b=
locks.",
MAC_(bytes_suppressed), blocks_suppressed=
);
if (mode =3D=3D LC_Summary && blocks_leaked > 0)
VG_(message)(Vg_UserMsg,
Modified: trunk/memcheck/mac_malloc_wrappers.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_malloc_wrappers.c 2005-10-06 03:19:49 UTC (rev 487=
3)
+++ trunk/memcheck/mac_malloc_wrappers.c 2005-10-06 03:32:42 UTC (rev 487=
4)
@@ -511,7 +511,7 @@
void MAC_(print_malloc_stats) ( void )
{
MAC_Chunk* mc;
- UInt nblocks =3D 0;
+ SizeT nblocks =3D 0;
SizeT nbytes =3D 0;
=20
if (VG_(clo_verbosity) =3D=3D 0)
@@ -527,10 +527,10 @@
}
=20
VG_(message)(Vg_UserMsg,=20
- "malloc/free: in use at exit: %d bytes in %d blocks.",
+ "malloc/free: in use at exit: %,lu bytes in %,lu blocks.=
",
nbytes, nblocks);
VG_(message)(Vg_UserMsg,=20
- "malloc/free: %d allocs, %d frees, %u bytes allocated.",
+ "malloc/free: %,lu allocs, %,lu frees, %,lu bytes alloca=
ted.",
cmalloc_n_mallocs,
cmalloc_n_frees, cmalloc_bs_mallocd);
if (VG_(clo_verbosity) > 1)
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-06 03:19:49 UTC (rev 4873)
+++ trunk/memcheck/mac_shared.c 2005-10-06 03:32:42 UTC (rev 4874)
@@ -279,9 +279,9 @@
relative =3D "inside";
}
VG_(message)(Vg_UserMsg,=20
- "%sAddress 0x%llx is %llu bytes %s a %s of size %d %s%s",
+ "%sAddress 0x%lx is %,lu bytes %s a %s of size %,lu %s%s",
xpre,
- (ULong)a, (ULong)delta, relative, kind,
+ a, delta, relative, kind,
ai->blksize,
ai->akind=3D=3DMallocd ? "alloc'd"=20
: ai->akind=3D=3DFreed ? "free'd"=20
Modified: trunk/memcheck/mac_shared.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/memcheck/mac_shared.h 2005-10-06 03:19:49 UTC (rev 4873)
+++ trunk/memcheck/mac_shared.h 2005-10-06 03:32:42 UTC (rev 4874)
@@ -346,11 +346,11 @@
extern Bool (*MAC_(describe_addr_supp)) ( Addr a, AddrInfo* ai );
=20
/* For VALGRIND_COUNT_LEAKS client request */
-extern Int MAC_(bytes_leaked);
-extern Int MAC_(bytes_indirect);
-extern Int MAC_(bytes_dubious);
-extern Int MAC_(bytes_reachable);
-extern Int MAC_(bytes_suppressed);
+extern SizeT MAC_(bytes_leaked);
+extern SizeT MAC_(bytes_indirect);
+extern SizeT MAC_(bytes_dubious);
+extern SizeT MAC_(bytes_reachable);
+extern SizeT MAC_(bytes_suppressed);
=20
/*------------------------------------------------------------*/
/*--- Functions ---*/
Modified: trunk/memcheck/tests/describe-block.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/describe-block.stderr.exp 2005-10-06 03:19:49 UT=
C (rev 4873)
+++ trunk/memcheck/tests/describe-block.stderr.exp 2005-10-06 03:32:42 UT=
C (rev 4874)
@@ -1,7 +1,7 @@
=20
Invalid write of size 1
at 0x........: main (describe-block.c:6)
- Address 0x........ is 0 bytes inside a magic foople zone of size 4096 c=
lient-defined
+ Address 0x........ is 0 bytes inside a magic foople zone of size 4,096 =
client-defined
at 0x........: main (describe-block.c:5)
=20
Process terminating with default action of signal 11 (SIGSEGV)
Modified: trunk/memcheck/tests/exitprog.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/exitprog.stderr.exp 2005-10-06 03:19:49 UTC (rev=
4873)
+++ trunk/memcheck/tests/exitprog.stderr.exp 2005-10-06 03:32:42 UTC (rev=
4874)
@@ -1,5 +1,5 @@
Invalid write of size 1
at 0x........: main (exitprog.c:18)
- Address 0x........ is 0 bytes after a block of size 1000000 alloc'd
+ Address 0x........ is 0 bytes after a block of size 1,000,000 alloc'd
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (exitprog.c:15)
Modified: trunk/memcheck/tests/filter_leak_check_size
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=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/filter_leak_check_size 2005-10-06 03:19:49 UTC (=
rev 4873)
+++ trunk/memcheck/tests/filter_leak_check_size 2005-10-06 03:32:42 UTC (=
rev 4874)
@@ -1,4 +1,4 @@
#! /bin/sh
=20
./filter_stderr |
-sed "s/checked [0-9]* bytes./checked ... bytes./"
+sed "s/checked [0-9,]* bytes./checked ... bytes./"
Modified: trunk/memcheck/tests/memalign_test.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/memalign_test.stderr.exp 2005-10-06 03:19:49 UTC=
(rev 4873)
+++ trunk/memcheck/tests/memalign_test.stderr.exp 2005-10-06 03:32:42 UTC=
(rev 4874)
@@ -1,6 +1,6 @@
Invalid free() / delete / delete[]
at 0x........: free (vg_replace_malloc.c:...)
by 0x........: main (memalign_test.c:17)
- Address 0x........ is 0 bytes inside a block of size 111110 free'd
+ Address 0x........ is 0 bytes inside a block of size 111,110 free'd
at 0x........: free (vg_replace_malloc.c:...)
by 0x........: main (memalign_test.c:15)
Modified: trunk/memcheck/tests/mempool.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/mempool.stderr.exp 2005-10-06 03:19:49 UTC (rev =
4873)
+++ trunk/memcheck/tests/mempool.stderr.exp 2005-10-06 03:32:42 UTC (rev =
4874)
@@ -1,7 +1,7 @@
Invalid write of size 1
at 0x........: test (mempool.c:124)
by 0x........: main (mempool.c:148)
- Address 0x........ is 7 bytes inside a block of size 100000 alloc'd
+ Address 0x........ is 7 bytes inside a block of size 100,000 alloc'd
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: make_pool (mempool.c:38)
by 0x........: test (mempool.c:111)
@@ -10,7 +10,7 @@
Invalid write of size 1
at 0x........: test (mempool.c:125)
by 0x........: main (mempool.c:148)
- Address 0x........ is 18 bytes inside a block of size 100000 alloc'd
+ Address 0x........ is 18 bytes inside a block of size 100,000 alloc'd
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: make_pool (mempool.c:38)
by 0x........: test (mempool.c:111)
@@ -19,7 +19,7 @@
Invalid write of size 1
at 0x........: test (mempool.c:129)
by 0x........: main (mempool.c:148)
- Address 0x........ is 70 bytes inside a block of size 100000 alloc'd
+ Address 0x........ is 70 bytes inside a block of size 100,000 alloc'd
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: make_pool (mempool.c:38)
by 0x........: test (mempool.c:111)
@@ -28,14 +28,14 @@
Invalid write of size 1
at 0x........: test (mempool.c:130)
by 0x........: main (mempool.c:148)
- Address 0x........ is 96 bytes inside a block of size 100000 alloc'd
+ Address 0x........ is 96 bytes inside a block of size 100,000 alloc'd
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: make_pool (mempool.c:38)
by 0x........: test (mempool.c:111)
by 0x........: main (mempool.c:148)
=20
=20
-100028 (20 direct, 100008 indirect) bytes in 1 blocks are definitely los=
t in loss record 2 of 3
+100,028 (20 direct, 100,008 indirect) bytes in 1 blocks are definitely l=
ost in loss record 2 of 3
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: make_pool (mempool.c:37)
by 0x........: test (mempool.c:111)
Modified: trunk/memcheck/tests/mempool.stderr.exp64
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=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/mempool.stderr.exp64 2005-10-06 03:19:49 UTC (re=
v 4873)
+++ trunk/memcheck/tests/mempool.stderr.exp64 2005-10-06 03:32:42 UTC (re=
v 4874)
@@ -35,7 +35,7 @@
by 0x........: main (mempool.c:148)
=20
=20
-100048 (32 direct, 100016 indirect) bytes in 1 blocks are definitely los=
t in loss record 2 of 3
+100,048 (32 direct, 100,016 indirect) bytes in 1 blocks are definitely l=
ost in loss record 2 of 3
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: make_pool (mempool.c:37)
by 0x........: test (mempool.c:111)
Modified: trunk/memcheck/tests/nanoleak.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/nanoleak.stderr.exp 2005-10-06 03:19:49 UTC (rev=
4873)
+++ trunk/memcheck/tests/nanoleak.stderr.exp 2005-10-06 03:32:42 UTC (rev=
4874)
@@ -1,4 +1,4 @@
=20
-1000 bytes in 1 blocks are definitely lost in loss record 1 of 1
+1,000 bytes in 1 blocks are definitely lost in loss record 1 of 1
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (nanoleak.c:6)
Modified: trunk/memcheck/tests/pointer-trace.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/pointer-trace.stderr.exp 2005-10-06 03:19:49 UTC=
(rev 4873)
+++ trunk/memcheck/tests/pointer-trace.stderr.exp 2005-10-06 03:32:42 UTC=
(rev 4874)
@@ -5,24 +5,24 @@
LEAK SUMMARY:
definitely lost: 0 bytes in 0 blocks.
possibly lost: 0 bytes in 0 blocks.
- still reachable: 1048576 bytes in 1 blocks.
+ still reachable: 1,048,576 bytes in 1 blocks.
suppressed: 0 bytes in 0 blocks.
Reachable blocks (those to which a pointer was found) are not shown.
To see them, rerun with: --show-reachable=3Dyes
=20
ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
-malloc/free: in use at exit: 1048576 bytes in 1 blocks.
-malloc/free: 1 allocs, 0 frees, 1048576 bytes allocated.
+malloc/free: in use at exit: 1,048,576 bytes in 1 blocks.
+malloc/free: 1 allocs, 0 frees, 1,048,576 bytes allocated.
For counts of detected errors, rerun with: -v
searching for pointers to 1 not-freed blocks.
checked ... bytes.
=20
-1048576 bytes in 1 blocks are definitely lost in loss record 1 of 1
+1,048,576 bytes in 1 blocks are definitely lost in loss record 1 of 1
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (pointer-trace.c:24)
=20
LEAK SUMMARY:
- definitely lost: 1048576 bytes in 1 blocks.
+ definitely lost: 1,048,576 bytes in 1 blocks.
possibly lost: 0 bytes in 0 blocks.
still reachable: 0 bytes in 0 blocks.
suppressed: 0 bytes in 0 blocks.
Modified: trunk/memcheck/tests/pointer-trace.stderr.exp2
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=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/pointer-trace.stderr.exp2 2005-10-06 03:19:49 UT=
C (rev 4873)
+++ trunk/memcheck/tests/pointer-trace.stderr.exp2 2005-10-06 03:32:42 UT=
C (rev 4874)
@@ -6,24 +6,24 @@
definitely lost: 0 bytes in 0 blocks.
indirectly lost: 0 bytes in 0 blocks.
possibly lost: 0 bytes in 0 blocks.
- still reachable: 1048600 bytes in 2 blocks.
+ still reachable: 1,048,600 bytes in 2 blocks.
suppressed: 0 bytes in 0 blocks.
Reachable blocks (those to which a pointer was found) are not shown.
To see them, rerun with: --show-reachable=3Dyes
=20
ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
-malloc/free: in use at exit: 1048576 bytes in 1 blocks.
-malloc/free: 2 allocs, 1 frees, 1048600 bytes allocated.
+malloc/free: in use at exit: 1,048,576 bytes in 1 blocks.
+malloc/free: 2 allocs, 1 frees, 1,048,600 bytes allocated.
For counts of detected errors, rerun with: -v
searching for pointers to 1 not-freed blocks.
checked ... bytes.
=20
-1048576 bytes in 1 blocks are definitely lost in loss record 1 of 1
+1,048,576 bytes in 1 blocks are definitely lost in loss record 1 of 1
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (pointer-trace.c:24)
=20
LEAK SUMMARY:
- definitely lost: 1048576 bytes in 1 blocks.
+ definitely lost: 1,048,576 bytes in 1 blocks.
indirectly lost: 0 bytes in 0 blocks.
possibly lost: 0 bytes in 0 blocks.
still reachable: 0 bytes in 0 blocks.
Modified: trunk/memcheck/tests/pointer-trace.stderr.exp64
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=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/pointer-trace.stderr.exp64 2005-10-06 03:19:49 U=
TC (rev 4873)
+++ trunk/memcheck/tests/pointer-trace.stderr.exp64 2005-10-06 03:32:42 U=
TC (rev 4874)
@@ -5,24 +5,24 @@
LEAK SUMMARY:
definitely lost: 0 bytes in 0 blocks.
possibly lost: 0 bytes in 0 blocks.
- still reachable: 2097152 bytes in 1 blocks.
+ still reachable: 2,097,152 bytes in 1 blocks.
suppressed: 0 bytes in 0 blocks.
Reachable blocks (those to which a pointer was found) are not shown.
To see them, rerun with: --show-reachable=3Dyes
=20
ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
-malloc/free: in use at exit: 2097152 bytes in 1 blocks.
-malloc/free: 1 allocs, 0 frees, 2097152 bytes allocated.
+malloc/free: in use at exit: 2,097,152 bytes in 1 blocks.
+malloc/free: 1 allocs, 0 frees, 2,097,152 bytes allocated.
For counts of detected errors, rerun with: -v
searching for pointers to 1 not-freed blocks.
checked ... bytes.
=20
-2097152 bytes in 1 blocks are definitely lost in loss record 1 of 1
+2,097,152 bytes in 1 blocks are definitely lost in loss record 1 of 1
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (pointer-trace.c:24)
=20
LEAK SUMMARY:
- definitely lost: 2097152 bytes in 1 blocks.
+ definitely lost: 2,097,152 bytes in 1 blocks.
possibly lost: 0 bytes in 0 blocks.
still reachable: 0 bytes in 0 blocks.
suppressed: 0 bytes in 0 blocks.
Modified: trunk/memcheck/tests/trivialleak.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/trivialleak.stderr.exp 2005-10-06 03:19:49 UTC (=
rev 4873)
+++ trunk/memcheck/tests/trivialleak.stderr.exp 2005-10-06 03:32:42 UTC (=
rev 4874)
@@ -1,5 +1,5 @@
=20
-1000 bytes in 1000 blocks are definitely lost in loss record 1 of 1
+1,000 bytes in 1,000 blocks are definitely lost in loss record 1 of 1
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: test (trivialleak.c:8)
by 0x........: main (trivialleak.c:12)
|
|
From: <sv...@va...> - 2005-10-06 03:19:52
|
Author: sewardj
Date: 2005-10-06 04:19:49 +0100 (Thu, 06 Oct 2005)
New Revision: 4873
Log:
The m_syswrap subsystem is Valgrind's model of how the kernel behaves
with respect to syscalls. It is detailed and comprehensive but does
not offer a way to deal with minor deviations in behaviour from the
vanilla kernel sources, either due to running a hacked kernel or
running a vanilla kernel with a custom kernel module loaded.
This commit adds a flexible way to handle such cases without polluting
the vanilla handler syswrap-*.c files or their supporting vki_*.h
header files. For each OS, a syswrap-OS-variants.c file is added,
containing wrappers for variants of OS. A new command line flag
--kernel-variants=3D carries a comma separated list of variant names
that apply to the current run. There are no other changes.
Added:
trunk/coregrind/m_syswrap/priv_syswrap-linux-variants.h
trunk/coregrind/m_syswrap/syswrap-linux-variants.c
Modified:
trunk/coregrind/Makefile.am
trunk/coregrind/m_main.c
trunk/coregrind/m_options.c
trunk/coregrind/m_syswrap/syswrap-x86-linux.c
trunk/coregrind/pub_core_options.h
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-06 03:04:22 UTC (rev 4872)
+++ trunk/coregrind/Makefile.am 2005-10-06 03:19:49 UTC (rev 4873)
@@ -86,6 +86,7 @@
m_syswrap/priv_types_n_macros.h \
m_syswrap/priv_syswrap-generic.h \
m_syswrap/priv_syswrap-linux.h \
+ m_syswrap/priv_syswrap-linux-variants.h \
m_syswrap/priv_syswrap-main.h
=20
BUILT_SOURCES =3D=20
@@ -150,6 +151,7 @@
m_syswrap/syscall-@VG_PLATFORM@.S \
m_syswrap/syswrap-generic.c \
m_syswrap/syswrap-@VG_OS@.c \
+ m_syswrap/syswrap-@VG_OS@-variants.c \
m_syswrap/syswrap-@VG_PLATFORM@.c \
m_syswrap/syswrap-main.c
=20
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-06 03:04:22 UTC (rev 4872)
+++ trunk/coregrind/m_main.c 2005-10-06 03:19:49 UTC (rev 4873)
@@ -1099,6 +1099,8 @@
else if (VG_CLO_STREQ(arg, "--smc-check=3Dall"))
VG_(clo_smc_check) =3D Vg_SmcAll;
=20
+ else VG_STR_CLO (arg, "--kernel-variant", VG_(clo_kernel_variant=
))
+
else VG_BNUM_CLO(arg, "--vex-iropt-verbosity",
VG_(clo_vex_control).iropt_verbosity, 0, 10)
else VG_BNUM_CLO(arg, "--vex-iropt-level",
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-06 03:04:22 UTC (rev 4872)
+++ trunk/coregrind/m_options.c 2005-10-06 03:19:49 UTC (rev 4873)
@@ -77,6 +77,7 @@
Int VG_(clo_max_stackframe) =3D 2000000;
Bool VG_(clo_wait_for_gdb) =3D False;
VgSmc VG_(clo_smc_check) =3D Vg_SmcStack;
+HChar* VG_(clo_kernel_variant) =3D NULL;
=20
=20
/*--------------------------------------------------------------------*/
Added: trunk/coregrind/m_syswrap/priv_syswrap-linux-variants.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-variants.h 2005-10-06 03=
:04:22 UTC (rev 4872)
+++ trunk/coregrind/m_syswrap/priv_syswrap-linux-variants.h 2005-10-06 03=
:19:49 UTC (rev 4873)
@@ -0,0 +1,59 @@
+
+/*--------------------------------------------------------------------*/
+/*--- Linux-variant specific syscalls stuff. ---*/
+/*--- priv_syswrap-linux.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 __PRIV_SYSWRAP_LINUX_VARIANTS_H
+#define __PRIV_SYSWRAP_LINUX_VARIANTS_H
+
+/* requires #include "priv_types_n_macros.h" */
+
+
+/* ---------------------------------------------------------------
+ BProc wrappers
+ ------------------------------------------------------------ */
+
+#define TId ThreadId
+#define UW UWord
+#define SR SysRes
+
+/* Return 0 means hand to kernel, non-0 means fail w/ that value. */
+extern Int ML_(linux_variant_PRE_sys_bproc)( UW, UW, UW, UW, UW, UW );
+
+extern void ML_(linux_variant_POST_sys_bproc)( UW, UW, UW, UW, UW, UW );
+
+#undef TId
+#undef UW
+#undef SR
+
+#endif // __PRIV_SYSWRAP_LINUX_VARIANTS_H
+
+/*--------------------------------------------------------------------*/
+/*--- end priv_syswrap-linux-variants.h ---*/
+/*--------------------------------------------------------------------*/
Added: trunk/coregrind/m_syswrap/syswrap-linux-variants.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-variants.c 2005-10-06 03:04:2=
2 UTC (rev 4872)
+++ trunk/coregrind/m_syswrap/syswrap-linux-variants.c 2005-10-06 03:19:4=
9 UTC (rev 4873)
@@ -0,0 +1,91 @@
+
+/*--------------------------------------------------------------------*/
+/*--- Handlers for syscalls on minor variants of Linux kernels. ---*/
+/*--- syswrap-linux-variants.c ---*/
+/*--------------------------------------------------------------------*/
+
+/*
+ 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.
+*/
+
+/* The files syswrap-generic.c, syswrap-linux.c, syswrap-x86-linux.c,
+ syswrap-amd64-linux.c and syswrap-ppc32-linux.c, and associated
+ vki*.h header files, constitute Valgrind's model of how a vanilla
+ Linux kernel behaves with respect to syscalls.
+
+ On a few occasions, it is useful to run with a kernel that has some
+ (minor) extensions to the vanilla model, either due to running on a
+ hacked kernel, or using a vanilla kernel which has incorporated a
+ custom kernel module. Rather than clutter the standard model, all
+ such variant handlers are placed in here.
+
+ Unlike the C files for the standard model, this file should also
+ contain all constants/types needed for said wrappers. The vki*.h
+ headers should not be polluted with non-vanilla info. */
+
+
+#include "pub_core_basics.h"
+#include "pub_core_threadstate.h"
+#include "pub_core_aspacemgr.h"
+#include "pub_core_debuginfo.h" // VG_(di_notify_*)
+#include "pub_core_transtab.h" // VG_(discard_translations)
+#include "pub_core_debuglog.h"
+#include "pub_core_libcbase.h"
+#include "pub_core_libcassert.h"
+#include "pub_core_libcfile.h"
+#include "pub_core_libcprint.h"
+#include "pub_core_libcproc.h"
+#include "pub_core_mallocfree.h"
+#include "pub_core_tooliface.h"
+#include "pub_core_options.h"
+#include "pub_core_scheduler.h"
+#include "pub_core_signals.h"
+#include "pub_core_syscall.h"
+
+#include "priv_types_n_macros.h"
+#include "priv_syswrap-linux-variants.h"
+
+
+/* ---------------------------------------------------------------
+ BProc wrappers
+ ------------------------------------------------------------ */
+
+/* Return 0 means hand to kernel, non-0 means fail w/ that value. */
+Int ML_(linux_variant_PRE_sys_bproc)( UWord arg1, UWord arg2,
+ UWord arg3, UWord arg4,
+ UWord arg5, UWord arg6 )
+{
+ return 0;
+}
+
+void ML_(linux_variant_POST_sys_bproc)( UWord arg1, UWord arg2,
+ UWord arg3, UWord arg4,
+ UWord arg5, UWord arg6 )
+{
+}
+
+
+/*--------------------------------------------------------------------*/
+/*--- end syswrap-linux-variants.c ---*/
+/*--------------------------------------------------------------------*/
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-06 03:04:22 UTC=
(rev 4872)
+++ trunk/coregrind/m_syswrap/syswrap-x86-linux.c 2005-10-06 03:19:49 UTC=
(rev 4873)
@@ -55,6 +55,7 @@
#include "priv_types_n_macros.h"
#include "priv_syswrap-generic.h" /* for decls of generic wrappers */
#include "priv_syswrap-linux.h" /* for decls of linux-ish wrappers =
*/
+#include "priv_syswrap-linux-variants.h" /* decls of linux variant wrapp=
ers */
#include "priv_syswrap-main.h"
=20
#include "vki_unistd.h" /* for the __NR_* constants */
@@ -976,6 +977,7 @@
DECL_TEMPLATE(x86_linux, sys_ptrace);
DECL_TEMPLATE(x86_linux, sys_sigaction);
DECL_TEMPLATE(x86_linux, old_select);
+DECL_TEMPLATE(x86_linux, sys_syscall223);
=20
PRE(old_select)
{
@@ -1876,6 +1878,41 @@
POST_MEM_WRITE( ARG3, sizeof(struct vki_old_sigaction));
}
=20
+
+/* ---------------------------------------------------------------
+ PRE/POST wrappers for x86/Linux-variant specific syscalls
+ ------------------------------------------------------------ */
+
+PRE(sys_syscall223)
+{
+ Int err;
+
+ /* 223 is used by sys_bproc. If we're not on a declared bproc
+ variant, fail in the usual way. */
+
+ if (!VG_(strstr)(VG_(clo_kernel_variant), "bproc")) {
+ PRINT("non-existent syscall! (syscall 223)");
+ PRE_REG_READ0(long, "ni_syscall(223)");
+ SET_STATUS_Failure( VKI_ENOSYS );
+ return;
+ }
+
+ err =3D ML_(linux_variant_PRE_sys_bproc)( ARG1, ARG2, ARG3,=20
+ ARG4, ARG5, ARG6 );
+ if (err) {
+ SET_STATUS_Failure( err );
+ return;
+ }
+ /* Let it go through. */
+ *flags |=3D SfMayBlock; /* who knows? play safe. */
+}
+
+POST(sys_syscall223)
+{
+ ML_(linux_variant_POST_sys_bproc)( ARG1, ARG2, ARG3,=20
+ ARG4, ARG5, ARG6 );
+}
+
#undef PRE
#undef POST
=20
@@ -2168,7 +2205,7 @@
GENXY(__NR_getdents64, sys_getdents64), // 220
GENXY(__NR_fcntl64, sys_fcntl64), // 221
GENX_(222, sys_ni_syscall), // 222
- GENX_(223, sys_ni_syscall), // 223
+ PLAXY(223, sys_syscall223), // 223 // sys_bpro=
c?
LINX_(__NR_gettid, sys_gettid), // 224
=20
//zz // (__NR_readahead, sys_readahead), // 225 */(Lin=
ux?)
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-06 03:04:22 UTC (rev 4872)
+++ trunk/coregrind/pub_core_options.h 2005-10-06 03:19:49 UTC (rev 4873)
@@ -163,8 +163,13 @@
}=20
VgSmc;
=20
+/* Describe extent to which self-modifying-code should be
+ auto-detected. */
extern VgSmc VG_(clo_smc_check);
=20
+/* String containing comma-separated names of minor kernel variants,
+ so they can be properly handled by m_syswrap. */
+extern HChar* VG_(clo_kernel_variant);
=20
#endif // __PUB_CORE_OPTIONS_H
=20
|
|
From: <sv...@va...> - 2005-10-06 03:04:29
|
Author: sewardj
Date: 2005-10-06 04:04:22 +0100 (Thu, 06 Oct 2005)
New Revision: 4872
Log:
Adjustments to the sync-checker:
* show the filename, if any, when printing out disagreeing mappings
* if the kernel offers us a mapping to a file with the name=20
"/dev/zero (deleted)", don't do a /dev/ino comparison.
Modified:
trunk/coregrind/m_aspacemgr/aspacemgr.c
Modified: trunk/coregrind/m_aspacemgr/aspacemgr.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_aspacemgr/aspacemgr.c 2005-10-06 02:31:49 UTC (rev =
4871)
+++ trunk/coregrind/m_aspacemgr/aspacemgr.c 2005-10-06 03:04:22 UTC (rev =
4872)
@@ -490,17 +490,24 @@
static void __attribute__ ((unused))
show_nsegment_full ( Int logLevel, NSegment* seg )
{
+ HChar* name =3D "(none)";
+ if (seg->fnIdx >=3D 0 && seg->fnIdx < segnames_used
+ && segnames[seg->fnIdx].inUse
+ && segnames[seg->fnIdx].fname[0] !=3D 0)
+ name =3D segnames[seg->fnIdx].fname;
+
VG_(debugLog)(logLevel, "aspacem",
"NSegment{%s, start=3D0x%llx, end=3D0x%llx, smode=3D%s, dev=3D%llu=
, "
"ino=3D%llu, offset=3D%llu, fnIdx=3D%d, hasR=3D%d, hasW=3D%d, hasX=
=3D%d, "
- "hasT=3D%d, mark=3D%d}\n",
+ "hasT=3D%d, mark=3D%d, name=3D\"%s\"}\n",
show_SegKind(seg->kind),
(ULong)seg->start,
(ULong)seg->end,
show_ShrinkMode(seg->smode),
(ULong)seg->dev, (ULong)seg->ino, (ULong)seg->offset, seg->fnIdx,
(Int)seg->hasR, (Int)seg->hasW, (Int)seg->hasX, (Int)seg->hasT,
- (Int)seg->mark
+ (Int)seg->mark,=20
+ name
);
}
=20
@@ -904,9 +911,16 @@
=20
cmp_offsets
=3D nsegments[i].kind =3D=3D SkFileC || nsegments[i].kind =3D=3D=
SkFileV;
+
cmp_devino
=3D nsegments[i].dev !=3D 0 || nsegments[i].ino !=3D 0;
=20
+ /* Consider other reasons to not compare dev/inode */
+ /* bproc does some godawful hack on /dev/zero at process
+ migration, which changes the name of it, and its dev & ino */
+ if (filename && 0=3D=3DVG_(strcmp)(filename, "/dev/zero (deleted)"=
))
+ cmp_devino =3D False;
+
same =3D same
&& seg_prot =3D=3D prot
&& (cmp_devino
@@ -930,11 +944,14 @@
=20
show_kern_seg:
VG_(debugLog)(0,"aspacem",
- "sync_check_mapping_callback: segment mismatch: kerne=
l's seg:\n");
+ "sync_check_mapping_callback: "
+ "segment mismatch: kernel's seg:\n");
VG_(debugLog)(0,"aspacem",=20
- "start=3D0x%llx end=3D0x%llx prot=3D%u dev=3D%u ino=3D=
%u offset=3D%lld\n",
+ "start=3D0x%llx end=3D0x%llx prot=3D%u "
+ "dev=3D%u ino=3D%u offset=3D%lld name=3D\"%s\"\n",
(ULong)addr, ((ULong)addr) + ((ULong)len) - 1,
- prot, dev, ino, offset );
+ prot, dev, ino, offset,=20
+ filename ? (HChar*)filename : "(none)" );
return;
}
=20
|
|
From: <js...@ac...> - 2005-10-06 03:03:57
|
Nightly build on phoenix ( SuSE 9.1 ) started at 2005-10-06 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 == 190 tests, 2 stderr failures, 0 stdout failures ================= none/tests/faultstatus (stderr) none/tests/x86/int (stderr) ================================================= == Results from 24 hours ago == ================================================= 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 == 188 tests, 2 stderr failures, 0 stdout failures ================= none/tests/faultstatus (stderr) none/tests/x86/int (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Thu Oct 6 03:46:47 2005 --- new.short Thu Oct 6 04:03:51 2005 *************** *** 10,12 **** ! == 188 tests, 2 stderr failures, 0 stdout failures ================= none/tests/faultstatus (stderr) --- 10,12 ---- ! == 190 tests, 2 stderr failures, 0 stdout failures ================= none/tests/faultstatus (stderr) |
|
From: Tom H. <to...@co...> - 2005-10-06 02:40:04
|
Nightly build on dunsmere ( athlon, Fedora Core 4 ) started at 2005-10-06 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 == 192 tests, 12 stderr failures, 4 stdout failures ================= memcheck/tests/leak-tree (stderr) memcheck/tests/mempool (stderr) memcheck/tests/str_tester (stderr) memcheck/tests/weirdioctl (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/xml1 (stderr) none/tests/args (stdout) none/tests/args (stderr) none/tests/faultstatus (stderr) none/tests/map_unmap (stdout) none/tests/map_unmap (stderr) 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 == 190 tests, 12 stderr failures, 3 stdout failures ================= memcheck/tests/leak-cycle (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/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 6 03:35:07 2005 --- new.short Thu Oct 6 03:39:57 2005 *************** *** 8,14 **** ! == 190 tests, 12 stderr failures, 3 stdout failures ================= ! memcheck/tests/leak-cycle (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/mempool (stderr) ! memcheck/tests/pointer-trace (stderr) memcheck/tests/weirdioctl (stderr) --- 8,13 ---- ! == 192 tests, 12 stderr failures, 4 stdout failures ================= memcheck/tests/leak-tree (stderr) memcheck/tests/mempool (stderr) ! memcheck/tests/str_tester (stderr) memcheck/tests/weirdioctl (stderr) *************** *** 16,17 **** --- 15,18 ---- memcheck/tests/xml1 (stderr) + none/tests/args (stdout) + none/tests/args (stderr) none/tests/faultstatus (stderr) |
|
From: <sv...@va...> - 2005-10-06 02:31:52
|
Author: sewardj Date: 2005-10-06 03:31:49 +0100 (Thu, 06 Oct 2005) New Revision: 4871 Log: Update. 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-05 18:05:01 UTC (rev 4= 870) +++ trunk/docs/internals/3_0_BUGSTATUS.txt 2005-10-06 02:31:49 UTC (rev 4= 871) @@ -13,6 +13,9 @@ 111901 cross-platform run of cachegrind fails on opteron 113468 (vgPlain_mprotect_range): Assertion 'r !=3D -1' failed. 92071 Reading debugging info uses too much memory +109744 memcheck loses track of mmap from direct ld-linux.so.2 +110183 tail of page with _end + 82301 FV memory layout too rigid =20 Will fix in 3.1. Long delay seems to be caused by amd64-Gentoo kernel not liking large mmap/munmap requests. Other bugs also look like @@ -31,13 +34,6 @@ FIXED-TRUNK: TODO =20 ---------------------------------------------------------------- -110183 tail of page with _end - -Could be a problem for glibc developers. Consider fixing. - -FIXED-TRUNK: TODO? - ----------------------------------------------------------------- 110204 fmemopen false +ve =20 Seems low priority. |
|
From: Tom H. <th...@cy...> - 2005-10-06 02:28:01
|
Nightly build on alvis ( i686, Red Hat 7.3 ) started at 2005-10-06 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 == 191 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) ================================================= == 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 == 189 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 6 03:21:32 2005 --- new.short Thu Oct 6 03:27:55 2005 *************** *** 8,10 **** ! == 189 tests, 16 stderr failures, 0 stdout failures ================= memcheck/tests/addressable (stderr) --- 8,10 ---- ! == 191 tests, 16 stderr failures, 0 stdout failures ================= memcheck/tests/addressable (stderr) |
|
From: Tom H. <th...@cy...> - 2005-10-06 02:26:04
|
Nightly build on ginetta ( i686, Red Hat 8.0 ) started at 2005-10-06 03:10:14 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 == 191 tests, 4 stderr failures, 0 stdout failures ================= memcheck/tests/mempool (stderr) memcheck/tests/pointer-trace (stderr) none/tests/faultstatus (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 == 189 tests, 4 stderr failures, 0 stdout failures ================= memcheck/tests/mempool (stderr) memcheck/tests/pointer-trace (stderr) none/tests/faultstatus (stderr) none/tests/x86/int (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Thu Oct 6 03:19:57 2005 --- new.short Thu Oct 6 03:25:56 2005 *************** *** 8,10 **** ! == 189 tests, 4 stderr failures, 0 stdout failures ================= memcheck/tests/mempool (stderr) --- 8,10 ---- ! == 191 tests, 4 stderr failures, 0 stdout failures ================= memcheck/tests/mempool (stderr) |
|
From: Tom H. <th...@cy...> - 2005-10-06 02:22:10
|
Nightly build on dellow ( x86_64, Fedora Core 4 ) started at 2005-10-06 03:10:14 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 == 166 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) ================================================= == 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 == 165 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) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Thu Oct 6 03:18:04 2005 --- new.short Thu Oct 6 03:22:02 2005 *************** *** 8,10 **** ! == 165 tests, 7 stderr failures, 2 stdout failures ================= memcheck/tests/sigprocmask (stderr) --- 8,10 ---- ! == 166 tests, 7 stderr failures, 2 stdout failures ================= memcheck/tests/sigprocmask (stderr) |
|
From: Tom H. <th...@cy...> - 2005-10-06 02:19:39
|
Nightly build on aston ( x86_64, Fedora Core 3 ) started at 2005-10-06 03:05:12 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 == 166 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) ================================================= == 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 == 165 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) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Thu Oct 6 03:14:04 2005 --- new.short Thu Oct 6 03:19:35 2005 *************** *** 8,10 **** ! == 165 tests, 7 stderr failures, 2 stdout failures ================= memcheck/tests/sigprocmask (stderr) --- 8,10 ---- ! == 166 tests, 7 stderr failures, 2 stdout failures ================= memcheck/tests/sigprocmask (stderr) |
|
From: Tom H. <th...@cy...> - 2005-10-06 02:15:23
|
Nightly build on gill ( x86_64, Fedora Core 2 ) started at 2005-10-06 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 == 166 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) ================================================= == 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 == 165 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 6 03:05:18 2005 --- new.short Thu Oct 6 03:15:12 2005 *************** *** 8,10 **** ! == 165 tests, 8 stderr failures, 1 stdout failure ================= memcheck/tests/sigprocmask (stderr) --- 8,10 ---- ! == 166 tests, 8 stderr failures, 1 stdout failure ================= memcheck/tests/sigprocmask (stderr) |