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
(12) |
2
(11) |
3
(8) |
|
4
(9) |
5
(10) |
6
(18) |
7
(8) |
8
(12) |
9
(23) |
10
(14) |
|
11
(15) |
12
(31) |
13
(45) |
14
(28) |
15
(20) |
16
(16) |
17
(9) |
|
18
(18) |
19
(26) |
20
(49) |
21
(14) |
22
(18) |
23
(24) |
24
(28) |
|
25
(39) |
26
(17) |
27
(27) |
28
(27) |
29
(14) |
30
(44) |
|
|
From: Julian S. <js...@ac...> - 2005-09-25 22:27:55
|
On Sunday 25 September 2005 22:00, Nicholas Nethercote wrote: > On Sun, 25 Sep 2005, Julian Seward wrote: > >>> But it's a start. Another odd thing is that if you use -d with both > >>> inner and outer, the inner one's output isn't produced. > >> > >> This is due to ML_(fd_allowed) in the outer. It sees the sys_writes > >> done by the inner on its own logfile descriptor and causes them to > >> fail, thus making the output disappear. If you change ML_(fd_allowed) > >> to always return True in the outer, then it works as one would expect. > >> Problem is I can't see a clean way to fix this. > > > > Fixed (well, kludged, anyway). See r4758. > > Hang on, why does this block innerVG's debuglog calls, but not its normal > printing? I haven't got a clue. I followed the normal printing path through and it too by defaults ending up doing sys_write to stderr. Good question. J |
|
From: <sv...@va...> - 2005-09-25 21:40:30
|
Author: njn
Date: 2005-09-25 22:40:22 +0100 (Sun, 25 Sep 2005)
New Revision: 4774
Log:
Comment out custom allocator requests. Memcheck can now be run as
as outer tool without bazillions of errors. Next step is to put the
requests back in correctly.
Modified:
branches/ASPACEM/coregrind/m_mallocfree.c
Modified: branches/ASPACEM/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/ASPACEM/coregrind/m_mallocfree.c 2005-09-25 21:03:07 UTC (re=
v 4773)
+++ branches/ASPACEM/coregrind/m_mallocfree.c 2005-09-25 21:40:22 UTC (re=
v 4774)
@@ -1019,7 +1019,7 @@
v =3D get_block_payload(a, b);
vg_assert( (((Addr)v) & (VG_MIN_MALLOC_SZB-1)) =3D=3D 0 );
=20
- VALGRIND_MALLOCLIKE_BLOCK(v, req_pszB, 0, False);
+ //zzVALGRIND_MALLOCLIKE_BLOCK(v, req_pszB, 0, False);
return v;
}
=20
@@ -1113,7 +1113,7 @@
sanity_check_malloc_arena(aid);
# endif
=20
- VALGRIND_FREELIKE_BLOCK(ptr, 0);
+ //zzVALGRIND_FREELIKE_BLOCK(ptr, 0);
=20
VGP_POPCC(VgpMalloc);
}
@@ -1236,7 +1236,7 @@
=20
vg_assert( (((Addr)align_p) % req_alignB) =3D=3D 0 );
=20
- VALGRIND_MALLOCLIKE_BLOCK(align_p, req_pszB, 0, False);
+ //zzVALGRIND_MALLOCLIKE_BLOCK(align_p, req_pszB, 0, False);
=20
return align_p;
}
@@ -1268,7 +1268,7 @@
=20
VG_(memset)(p, 0, size);
=20
- VALGRIND_MALLOCLIKE_BLOCK(p, size, 0, True);
+ //zzVALGRIND_MALLOCLIKE_BLOCK(p, size, 0, True);
=20
VGP_POPCC(VgpMalloc);
=20
|
|
From: <sv...@va...> - 2005-09-25 21:03:10
|
Author: njn
Date: 2005-09-25 22:03:07 +0100 (Sun, 25 Sep 2005)
New Revision: 4773
Log:
various tweaks
Modified:
branches/ASPACEM/coregrind/m_debuglog.c
branches/ASPACEM/coregrind/m_libcprint.c
Modified: branches/ASPACEM/coregrind/m_debuglog.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/ASPACEM/coregrind/m_debuglog.c 2005-09-25 19:53:15 UTC (rev =
4772)
+++ branches/ASPACEM/coregrind/m_debuglog.c 2005-09-25 21:03:07 UTC (rev =
4773)
@@ -48,6 +48,7 @@
=20
#include "pub_core_basics.h" /* basic types */
#include "pub_core_debuglog.h" /* our own iface */
+#include "valgrind.h" /* for RUNNING_ON_VALGRIND */
=20
/*------------------------------------------------------------*/
/*--- Stuff to make us completely independent. ---*/
@@ -61,15 +62,14 @@
{
UInt __res;
__asm__ volatile (
+ "pushl %%ebx\n" // ebx is callee-save
"movl $4, %%eax\n" /* %eax =3D __NR_write */
- "movl $2, %%edi\n" /* %edi =3D stderr */
+ "movl $1, %%ebx\n" /* %ebx =3D stderr */
"movl %1, %%ecx\n" /* %ecx =3D buf */
"movl %2, %%edx\n" /* %edx =3D n */
- "pushl %%ebx\n"
- "movl %%edi, %%ebx\n"
"int $0x80\n" /* write(stderr, buf, n) */
- "popl %%ebx\n"
"movl %%eax, %0\n" /* __res =3D eax */
+ "popl %%ebx\n" // restore ebx
: "=3Dmr" (__res)
: "g" (buf), "g" (n)
: "eax", "edi", "ecx", "edx"
@@ -586,11 +586,10 @@
const HChar* format, ... )
{
UInt ret, pid;
- Int indent;
+ Int indent, depth, i;
va_list vargs;
printf_buf buf;
=20
- =20
if (level > loglevel)
return;
=20
@@ -600,9 +599,14 @@
buf.n =3D 0;
buf.buf[0] =3D 0;
pid =3D local_sys_getpid();
-# ifdef ENABLE_INNER
- (void)myvprintf_str ( add_to_buf, &buf, 0, 1, ">", False );
-# endif
+
+ // Print one '>' in front of the messages for each level of self-host=
ing
+ // being performed.
+ depth =3D RUNNING_ON_VALGRIND;
+ for (i =3D 0; i < depth; i++) {
+ (void)myvprintf_str ( add_to_buf, &buf, 0, 1, ">", False );
+ }
+ =20
(void)myvprintf_str ( add_to_buf, &buf, 0, 2, "--", False );
(void)myvprintf_int64 ( add_to_buf, &buf, 0, 10, 1, (ULong)pid );
(void)myvprintf_str ( add_to_buf, &buf, 0, 1, ":", False );
Modified: branches/ASPACEM/coregrind/m_libcprint.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/ASPACEM/coregrind/m_libcprint.c 2005-09-25 19:53:15 UTC (rev=
4772)
+++ branches/ASPACEM/coregrind/m_libcprint.c 2005-09-25 21:03:07 UTC (rev=
4773)
@@ -283,10 +283,9 @@
=20
UInt VG_(vmessage) ( VgMsgKind kind, const HChar* format, va_list vargs =
)
{
- UInt count =3D 0;
- Char c;
- const Char* pfx_s;
- static const Char pfx[] =3D ">>>>>>>>>>>>>>>>";
+ UInt count =3D 0;
+ Char c;
+ Int i, depth;
=20
switch (kind) {
case Vg_UserMsg: c =3D '=3D'; break;
@@ -296,16 +295,15 @@
default: c =3D '?'; break;
}
=20
- // The pfx trick prints one or more '>' characters in front of the
- // messages when running Valgrind under Valgrind, one per level of
- // self-hosting.
- pfx_s =3D &pfx[sizeof(pfx)-1-RUNNING_ON_VALGRIND],
-
- // Print the message
- count =3D 0;
-
+ // Print one '>' in front of the messages for each level of self-host=
ing
+ // being performed.
+ depth =3D RUNNING_ON_VALGRIND;
+ for (i =3D 0; i < depth; i++) {
+ count +=3D VG_(printf) (">");
+ }
+ =20
if (!VG_(clo_xml))
- count +=3D VG_(printf) ("%s%c%c", pfx_s, c,c);
+ count +=3D VG_(printf) ("%c%c", c,c);
=20
if (VG_(clo_time_stamp)) {
HChar buf[50];
|
|
From: Nicholas N. <nj...@cs...> - 2005-09-25 21:01:28
|
On Sun, 25 Sep 2005, Julian Seward wrote: >>> But it's a start. Another odd thing is that if you use -d with both >>> inner and outer, the inner one's output isn't produced. >> >> This is due to ML_(fd_allowed) in the outer. It sees the sys_writes >> done by the inner on its own logfile descriptor and causes them to >> fail, thus making the output disappear. If you change ML_(fd_allowed) >> to always return True in the outer, then it works as one would expect. >> Problem is I can't see a clean way to fix this. > > Fixed (well, kludged, anyway). See r4758. Hang on, why does this block innerVG's debuglog calls, but not its normal printing? Nick |
|
From: <sv...@va...> - 2005-09-25 19:53:17
|
Author: njn
Date: 2005-09-25 20:53:15 +0100 (Sun, 25 Sep 2005)
New Revision: 4772
Log:
Make -I<name> work.
Modified:
branches/ASPACEM/cachegrind/cg_annotate.in
Modified: branches/ASPACEM/cachegrind/cg_annotate.in
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=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/ASPACEM/cachegrind/cg_annotate.in 2005-09-25 19:34:13 UTC (r=
ev 4771)
+++ branches/ASPACEM/cachegrind/cg_annotate.in 2005-09-25 19:53:15 UTC (r=
ev 4772)
@@ -155,7 +155,7 @@
that helped reach the event count threshold [n=
o]
--context=3DN print N lines of context before and after
annotated lines [8]
- -I --include=3D<dir> add <dir> to list of directories to search f=
or=20
+ -I<d> --include=3D<d> add <d> to list of directories to search for=
=20
source files
=20
Cachegrind is Copyright (C) 2002-2005 Nicholas Nethercote.
@@ -207,9 +207,10 @@
($1 >=3D 0 && $1 <=3D 100) or die($usage);
=20
# --auto=3Dyes|no
- } elsif ($arg =3D~ /^--auto=3D(yes|no)$/) {
- $auto_annotate =3D 1 if ($1 eq "yes");
- $auto_annotate =3D 0 if ($1 eq "no");
+ } elsif ($arg =3D~ /^--auto=3Dyes$/) {
+ $auto_annotate =3D 1;
+ } elsif ($arg =3D~ /^--auto=3Dno$/) {
+ $auto_annotate =3D 0;
=20
# --context=3DN
} elsif ($arg =3D~ /^--context=3D([\d\.]+)$/) {
@@ -218,8 +219,12 @@
die($usage);
}
=20
- # --include=3DA,B,C
- } elsif ($arg =3D~ /^(-I|--include)=3D(.*)$/) {
+ # We don't handle "-I name" -- there can be no space.
+ } elsif ($arg =3D~ /^-I$/) {
+ die("Sorry, no space is allowed after a -I flag\n");
+ =20
+ # --include=3DA,B,C. Allow -I=3Dname for backwards compatib=
ility.
+ } elsif ($arg =3D~ /^(-I=3D|-I|--include=3D)(.*)$/) {
my $inc =3D $2;
$inc =3D~ s|/$||; # trim trailing '/'
push(@include_dirs, "$inc/");
|
|
From: <sv...@va...> - 2005-09-25 19:34:26
|
Author: njn
Date: 2005-09-25 20:34:13 +0100 (Sun, 25 Sep 2005)
New Revision: 4771
Log:
Tweak the startup order.
Modified:
branches/ASPACEM/coregrind/m_main.c
Modified: branches/ASPACEM/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
--- branches/ASPACEM/coregrind/m_main.c 2005-09-25 19:13:21 UTC (rev 4770=
)
+++ branches/ASPACEM/coregrind/m_main.c 2005-09-25 19:34:13 UTC (rev 4771=
)
@@ -2153,8 +2153,6 @@
// Init tool part 1: pre_clo_init
// p: setup_client_stack() [for 'VG_(client_arg[cv]']
// p: setup_file_descriptors() [for 'VG_(fd_xxx_limit)']
- // p: parse_procselfmaps [so VG segments are setup so tool c=
an
- // call VG_(malloc)]
//--------------------------------------------------------------
{
Char* s;
@@ -2182,24 +2180,12 @@
// Process command line options to Valgrind + tool
// p: setup_client_stack() [for 'VG_(client_arg[cv]']
// p: setup_file_descriptors() [for 'VG_(fd_xxx_limit)']
- // p: parse_procselfmaps [so VG segments are setup so tool c=
an
- // call VG_(malloc)]
//--------------------------------------------------------------
VG_(debugLog)(1, "main", "Process Valgrind's command line options, "
" setup logging\n");
logging_to_fd =3D process_cmd_line_options(client_auxv, toolname);
=20
//--------------------------------------------------------------
- // Init tool part 2: post_clo_init
- // p: setup_client_stack() [for 'VG_(client_arg[cv]']
- // p: setup_file_descriptors() [for 'VG_(fd_xxx_limit)']
- // p: parse_procselfmaps [so VG segments are setup so tool c=
an
- // call VG_(malloc)]
- //--------------------------------------------------------------
- VG_(debugLog)(1, "main", "Initialise the tool part 2 (post_clo_init)\=
n");
- VG_TDICT_CALL(tool_post_clo_init);
-
- //--------------------------------------------------------------
// Print the preamble
// p: tl_pre_clo_init [for 'VG_(details).name' and frien=
ds]
// p: process_cmd_line_options() [for VG_(clo_verbosity), VG_(clo_x=
ml),
@@ -2211,6 +2197,16 @@
VG_(debugLog)(1, "main", "...finished the preamble\n");
=20
//--------------------------------------------------------------
+ // Init tool part 2: post_clo_init
+ // p: setup_client_stack() [for 'VG_(client_arg[cv]']
+ // p: setup_file_descriptors() [for 'VG_(fd_xxx_limit)']
+ // p: print_preamble() [so any warnings printed in post_cl=
o_init
+ // are shown after the preamble]
+ //--------------------------------------------------------------
+ VG_(debugLog)(1, "main", "Initialise the tool part 2 (post_clo_init)\=
n");
+ VG_TDICT_CALL(tool_post_clo_init);
+
+ //--------------------------------------------------------------
// Initialise translation table and translation cache
// p: aspacem [??]
// p: tl_pre_clo_init [for 'VG_(details).avg_translation_sizeB']
|
|
From: <sv...@va...> - 2005-09-25 19:13:23
|
Author: njn Date: 2005-09-25 20:13:21 +0100 (Sun, 25 Sep 2005) New Revision: 4770 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-09-25 19:11:45 UTC (rev 4= 769) +++ trunk/docs/internals/3_0_BUGSTATUS.txt 2005-09-25 19:13:21 UTC (rev 4= 770) @@ -162,7 +162,14 @@ FIXED-TRUNK: vg:4669 FIXED-30BRANCH: TODO =20 +---------------------------------------------------------------- +n-i-bz Cachegrind shows incorrect miss rates when counts are + greater than 32 bits =20 +FIXED-TRUNK: vg:4769 +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-09-25 19:11:46
|
Author: njn
Date: 2005-09-25 20:11:45 +0100 (Sun, 25 Sep 2005)
New Revision: 4769
Log:
Fix incorrect computation of miss rates due to Int/Long mixups <sigh>.
Modified:
trunk/coregrind/m_libcprint.c
trunk/include/pub_tool_libcprint.h
Modified: trunk/coregrind/m_libcprint.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_libcprint.c 2005-09-25 18:59:46 UTC (rev 4768)
+++ trunk/coregrind/m_libcprint.c 2005-09-25 19:11:45 UTC (rev 4769)
@@ -156,13 +156,19 @@
------------------------------------------------------------------ */
=20
// Percentify n/m with d decimal places. Includes the '%' symbol at the=
end.
-void VG_(percentify)(UInt n, UInt m, UInt d, Int n_buf, char buf[])=20
+// Right justifies in 'buf'.
+void VG_(percentify)(ULong n, ULong m, UInt d, Int n_buf, char buf[])=20
{
Int i, len, space;
ULong p1;
+ Char fmt[32];
=20
if (m =3D=3D 0) {
- VG_(sprintf)(buf, "--%%");
+ // Have to generate the format string in order to be flexible abou=
t
+ // the width of the field.
+ VG_(sprintf)(fmt, "%%-%lds", n_buf);
+ // fmt is now "%<n_buf>s" where <d> is 1,2,3...
+ VG_(sprintf)(buf, fmt, "--%");
return;
}
=20
@@ -173,7 +179,6 @@
} else {
ULong p2;
UInt ex;
- Char fmt[32];
switch (d) {
case 1: ex =3D 10; break;
case 2: ex =3D 100; break;
Modified: trunk/include/pub_tool_libcprint.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_libcprint.h 2005-09-25 18:59:46 UTC (rev 4768)
+++ trunk/include/pub_tool_libcprint.h 2005-09-25 19:11:45 UTC (rev 4769)
@@ -46,7 +46,8 @@
extern UInt VG_(vsprintf)( Char* buf, const HChar* format, va_list vargs=
);
=20
// Percentify n/m with d decimal places. Includes the '%' symbol at the=
end.
-extern void VG_(percentify)(UInt n, UInt m, UInt d, Int n_buf, char buf[=
]);
+// Right justifies in 'buf'.
+extern void VG_(percentify)(ULong n, ULong m, UInt d, Int n_buf, char bu=
f[]);
=20
/* ---------------------------------------------------------------------
Messages for the user
|
|
From: <sv...@va...> - 2005-09-25 18:59:50
|
Author: njn
Date: 2005-09-25 19:59:46 +0100 (Sun, 25 Sep 2005)
New Revision: 4768
Log:
Fix incorrect computation of miss rates due to Int/Long mixups <sigh>.
Modified:
branches/ASPACEM/coregrind/m_libcprint.c
branches/ASPACEM/include/pub_tool_libcprint.h
Modified: branches/ASPACEM/coregrind/m_libcprint.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/ASPACEM/coregrind/m_libcprint.c 2005-09-25 18:00:25 UTC (rev=
4767)
+++ branches/ASPACEM/coregrind/m_libcprint.c 2005-09-25 18:59:46 UTC (rev=
4768)
@@ -203,13 +203,19 @@
------------------------------------------------------------------ */
=20
// Percentify n/m with d decimal places. Includes the '%' symbol at the=
end.
-void VG_(percentify)(UInt n, UInt m, UInt d, Int n_buf, char buf[])=20
+// Right justifies in 'buf'.
+void VG_(percentify)(ULong n, ULong m, UInt d, Int n_buf, char buf[])=20
{
Int i, len, space;
ULong p1;
+ Char fmt[32];
=20
if (m =3D=3D 0) {
- VG_(sprintf)(buf, "--%%");
+ // Have to generate the format string in order to be flexible abou=
t
+ // the width of the field.
+ VG_(sprintf)(fmt, "%%-%lds", n_buf);
+ // fmt is now "%<n_buf>s" where <d> is 1,2,3...
+ VG_(sprintf)(buf, fmt, "--%");
return;
}
=20
@@ -220,7 +226,6 @@
} else {
ULong p2;
UInt ex;
- Char fmt[32];
switch (d) {
case 1: ex =3D 10; break;
case 2: ex =3D 100; break;
Modified: branches/ASPACEM/include/pub_tool_libcprint.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
--- branches/ASPACEM/include/pub_tool_libcprint.h 2005-09-25 18:00:25 UTC=
(rev 4767)
+++ branches/ASPACEM/include/pub_tool_libcprint.h 2005-09-25 18:59:46 UTC=
(rev 4768)
@@ -52,7 +52,8 @@
const HChar *format, va_list varg=
s );
=20
// Percentify n/m with d decimal places. Includes the '%' symbol at the=
end.
-extern void VG_(percentify)(UInt n, UInt m, UInt d, Int n_buf, char buf[=
]);
+// Right justifies in 'buf'.
+extern void VG_(percentify)(ULong n, ULong m, UInt d, Int n_buf, char bu=
f[]);
=20
/* ---------------------------------------------------------------------
Messages for the user
|
|
From: <sv...@va...> - 2005-09-25 18:00:27
|
Author: njn
Date: 2005-09-25 19:00:25 +0100 (Sun, 25 Sep 2005)
New Revision: 4767
Log:
Don't print unsigned longs as signed ints.
Modified:
branches/ASPACEM/cachegrind/cg_main.c
branches/ASPACEM/massif/ms_main.c
Modified: branches/ASPACEM/cachegrind/cg_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/ASPACEM/cachegrind/cg_main.c 2005-09-25 17:59:16 UTC (rev 47=
66)
+++ branches/ASPACEM/cachegrind/cg_main.c 2005-09-25 18:00:25 UTC (rev 47=
67)
@@ -984,7 +984,7 @@
l3 =3D ULong_width(Dw_total.a);
=20
/* Make format string, getting width right for numbers */
- VG_(sprintf)(fmt, "%%s %%,%dld", l1);
+ VG_(sprintf)(fmt, "%%s %%,%dllu", l1);
=20
VG_(message)(Vg_UserMsg, fmt, "I refs: ", Ir_total.a);
VG_(message)(Vg_UserMsg, fmt, "I1 misses: ", Ir_total.m1);
@@ -1007,7 +1007,7 @@
D_total.m2 =3D Dr_total.m2 + Dw_total.m2;
=20
/* Make format string, getting width right for numbers */
- VG_(sprintf)(fmt, "%%s %%,%dld (%%,%dld rd + %%,%dld wr)", l1, l2, l=
3);
+ VG_(sprintf)(fmt, "%%s %%,%dllu (%%,%dllu rd + %%,%dllu wr)", l1, l2=
, l3);
=20
VG_(message)(Vg_UserMsg, fmt, "D refs: ",=20
D_total.a, Dr_total.a, Dw_total.a);
Modified: branches/ASPACEM/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/ASPACEM/massif/ms_main.c 2005-09-25 17:59:16 UTC (rev 4766)
+++ branches/ASPACEM/massif/ms_main.c 2005-09-25 18:00:25 UTC (rev 4767)
@@ -1729,7 +1729,7 @@
print_summary(ULong total_ST, ULong heap_ST, ULong heap_admin_ST,
ULong stack_ST)
{
- VG_(message)(Vg_UserMsg, "Total spacetime: %,ld ms.B", total_ST);
+ VG_(message)(Vg_UserMsg, "Total spacetime: %,llu ms.B", total_ST);
=20
// Heap -------------------------------------------------------------=
-
if (clo_heap)
|
|
From: <sv...@va...> - 2005-09-25 17:59:21
|
Author: njn
Date: 2005-09-25 18:59:16 +0100 (Sun, 25 Sep 2005)
New Revision: 4766
Log:
actually, they're unsigned
Modified:
trunk/cachegrind/cg_main.c
trunk/massif/ms_main.c
Modified: trunk/cachegrind/cg_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/cachegrind/cg_main.c 2005-09-25 17:57:47 UTC (rev 4765)
+++ trunk/cachegrind/cg_main.c 2005-09-25 17:59:16 UTC (rev 4766)
@@ -976,7 +976,7 @@
l3 =3D ULong_width(Dw_total.a);
=20
/* Make format string, getting width right for numbers */
- VG_(sprintf)(fmt, "%%s %%,%dlld", l1);
+ VG_(sprintf)(fmt, "%%s %%,%dllu", l1);
=20
VG_(message)(Vg_UserMsg, fmt, "I refs: ", Ir_total.a);
VG_(message)(Vg_UserMsg, fmt, "I1 misses: ", Ir_total.m1);
@@ -999,7 +999,7 @@
D_total.m2 =3D Dr_total.m2 + Dw_total.m2;
=20
/* Make format string, getting width right for numbers */
- VG_(sprintf)(fmt, "%%s %%,%dlld (%%,%dlld rd + %%,%dlld wr)", l1, l2=
, l3);
+ VG_(sprintf)(fmt, "%%s %%,%dllu (%%,%dllu rd + %%,%dllu wr)", l1, l2=
, l3);
=20
VG_(message)(Vg_UserMsg, fmt, "D refs: ",=20
D_total.a, Dr_total.a, Dw_total.a);
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-09-25 17:57:47 UTC (rev 4765)
+++ trunk/massif/ms_main.c 2005-09-25 17:59:16 UTC (rev 4766)
@@ -1689,7 +1689,7 @@
print_summary(ULong total_ST, ULong heap_ST, ULong heap_admin_ST,
ULong stack_ST)
{
- VG_(message)(Vg_UserMsg, "Total spacetime: %,lld ms.B", total_ST);
+ VG_(message)(Vg_UserMsg, "Total spacetime: %,llu ms.B", total_ST);
=20
// Heap -------------------------------------------------------------=
-
if (clo_heap)
|
|
From: <sv...@va...> - 2005-09-25 17:57:52
|
Author: njn
Date: 2005-09-25 18:57:47 +0100 (Sun, 25 Sep 2005)
New Revision: 4765
Log:
Print longs as longs.
Modified:
trunk/cachegrind/cg_main.c
trunk/massif/ms_main.c
Modified: trunk/cachegrind/cg_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/cachegrind/cg_main.c 2005-09-25 17:27:39 UTC (rev 4764)
+++ trunk/cachegrind/cg_main.c 2005-09-25 17:57:47 UTC (rev 4765)
@@ -976,7 +976,7 @@
l3 =3D ULong_width(Dw_total.a);
=20
/* Make format string, getting width right for numbers */
- VG_(sprintf)(fmt, "%%s %%,%dld", l1);
+ VG_(sprintf)(fmt, "%%s %%,%dlld", l1);
=20
VG_(message)(Vg_UserMsg, fmt, "I refs: ", Ir_total.a);
VG_(message)(Vg_UserMsg, fmt, "I1 misses: ", Ir_total.m1);
@@ -999,7 +999,7 @@
D_total.m2 =3D Dr_total.m2 + Dw_total.m2;
=20
/* Make format string, getting width right for numbers */
- VG_(sprintf)(fmt, "%%s %%,%dld (%%,%dld rd + %%,%dld wr)", l1, l2, l=
3);
+ VG_(sprintf)(fmt, "%%s %%,%dlld (%%,%dlld rd + %%,%dlld wr)", l1, l2=
, l3);
=20
VG_(message)(Vg_UserMsg, fmt, "D refs: ",=20
D_total.a, Dr_total.a, Dw_total.a);
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-09-25 17:27:39 UTC (rev 4764)
+++ trunk/massif/ms_main.c 2005-09-25 17:57:47 UTC (rev 4765)
@@ -1689,7 +1689,7 @@
print_summary(ULong total_ST, ULong heap_ST, ULong heap_admin_ST,
ULong stack_ST)
{
- VG_(message)(Vg_UserMsg, "Total spacetime: %,ld ms.B", total_ST);
+ VG_(message)(Vg_UserMsg, "Total spacetime: %,lld ms.B", total_ST);
=20
// Heap -------------------------------------------------------------=
-
if (clo_heap)
|
|
From: <sv...@va...> - 2005-09-25 17:27:42
|
Author: njn Date: 2005-09-25 18:27:39 +0100 (Sun, 25 Sep 2005) New Revision: 4764 Log: Remove phony target becauses it causes a lot of unnecessary relinking whe= n doing "make install". Modified: branches/ASPACEM/Makefile.tool.am Modified: branches/ASPACEM/Makefile.tool.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 --- branches/ASPACEM/Makefile.tool.am 2005-09-25 16:35:56 UTC (rev 4763) +++ branches/ASPACEM/Makefile.tool.am 2005-09-25 17:27:39 UTC (rev 4764) @@ -11,7 +11,7 @@ $(top_builddir)/coregrind/libcoregrind.a \ @VEX_DIR@/libvex.a =20 -.PHONY: @VEX_DIR@/libvex.a +##.PHONY: @VEX_DIR@/libvex.a =20 @VEX_DIR@/libvex.a: @VEX_DIR@/priv/main/vex_svnversion.h $(MAKE) -C @VEX_DIR@ CC=3D"$(CC)" libvex.a EXTRA_CFLAGS=3D"@ARCH_CORE_A= M_CFLAGS@" |
|
From: <sv...@va...> - 2005-09-25 16:36:02
|
Author: njn
Date: 2005-09-25 17:35:56 +0100 (Sun, 25 Sep 2005)
New Revision: 4763
Log:
For Cachegrind and Massif, print the exename as well as the args.
I also backported the testing for NULL of these to avoid them being
lost when this gets merged back into the trunk.
Modified:
branches/ASPACEM/cachegrind/cg_main.c
branches/ASPACEM/massif/ms_main.c
Modified: branches/ASPACEM/cachegrind/cg_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/ASPACEM/cachegrind/cg_main.c 2005-09-25 15:45:10 UTC (rev 47=
62)
+++ branches/ASPACEM/cachegrind/cg_main.c 2005-09-25 16:35:56 UTC (rev 47=
63)
@@ -897,12 +897,17 @@
// "cmd:" line
VG_(strcpy)(buf, "cmd:");
VG_(write)(fd, (void*)buf, VG_(strlen)(buf));
+ if (VG_(args_the_exename)) {
+ VG_(write)(fd, " ", 1);
+ VG_(write)(fd, VG_(args_the_exename),=20
+ VG_(strlen)( VG_(args_the_exename) ));
+ }
for (i =3D 0; i < VG_(args_for_client).used; i++) {
- if (VG_(args_for_client).strs[i] =3D=3D NULL)
- continue;
- VG_(write)(fd, " ", 1);
- VG_(write)(fd, VG_(args_for_client).strs[i],=20
- VG_(strlen)(VG_(args_for_client).strs[i]));
+ if (VG_(args_for_client).strs[i]) {
+ VG_(write)(fd, " ", 1);
+ VG_(write)(fd, VG_(args_for_client).strs[i],=20
+ VG_(strlen)(VG_(args_for_client).strs[i]));
+ }
}
// "events:" line
VG_(sprintf)(buf, "\nevents: Ir I1mr I2mr Dr D1mr D2mr Dw D1mw D2mw\n=
");
Modified: branches/ASPACEM/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/ASPACEM/massif/ms_main.c 2005-09-25 15:45:10 UTC (rev 4762)
+++ branches/ASPACEM/massif/ms_main.c 2005-09-25 16:35:56 UTC (rev 4763)
@@ -1375,8 +1375,13 @@
=20
// File header, including command line
SPRINTF(buf, "JOB \"");
- for (i =3D 0; i < VG_(args_for_client).used; i++)
- SPRINTF(buf, "%s ", VG_(args_for_client).strs[i]);
+ if (VG_(args_the_exename)) {
+ SPRINTF(buf, "%s", VG_(args_the_exename));
+ }
+ for (i =3D 0; i < VG_(args_for_client).used; i++) {
+ if (VG_(args_for_client).strs[i])
+ SPRINTF(buf, " %s", VG_(args_for_client).strs[i]);
+ }
SPRINTF(buf, /*" (%d ms/sample)\"\n"*/ "\"\n"
"DATE \"\"\n"
"SAMPLE_UNIT \"ms\"\n"
@@ -1697,9 +1702,14 @@
}
=20
// Command line
- SPRINTF(buf, "Command: ");
- for (i =3D 0; i < VG_(args_for_client).used; i++)
- SPRINTF(buf, "%s ", VG_(args_for_client).strs[i]);
+ SPRINTF(buf, "Command:");
+ if (VG_(args_the_exename)) {
+ SPRINTF(buf, " %s", VG_(args_the_exename));
+ }
+ for (i =3D 0; i < VG_(args_for_client).used; i++) {
+ if (VG_(args_for_client).strs[i])
+ SPRINTF(buf, " %s", VG_(args_for_client).strs[i]);
+ }
SPRINTF(buf, "\n%s\n", maybe_p);
=20
if (clo_heap)
|
|
From: Nicholas N. <nj...@cs...> - 2005-09-25 16:16:03
|
On Sun, 25 Sep 2005, Julian Seward wrote: >>> But it's a start. Another odd thing is that if you use -d with both >>> inner and outer, the inner one's output isn't produced. >> >> This is due to ML_(fd_allowed) in the outer. It sees the sys_writes >> done by the inner on its own logfile descriptor and causes them to >> fail, thus making the output disappear. If you change ML_(fd_allowed) >> to always return True in the outer, then it works as one would expect. >> Problem is I can't see a clean way to fix this. > > Fixed (well, kludged, anyway). See r4758. So the real problem is that VG_(debugLog) calls write() but doesn't check the return value. Although there's not much it could do if it did check and saw a failure. I see a similar thing running Cachegrind under Cachegrind -- the innerCG writes the output file, and then the outerCG overwrites it with it's own version! A solution would be to allow you to specify the output filename. I think that's on the Bugzilla wishlist anyway. N |
|
From: <sv...@va...> - 2005-09-25 15:45:17
|
Author: njn
Date: 2005-09-25 16:45:10 +0100 (Sun, 25 Sep 2005)
New Revision: 4762
Log:
compiler warnings are useful
Modified:
branches/ASPACEM/coregrind/m_libcbase.c
Modified: branches/ASPACEM/coregrind/m_libcbase.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/ASPACEM/coregrind/m_libcbase.c 2005-09-25 15:16:25 UTC (rev =
4761)
+++ branches/ASPACEM/coregrind/m_libcbase.c 2005-09-25 15:45:10 UTC (rev =
4762)
@@ -350,7 +350,7 @@
sI +=3D 4;
}
if (sz =3D=3D 0)=20
- return;
+ return dest;
while (sz >=3D 4) {
dI[0] =3D sI[0];
sz -=3D 4;
@@ -358,7 +358,7 @@
sI +=3D 1;
}
if (sz =3D=3D 0)=20
- return;
+ return dest;
s =3D (const UChar*)sI;
d =3D (UChar*)dI;
}
|
|
From: Nicholas N. <nj...@cs...> - 2005-09-25 15:39:59
|
On Sun, 25 Sep 2005, sv...@va... wrote: > Log: > Allow --weird-hacks=enable-outer, which stops an outer valgrind zapping > the -d output from an inner one. Hmm, that is ugly. I also tried changing innerVG to write to fd 9, and then using "9>" on the command line to capture it. BTW, the ioctl-mmap weird hack is dead. I'll remove all traces of it. N |
|
From: <sv...@va...> - 2005-09-25 15:16:31
|
Author: sewardj
Date: 2005-09-25 16:16:25 +0100 (Sun, 25 Sep 2005)
New Revision: 4761
Log:
Vectorise and unroll VG_(memcpy).
Modified:
branches/ASPACEM/coregrind/m_libcbase.c
Modified: branches/ASPACEM/coregrind/m_libcbase.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/ASPACEM/coregrind/m_libcbase.c 2005-09-25 10:30:48 UTC (rev =
4760)
+++ branches/ASPACEM/coregrind/m_libcbase.c 2005-09-25 15:16:25 UTC (rev =
4761)
@@ -334,21 +334,33 @@
=20
void* VG_(memcpy) ( void *dest, const void *src, SizeT sz )
{
- const Char *s =3D (const Char *)src;
- Char *d =3D (Char *)dest;
+ const UChar* s =3D (const UChar*)src;
+ UChar* d =3D (UChar*)dest;
+ const UInt* sI =3D (const UInt*)src;
+ UInt* dI =3D (UInt*)dest;
=20
- while (sz >=3D 8) {
- d[0] =3D s[0];
- d[1] =3D s[1];
- d[2] =3D s[2];
- d[3] =3D s[3];
- d[4] =3D s[4];
- d[5] =3D s[5];
- d[6] =3D s[6];
- d[7] =3D s[7];
- sz -=3D 8;
- d +=3D 8;
- s +=3D 8;
+ if (VG_IS_4_ALIGNED(dI) && VG_IS_4_ALIGNED(sI)) {
+ while (sz >=3D 16) {
+ dI[0] =3D sI[0];
+ dI[1] =3D sI[1];
+ dI[2] =3D sI[2];
+ dI[3] =3D sI[3];
+ sz -=3D 16;
+ dI +=3D 4;
+ sI +=3D 4;
+ }
+ if (sz =3D=3D 0)=20
+ return;
+ while (sz >=3D 4) {
+ dI[0] =3D sI[0];
+ sz -=3D 4;
+ dI +=3D 1;
+ sI +=3D 1;
+ }
+ if (sz =3D=3D 0)=20
+ return;
+ s =3D (const UChar*)sI;
+ d =3D (UChar*)dI;
}
=20
while (sz--)
|
|
From: <sv...@va...> - 2005-09-25 10:30:55
|
Author: sewardj
Date: 2005-09-25 11:30:48 +0100 (Sun, 25 Sep 2005)
New Revision: 4760
Log:
Make inner valgrinds use a different VALGRIND_LIB. This isn't really
optional.
Modified:
branches/ASPACEM/coregrind/pub_core_libcproc.h
Modified: branches/ASPACEM/coregrind/pub_core_libcproc.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
--- branches/ASPACEM/coregrind/pub_core_libcproc.h 2005-09-25 10:16:46 UT=
C (rev 4759)
+++ branches/ASPACEM/coregrind/pub_core_libcproc.h 2005-09-25 10:30:48 UT=
C (rev 4760)
@@ -41,8 +41,14 @@
=20
/* The directory we look for all our auxillary files in. Useful for
running Valgrind out of a build tree without having to do "make
- install". */
-#define VALGRIND_LIB "VALGRIND_LIB"
+ install". Inner valgrinds require a different lib variable, else
+ they end up picking up .so's etc intended for the outer
+ valgrind. */
+#ifdef ENABLE_INNER
+# define VALGRIND_LIB "VALGRIND_LIB_INNER"
+#else
+# define VALGRIND_LIB "VALGRIND_LIB"
+#endif
=20
/* Additional command-line arguments; they are overridden by actual
command-line option. Each argument is separated by spaces. There
@@ -53,9 +59,8 @@
set by stage1 and read by stage2, and is used for recursive
invocations of Valgrind on child processes.=20
=20
- For self-hosting, the inner and outer Valgrinds must use different na=
mes
- to avoid collisions.
-*/
+ For self-hosting, the inner and outer Valgrinds must use different
+ names to avoid collisions. */
#ifdef ENABLE_INNER
# define VALGRIND_LAUNCHER "VALGRIND_LAUNCHER_INNER"
#else
|
|
From: <sv...@va...> - 2005-09-25 10:16:50
|
Author: sewardj
Date: 2005-09-25 11:16:46 +0100 (Sun, 25 Sep 2005)
New Revision: 4759
Log:
Unroll loop in VG_(memcpy). This is a bit less effective than
unroll-and-vectorise, but it's also simpler.
Modified:
branches/ASPACEM/coregrind/m_libcbase.c
Modified: branches/ASPACEM/coregrind/m_libcbase.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/ASPACEM/coregrind/m_libcbase.c 2005-09-25 09:55:29 UTC (rev =
4758)
+++ branches/ASPACEM/coregrind/m_libcbase.c 2005-09-25 10:16:46 UTC (rev =
4759)
@@ -337,6 +337,20 @@
const Char *s =3D (const Char *)src;
Char *d =3D (Char *)dest;
=20
+ while (sz >=3D 8) {
+ d[0] =3D s[0];
+ d[1] =3D s[1];
+ d[2] =3D s[2];
+ d[3] =3D s[3];
+ d[4] =3D s[4];
+ d[5] =3D s[5];
+ d[6] =3D s[6];
+ d[7] =3D s[7];
+ sz -=3D 8;
+ d +=3D 8;
+ s +=3D 8;
+ }
+
while (sz--)
*d++ =3D *s++;
=20
|
|
From: Julian S. <js...@ac...> - 2005-09-25 10:11:36
|
On Sunday 25 September 2005 11:05, Oswald Buddenhagen wrote: > On Sun, Sep 25, 2005 at 10:55:29AM +0100, sv...@va... wrote: > > + ok = ML_(fd_allowed)(ARG1, "write", tid, False); > > + if (!ok && ARG1 == 2/*stderr*/ > > + && VG_(strstr)(VG_(clo_weird_hacks),"enable-outer")) > > not sure how often the other conditions are true, but strstr is > slooooow. better parse the weird_hacks content at startup. I thought about this, hence the formulation. ML_(fd_allowed) will almost always return True under normal operation, so it doesn't matter that VG_(strstr) is a bit slow -- usually it won't get called. J |
|
From: Oswald B. <os...@kd...> - 2005-09-25 10:05:53
|
On Sun, Sep 25, 2005 at 10:55:29AM +0100, sv...@va... wrote: > + ok = ML_(fd_allowed)(ARG1, "write", tid, False); > + if (!ok && ARG1 == 2/*stderr*/ > + && VG_(strstr)(VG_(clo_weird_hacks),"enable-outer")) > not sure how often the other conditions are true, but strstr is slooooow. better parse the weird_hacks content at startup. -- Hi! I'm a .signature virus! Copy me into your ~/.signature, please! -- Chaos, panic, and disorder - my work here is done. |
|
From: Julian S. <js...@ac...> - 2005-09-25 09:58:57
|
> > But it's a start. Another odd thing is that if you use -d with both > > inner and outer, the inner one's output isn't produced. > > This is due to ML_(fd_allowed) in the outer. It sees the sys_writes > done by the inner on its own logfile descriptor and causes them to > fail, thus making the output disappear. If you change ML_(fd_allowed) > to always return True in the outer, then it works as one would expect. > Problem is I can't see a clean way to fix this. Fixed (well, kludged, anyway). See r4758. J |
|
From: <sv...@va...> - 2005-09-25 09:55:31
|
Author: sewardj
Date: 2005-09-25 10:55:29 +0100 (Sun, 25 Sep 2005)
New Revision: 4758
Log:
Allow --weird-hacks=3Denable-outer, which stops an outer valgrind zapping
the -d output from an inner one.
Modified:
branches/ASPACEM/coregrind/m_main.c
branches/ASPACEM/coregrind/m_syswrap/syswrap-generic.c
Modified: branches/ASPACEM/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
--- branches/ASPACEM/coregrind/m_main.c 2005-09-25 08:16:30 UTC (rev 4757=
)
+++ branches/ASPACEM/coregrind/m_main.c 2005-09-25 09:55:29 UTC (rev 4758=
)
@@ -890,7 +890,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,... recognised hacks: lax-ioctls,ioctl=
-mmap [none]\n"
+" --weird-hacks=3Dhack1,hack2,... known hacks: lax-ioctls,ioctl-mmap=
\n"
+" 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"
Modified: branches/ASPACEM/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
--- branches/ASPACEM/coregrind/m_syswrap/syswrap-generic.c 2005-09-25 08:=
16:30 UTC (rev 4757)
+++ branches/ASPACEM/coregrind/m_syswrap/syswrap-generic.c 2005-09-25 09:=
55:29 UTC (rev 4758)
@@ -4985,11 +4985,18 @@
=20
PRE(sys_write)
{
+ Bool ok;
*flags |=3D SfMayBlock;
PRINT("sys_write ( %d, %p, %llu )", ARG1, ARG2, (ULong)ARG3);
PRE_REG_READ3(ssize_t, "write",
unsigned int, fd, const char *, buf, vki_size_t, count)=
;
- if (!ML_(fd_allowed)(ARG1, "write", tid, False))
+ /* check to see if it is allowed. If not, try for an exemption from
+ --weird-hacks=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"))
+ ok =3D True;
+ if (!ok)
SET_STATUS_Failure( VKI_EBADF );
else
PRE_MEM_READ( "write(buf)", ARG2, ARG3 );
|
|
From: Oswald B. <os...@kd...> - 2005-09-25 09:49:18
|
On Sun, Sep 25, 2005 at 09:57:29AM +0100, Julian Seward wrote: > So even as it stands we can use cachegrind to profile V. The first big > surprise from that, running date on none on cachegrind, is that the > biggest expense is in VG_(memcpy). (!) I have no idea why memcpy is > so popular, but anyway: I added an extra loop to copy words rather than > bytes when possible. > novels have been written about optimizing string functions, in particular memcpy. mmx stuff and prefetch instructions can do wonders here (the latter at least for larger transfers). i think it would be a good idea to copy the implementations from glibc verbatim. the best is avoiding the copies in the first place, of course ... -- Hi! I'm a .signature virus! Copy me into your ~/.signature, please! -- Chaos, panic, and disorder - my work here is done. |