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
(32) |
Oct
|
Nov
|
Dec
|
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
|
|
|
|
1
(17) |
2
(11) |
3
(6) |
4
(6) |
|
5
(10) |
6
(5) |
7
(3) |
8
(7) |
9
(4) |
10
(4) |
11
(3) |
|
12
(3) |
13
(17) |
14
(18) |
15
(32) |
16
(22) |
17
(18) |
18
(10) |
|
19
(4) |
20
(3) |
21
(8) |
22
(15) |
23
(32) |
24
(28) |
25
(18) |
|
26
(20) |
27
(16) |
28
(28) |
29
(28) |
30
(27) |
|
|
|
From: <sv...@va...> - 2009-04-28 05:24:11
|
Author: njn
Date: 2009-04-28 06:23:57 +0100 (Tue, 28 Apr 2009)
New Revision: 9657
Log:
Numerous fixes related to --track-fds=yes.
- Activated fd initialisation on Darwin.
- Turned on the post-syscall wrapper for dup2, it was missing.
- Made fdleak_* tests more robust by checking for failure of basic
operations. Also tweaked their layout.
- Made fdleak_socketpair work on Darwin by changing the protocol.
- Fixed filter_fdleak by using perl instead of sed
- Tweaked fdleak_*.stderr.exp for readability
All fdleak tests except fdleak_ipv4 now pass.
Modified:
branches/DARWIN/coregrind/m_libcfile.c
branches/DARWIN/coregrind/m_syswrap/syswrap-darwin.c
branches/DARWIN/coregrind/m_syswrap/syswrap-generic.c
branches/DARWIN/none/tests/fdleak.h
branches/DARWIN/none/tests/fdleak_cmsg.c
branches/DARWIN/none/tests/fdleak_cmsg.stderr.exp
branches/DARWIN/none/tests/fdleak_creat.c
branches/DARWIN/none/tests/fdleak_creat.stderr.exp
branches/DARWIN/none/tests/fdleak_dup.c
branches/DARWIN/none/tests/fdleak_dup.stderr.exp
branches/DARWIN/none/tests/fdleak_dup2.c
branches/DARWIN/none/tests/fdleak_dup2.stderr.exp
branches/DARWIN/none/tests/fdleak_fcntl.c
branches/DARWIN/none/tests/fdleak_fcntl.stderr.exp
branches/DARWIN/none/tests/fdleak_ipv4.c
branches/DARWIN/none/tests/fdleak_ipv4.stderr.exp
branches/DARWIN/none/tests/fdleak_open.c
branches/DARWIN/none/tests/fdleak_open.stderr.exp
branches/DARWIN/none/tests/fdleak_pipe.c
branches/DARWIN/none/tests/fdleak_pipe.stderr.exp
branches/DARWIN/none/tests/fdleak_socketpair.c
branches/DARWIN/none/tests/fdleak_socketpair.stderr.exp
branches/DARWIN/none/tests/filter_fdleak
Modified: branches/DARWIN/coregrind/m_libcfile.c
===================================================================
--- branches/DARWIN/coregrind/m_libcfile.c 2009-04-28 01:55:01 UTC (rev 9656)
+++ branches/DARWIN/coregrind/m_libcfile.c 2009-04-28 05:23:57 UTC (rev 9657)
@@ -88,7 +88,6 @@
else
return False;
# elif defined(VGO_darwin)
- // GrP Leopard only, I think
HChar tmp[VKI_MAXPATHLEN+1];
if (0 == VG_(fcntl)(fd, VKI_F_GETPATH, (UWord)tmp)) {
if (n_buf > 0) {
Modified: branches/DARWIN/coregrind/m_syswrap/syswrap-darwin.c
===================================================================
--- branches/DARWIN/coregrind/m_syswrap/syswrap-darwin.c 2009-04-28 01:55:01 UTC (rev 9656)
+++ branches/DARWIN/coregrind/m_syswrap/syswrap-darwin.c 2009-04-28 05:23:57 UTC (rev 9657)
@@ -264,6 +264,8 @@
mach_msg(&msg, MACH_SEND_MSG|MACH_MSG_OPTION_NONE,
sizeof(msg), 0, 0, MACH_MSG_TIMEOUT_NONE, 0);
+ // DDD: This is reached sometimes on none/tests/manythreads, maybe
+ // because of the race above.
VG_(core_panic)("Thread exit failed?\n");
}
@@ -7044,7 +7046,7 @@
_____(VG_DARWIN_SYSCALL_CONSTRUCT_UNIX(87)), // old gethostname
_____(VG_DARWIN_SYSCALL_CONSTRUCT_UNIX(88)), // old sethostname
MACXY(__NR_getdtablesize, sys_getdtablesize),
- GENX_(__NR_dup2, sys_dup2),
+ GENXY(__NR_dup2, sys_dup2),
_____(VG_DARWIN_SYSCALL_CONSTRUCT_UNIX(91)), // old getdopt
MACXY(__NR_fcntl, sys_fcntl),
GENX_(__NR_select, sys_select),
Modified: branches/DARWIN/coregrind/m_syswrap/syswrap-generic.c
===================================================================
--- branches/DARWIN/coregrind/m_syswrap/syswrap-generic.c 2009-04-28 01:55:01 UTC (rev 9656)
+++ branches/DARWIN/coregrind/m_syswrap/syswrap-generic.c 2009-04-28 05:23:57 UTC (rev 9657)
@@ -738,14 +738,12 @@
VG_(message)(Vg_UserMsg, "");
}
-#if !defined(VGO_darwin)
-/* If /proc/self/fd doesn't exist for some weird reason (like you've
- got a kernel that doesn't have /proc support compiled in), then we
- need to find out what file descriptors we inherited from our parent
- process the hard way - by checking each fd in turn. */
-
+/* If /proc/self/fd doesn't exist (e.g. you've got a Linux kernel that doesn't
+ have /proc support compiled in, or a non-Linux kernel), then we need to
+ find out what file descriptors we inherited from our parent process the
+ hard way - by checking each fd in turn. */
static
-void do_hacky_preopened(void)
+void init_preopened_fds_without_proc_self_fd(void)
{
struct vki_rlimit lim;
UInt count;
@@ -754,33 +752,31 @@
if (VG_(getrlimit) (VKI_RLIMIT_NOFILE, &lim) == -1) {
/* Hmm. getrlimit() failed. Now we're screwed, so just choose
an arbitrarily high number. 1024 happens to be the limit in
- the 2.4 kernels. */
+ the 2.4 Linux kernels. */
count = 1024;
} else {
count = lim.rlim_cur;
}
for (i = 0; i < count; i++)
- if(VG_(fcntl)(i, VKI_F_GETFL, 0) != -1)
- ML_(record_fd_open_nameless)(-1, i);
+ if (VG_(fcntl)(i, VKI_F_GETFL, 0) != -1)
+ ML_(record_fd_open_named)(-1, i);
}
-#endif
/* Initialize the list of open file descriptors with the file descriptors
we inherited from out parent process. */
void VG_(init_preopened_fds)(void)
{
-#if defined(VGO_darwin)
- // DDD: #warning GrP fixme preopened fds
-#else
+// Nb: AIX5 is handled in syswrap-aix5.c.
+#if defined(VGO_linux)
Int ret;
struct vki_dirent d;
SysRes f;
f = VG_(open)("/proc/self/fd", VKI_O_RDONLY, 0);
if (sr_isError(f)) {
- do_hacky_preopened();
+ init_preopened_fds_without_proc_self_fd();
return;
}
@@ -806,6 +802,12 @@
out:
VG_(close)(sr_Res(f));
+
+#elif defined(VGO_darwin)
+ init_preopened_fds_without_proc_self_fd();
+
+#else
+# error Unknown OS
#endif
}
@@ -2111,7 +2113,8 @@
PRE(sys_ni_syscall)
{
PRINT("unimplemented (by the kernel) syscall %ld! (ni_syscall)\n",
-#if defined(VGO_linux) || defined(VGO_aix5)
+// Nb: AIX5 is handled in syswrap-aix5.c.
+#if defined(VGO_linux)
SYSNO
#elif defined(VGO_darwin)
VG_DARWIN_SYSNO_PRINT(SYSNO)
Modified: branches/DARWIN/none/tests/fdleak.h
===================================================================
--- branches/DARWIN/none/tests/fdleak.h 2009-04-28 01:55:01 UTC (rev 9656)
+++ branches/DARWIN/none/tests/fdleak.h 2009-04-28 05:23:57 UTC (rev 9657)
@@ -1,6 +1,19 @@
#ifndef _FDLEAK_H_
#define _FDLEAK_H_
+#include <stdlib.h>
+#include <stdio.h>
+
+#define DO(op) \
+ ({ \
+ long res = op; \
+ if (res < 0) { \
+ perror(#op); \
+ exit(1); \
+ }; \
+ res; \
+ })
+
/*
* The macro below closes file descriptors inherited from the process
* that forked the current process. Close these file descriptors right
Modified: branches/DARWIN/none/tests/fdleak_cmsg.c
===================================================================
--- branches/DARWIN/none/tests/fdleak_cmsg.c 2009-04-28 01:55:01 UTC (rev 9656)
+++ branches/DARWIN/none/tests/fdleak_cmsg.c 2009-04-28 05:23:57 UTC (rev 9657)
@@ -33,45 +33,23 @@
char fileb[24];
char sock[24];
-void
-server (void)
+void server (void)
{
int s, fd1, fd2;
struct sockaddr_un addr;
- fd1 = open(filea, O_RDWR | O_CREAT | O_TRUNC, 0750);
- if(fd1 == -1) {
- perror("open");
- exit(1);
- }
+ fd1 = DO( open(filea, O_RDWR | O_CREAT | O_TRUNC, 0750) );
+ fd2 = DO( open(fileb, O_RDWR | O_CREAT | O_TRUNC, 0750) );
+ s = DO( socket(PF_UNIX, SOCK_STREAM, 0) );
- fd2 = open(fileb, O_RDWR | O_CREAT | O_TRUNC, 0750);
- if(fd2 == -1) {
- perror("open");
- exit(1);
- }
-
- s = socket(PF_UNIX, SOCK_STREAM, 0);
- if(s == -1) {
- perror("socket");
- exit(1);
- }
-
memset(&addr, 0, sizeof(addr));
addr.sun_family = AF_UNIX;
sprintf(addr.sun_path, "%s", sock);
- unlink(addr.sun_path);
- if(bind(s, (struct sockaddr *)&addr, sizeof(addr)) == -1) {
- perror("bind");
- exit(1);
- }
+ unlink(sock);
+ DO( bind(s, (struct sockaddr *)&addr, sizeof(addr)) );
+ DO( listen(s, 5) );
- if(listen(s, 5) == -1) {
- perror("listen");
- exit(1);
- }
-
{
int x;
int baddrsize = 0;
@@ -82,11 +60,7 @@
struct iovec iov[1];
memset(&baddr, 0, sizeof(baddr));
- x = accept(s, (struct sockaddr *)&baddr, &baddrsize);
- if(x == -1) {
- perror("accept");
- exit(1);
- }
+ x = DO( accept(s, (struct sockaddr *)&baddr, &baddrsize) );
msg.msg_control = buf;
msg.msg_controllen = sizeof(buf);
@@ -103,15 +77,11 @@
msg.msg_iov = iov;
msg.msg_iovlen = 1;
- if(sendmsg(x, &msg, 0) == -1) {
- perror("sendmsg");
- exit(1);
- }
+ DO( sendmsg(x, &msg, 0) );
}
}
-void
-client (void)
+void client (void)
{
int s, fd1 = -1, fd2 = -1, size, count = 0, ret;
struct sockaddr_un addr;
@@ -129,7 +99,7 @@
iov[0].iov_len = sizeof(buf);
s = socket(PF_UNIX, SOCK_STREAM, 0);
- if(s == -1) {
+ if (s == -1) {
perror("socket");
exit(1);
}
@@ -140,16 +110,16 @@
do {
count++;
ret = connect(s, (struct sockaddr *)&addr, sizeof(addr));
- if(ret == -1) sleep(1);
+ if (ret == -1) sleep(1);
} while (count < 10 && ret == -1);
- if(ret == -1) {
+ if (ret == -1) {
perror("connect");
exit(1);
}
again:
- if((size = recvmsg(s, &msg, 0)) == -1) {
+ if ((size = recvmsg(s, &msg, 0)) == -1) {
if (errno == EINTR)
goto again; /* SIGCHLD from server exiting could interrupt */
perror("recvmsg");
@@ -158,8 +128,8 @@
cmsg = CMSG_FIRSTHDR(&msg);
- while(cmsg) {
- if(cmsg->cmsg_level == SOL_SOCKET &&
+ while (cmsg) {
+ if (cmsg->cmsg_level == SOL_SOCKET &&
cmsg->cmsg_type == SCM_RIGHTS &&
cmsg->cmsg_len == CMSG_LEN(sizeof(int) * 2)) {
fd1 = ((int *)CMSG_DATA(cmsg))[0];
@@ -169,21 +139,15 @@
cmsg = CMSG_NXTHDR(&msg, cmsg);
}
- if(fd1 != -1) write(fd1, "Yeah 1\n", 8);
- if(fd2 != -1) write(fd2, "Yeah 2\n", 8);
+ if (fd1 != -1) write(fd1, "Yeah 1\n", 8);
+ if (fd2 != -1) write(fd2, "Yeah 2\n", 8);
}
-int
-main (int argc, char **argv)
+int main (int argc, char **argv)
{
int pid, status;
-
-
-
-
-
CLOSE_INHERITED_FDS;
pid = getpid();
@@ -191,7 +155,7 @@
sprintf(fileb, "/tmp/data2.%d", pid);
sprintf(sock, "/tmp/sock.%d", pid);
- if((pid = fork()) == 0) {
+ if ((pid = fork()) == 0) {
server();
return 0;
}
@@ -200,8 +164,8 @@
wait(&status);
- unlink(filea);
- unlink(fileb);
- unlink(sock);
+ DO( unlink(filea) );
+ DO( unlink(fileb) );
+ DO( unlink(sock) );
return 0;
}
Modified: branches/DARWIN/none/tests/fdleak_cmsg.stderr.exp
===================================================================
--- branches/DARWIN/none/tests/fdleak_cmsg.stderr.exp 2009-04-28 01:55:01 UTC (rev 9656)
+++ branches/DARWIN/none/tests/fdleak_cmsg.stderr.exp 2009-04-28 05:23:57 UTC (rev 9657)
@@ -1,46 +1,46 @@
FILE DESCRIPTORS: 7 open at exit.
-Open AF_UNIX socket .: /tmp/sock
+Open AF_UNIX socket ...: /tmp/sock
...
-Open AF_UNIX socket .: /tmp/sock
+Open AF_UNIX socket ...: /tmp/sock
...
-Open file descriptor .: /tmp/data2
+Open file descriptor ...: /tmp/data2
...
-Open file descriptor .: /tmp/data1
+Open file descriptor ...: /tmp/data1
...
-Open file descriptor .: .
+Open file descriptor ...: ...
<inherited from parent>
-Open file descriptor .: .
+Open file descriptor ...: ...
<inherited from parent>
-Open file descriptor .: /dev/null
+Open file descriptor ...: /dev/null
<inherited from parent>
FILE DESCRIPTORS: 6 open at exit.
-Open file descriptor .: /tmp/data2
+Open file descriptor ...: /tmp/data2
...
-Open file descriptor .: /tmp/data1
+Open file descriptor ...: /tmp/data1
...
-Open AF_UNIX socket .: <unknown>
+Open AF_UNIX socket ...: <unknown>
...
-Open file descriptor .: .
+Open file descriptor ...: ...
<inherited from parent>
-Open file descriptor .: .
+Open file descriptor ...: ...
<inherited from parent>
-Open file descriptor .: /dev/null
+Open file descriptor ...: /dev/null
<inherited from parent>
Modified: branches/DARWIN/none/tests/fdleak_creat.c
===================================================================
--- branches/DARWIN/none/tests/fdleak_creat.c 2009-04-28 01:55:01 UTC (rev 9656)
+++ branches/DARWIN/none/tests/fdleak_creat.c 2009-04-28 05:23:57 UTC (rev 9657)
@@ -2,20 +2,15 @@
#include <stdio.h>
#include <fcntl.h>
#include "fdleak.h"
-int
-main (int argc, char **argv)
+
+int main (int argc, char **argv)
{
char filename[24];
-
-
-
-
-
CLOSE_INHERITED_FDS;
sprintf(filename, "/tmp/file.%d", getpid());
- creat(filename, 0);
- unlink(filename);
+ DO( creat(filename, 0) );
+ DO( unlink(filename) );
return 0;
}
Modified: branches/DARWIN/none/tests/fdleak_creat.stderr.exp
===================================================================
--- branches/DARWIN/none/tests/fdleak_creat.stderr.exp 2009-04-28 01:55:01 UTC (rev 9656)
+++ branches/DARWIN/none/tests/fdleak_creat.stderr.exp 2009-04-28 05:23:57 UTC (rev 9657)
@@ -1,16 +1,16 @@
FILE DESCRIPTORS: 4 open at exit.
-Open file descriptor .: /tmp/file
+Open file descriptor ...: /tmp/file
...
-Open file descriptor .: .
+Open file descriptor ...: ...
<inherited from parent>
-Open file descriptor .: .
+Open file descriptor ...: ...
<inherited from parent>
-Open file descriptor .: /dev/null
+Open file descriptor ...: /dev/null
<inherited from parent>
Modified: branches/DARWIN/none/tests/fdleak_dup.c
===================================================================
--- branches/DARWIN/none/tests/fdleak_dup.c 2009-04-28 01:55:01 UTC (rev 9656)
+++ branches/DARWIN/none/tests/fdleak_dup.c 2009-04-28 05:23:57 UTC (rev 9657)
@@ -1,19 +1,15 @@
#include <unistd.h>
#include <fcntl.h>
#include "fdleak.h"
-int
-main (int argc, char **argv)
+
+int main (int argc, char **argv)
{
int s;
-
-
-
-
-
CLOSE_INHERITED_FDS;
- s = open("/dev/null", O_RDONLY);
- dup(s);
+ s = DO( open("/dev/null", O_RDONLY) );
+ DO( dup(s) );
+
return 0;
}
Modified: branches/DARWIN/none/tests/fdleak_dup.stderr.exp
===================================================================
--- branches/DARWIN/none/tests/fdleak_dup.stderr.exp 2009-04-28 01:55:01 UTC (rev 9656)
+++ branches/DARWIN/none/tests/fdleak_dup.stderr.exp 2009-04-28 05:23:57 UTC (rev 9657)
@@ -1,19 +1,19 @@
FILE DESCRIPTORS: 5 open at exit.
-Open file descriptor .: /dev/null
+Open file descriptor ...: /dev/null
...
-Open file descriptor .: /dev/null
+Open file descriptor ...: /dev/null
...
-Open file descriptor .: .
+Open file descriptor ...: ...
<inherited from parent>
-Open file descriptor .: .
+Open file descriptor ...: ...
<inherited from parent>
-Open file descriptor .: /dev/null
+Open file descriptor ...: /dev/null
<inherited from parent>
Modified: branches/DARWIN/none/tests/fdleak_dup2.c
===================================================================
--- branches/DARWIN/none/tests/fdleak_dup2.c 2009-04-28 01:55:01 UTC (rev 9656)
+++ branches/DARWIN/none/tests/fdleak_dup2.c 2009-04-28 05:23:57 UTC (rev 9657)
@@ -1,23 +1,19 @@
#include <unistd.h>
#include <fcntl.h>
#include "fdleak.h"
-int
-main (int argc, char **argv)
+
+int main (int argc, char **argv)
{
int s1;
int s2;
-
-
-
-
-
CLOSE_INHERITED_FDS;
- s1 = open("/dev/null", O_RDONLY);
- s2 = open("/dev/null", O_RDONLY);
+ s1 = DO( open("/dev/null", O_RDONLY) );
+ s2 = DO( open("/dev/null", O_RDONLY) );
- dup2(s1, 20);
- dup2(s1, s2);
+ DO( dup2(s1, 20) ); // dup s1 as fd 20
+ DO( dup2(s1, s2) ); // dup s1 as fd s2, which closes existing s2 fd
+
return 0;
}
Modified: branches/DARWIN/none/tests/fdleak_dup2.stderr.exp
===================================================================
--- branches/DARWIN/none/tests/fdleak_dup2.stderr.exp 2009-04-28 01:55:01 UTC (rev 9656)
+++ branches/DARWIN/none/tests/fdleak_dup2.stderr.exp 2009-04-28 05:23:57 UTC (rev 9657)
@@ -1,22 +1,22 @@
FILE DESCRIPTORS: 6 open at exit.
-Open file descriptor .: /dev/null
+Open file descriptor ...: /dev/null
...
-Open file descriptor .: /dev/null
+Open file descriptor ...: /dev/null
...
-Open file descriptor .: /dev/null
+Open file descriptor ...: /dev/null
...
-Open file descriptor .: .
+Open file descriptor ...: ...
<inherited from parent>
-Open file descriptor .: .
+Open file descriptor ...: ...
<inherited from parent>
-Open file descriptor .: /dev/null
+Open file descriptor ...: /dev/null
<inherited from parent>
Modified: branches/DARWIN/none/tests/fdleak_fcntl.c
===================================================================
--- branches/DARWIN/none/tests/fdleak_fcntl.c 2009-04-28 01:55:01 UTC (rev 9656)
+++ branches/DARWIN/none/tests/fdleak_fcntl.c 2009-04-28 05:23:57 UTC (rev 9657)
@@ -2,19 +2,15 @@
#include <stdio.h>
#include <fcntl.h>
#include "fdleak.h"
-int
-main (int argc, char **argv)
+
+int main (int argc, char **argv)
{
int s1;
-
-
-
-
-
CLOSE_INHERITED_FDS;
- s1 = open("/dev/null", O_RDONLY);
- if(fcntl(s1, F_DUPFD, s1) == -1) perror("fcntl");
+ s1 = DO( open("/dev/null", O_RDONLY) );
+ DO( fcntl(s1, F_DUPFD, s1) );
+
return 0;
}
Modified: branches/DARWIN/none/tests/fdleak_fcntl.stderr.exp
===================================================================
--- branches/DARWIN/none/tests/fdleak_fcntl.stderr.exp 2009-04-28 01:55:01 UTC (rev 9656)
+++ branches/DARWIN/none/tests/fdleak_fcntl.stderr.exp 2009-04-28 05:23:57 UTC (rev 9657)
@@ -1,19 +1,19 @@
FILE DESCRIPTORS: 5 open at exit.
-Open file descriptor .: /dev/null
+Open file descriptor ...: /dev/null
...
-Open file descriptor .: /dev/null
+Open file descriptor ...: /dev/null
...
-Open file descriptor .: .
+Open file descriptor ...: ...
<inherited from parent>
-Open file descriptor .: .
+Open file descriptor ...: ...
<inherited from parent>
-Open file descriptor .: /dev/null
+Open file descriptor ...: /dev/null
<inherited from parent>
Modified: branches/DARWIN/none/tests/fdleak_ipv4.c
===================================================================
--- branches/DARWIN/none/tests/fdleak_ipv4.c 2009-04-28 01:55:01 UTC (rev 9656)
+++ branches/DARWIN/none/tests/fdleak_ipv4.c 2009-04-28 05:23:57 UTC (rev 9657)
@@ -9,59 +9,40 @@
#include <stdlib.h>
#include <string.h>
#include "fdleak.h"
-void
-server ()
+
+void server ()
{
int s, x;
struct sockaddr_in baddr;
struct sockaddr_in addr;
- int baddrsize = sizeof(baddr);
+ socklen_t baddrsize = sizeof(baddr);
int one = 1;
- s = socket(PF_INET, SOCK_STREAM, 0);
- if(s == -1) {
- perror("socket");
- exit(1);
- }
+ s = DO( socket(PF_INET, SOCK_STREAM, 0) );
- setsockopt(s, SOL_SOCKET, SO_REUSEADDR, &one, sizeof(int));
+ DO( setsockopt(s, SOL_SOCKET, SO_REUSEADDR, &one, sizeof(int)) );
memset(&addr, 0, sizeof(addr));
addr.sin_family = AF_INET;
addr.sin_addr.s_addr = inet_addr("127.0.0.1");
addr.sin_port = 12321;
- if(bind(s, (struct sockaddr *)&addr, sizeof(addr)) == -1) {
- perror("bind");
- exit(1);
- }
+ DO( bind(s, (struct sockaddr *)&addr, sizeof(addr)) );
- if(listen(s, 5) == -1) {
- perror("listen");
- exit(1);
- }
+ DO( listen(s, 5) );
memset(&baddr, 0, sizeof(baddr));
- x = accept(s, (struct sockaddr *)&baddr, &baddrsize);
- if(x == -1) {
- perror("accept");
- exit(1);
- }
+ x = DO( accept(s, (struct sockaddr *)&baddr, &baddrsize) );
- write(x, "hello", 6);
+ DO( write(x, "hello", 6) );
}
-void
-client ()
+void client ()
{
int s, count = 0, ret;
struct sockaddr_in addr;
char buf[1024];
- s = socket(PF_INET, SOCK_STREAM, 0);
- if(s == -1) {
- perror("socket");
- exit(1);
- }
+ s = DO( socket(PF_INET, SOCK_STREAM, 0) );
addr.sin_family = AF_INET;
addr.sin_addr.s_addr = inet_addr("127.0.0.1");
@@ -70,33 +51,27 @@
do {
count++;
ret = connect(s, (struct sockaddr *)&addr, sizeof(addr));
- if(ret == -1) sleep(1);
+ if (ret == -1) sleep(1);
} while (count < 10 && ret == -1);
- if(ret == -1) {
+ if (ret == -1) {
perror("connect");
exit(1);
}
- read(s, buf, sizeof(buf));
+ DO( read(s, buf, sizeof(buf)) );
printf("%s\n", buf);
}
-int
-main (int argc, char **argv)
+int main (int argc, char **argv)
{
int pid, status;
-
-
-
-
-
CLOSE_INHERITED_FDS;
- if((pid = fork()) == 0) {
+ if ((pid = fork()) == 0) {
server();
return 0;
}
Modified: branches/DARWIN/none/tests/fdleak_ipv4.stderr.exp
===================================================================
--- branches/DARWIN/none/tests/fdleak_ipv4.stderr.exp 2009-04-28 01:55:01 UTC (rev 9656)
+++ branches/DARWIN/none/tests/fdleak_ipv4.stderr.exp 2009-04-28 05:23:57 UTC (rev 9657)
@@ -7,13 +7,13 @@
Open AF_INET socket 3: 127.0.0.1:... <-> unbound
...
-Open file descriptor .: .
+Open file descriptor ...: ...
<inherited from parent>
-Open file descriptor .: .
+Open file descriptor ...: ...
<inherited from parent>
-Open file descriptor .: /dev/null
+Open file descriptor ...: /dev/null
<inherited from parent>
@@ -22,13 +22,13 @@
Open AF_INET socket 3: 127.0.0.1:... <-> 127.0.0.1:...
...
-Open file descriptor .: .
+Open file descriptor ...: ...
<inherited from parent>
-Open file descriptor .: .
+Open file descriptor ...: ...
<inherited from parent>
-Open file descriptor .: /dev/null
+Open file descriptor ...: /dev/null
<inherited from parent>
Modified: branches/DARWIN/none/tests/fdleak_open.c
===================================================================
--- branches/DARWIN/none/tests/fdleak_open.c 2009-04-28 01:55:01 UTC (rev 9656)
+++ branches/DARWIN/none/tests/fdleak_open.c 2009-04-28 05:23:57 UTC (rev 9657)
@@ -2,14 +2,11 @@
#include <unistd.h>
#include "fdleak.h"
-int
-main (int argc, char **argv)
+int main (int argc, char **argv)
{
-
-
-
CLOSE_INHERITED_FDS;
- open("/dev/null", O_RDONLY);
+ DO( open("/dev/null", O_RDONLY) );
+
return 0;
}
Modified: branches/DARWIN/none/tests/fdleak_open.stderr.exp
===================================================================
--- branches/DARWIN/none/tests/fdleak_open.stderr.exp 2009-04-28 01:55:01 UTC (rev 9656)
+++ branches/DARWIN/none/tests/fdleak_open.stderr.exp 2009-04-28 05:23:57 UTC (rev 9657)
@@ -1,16 +1,16 @@
FILE DESCRIPTORS: 4 open at exit.
-Open file descriptor .: /dev/null
+Open file descriptor ...: /dev/null
...
-Open file descriptor .: .
+Open file descriptor ...: ...
<inherited from parent>
-Open file descriptor .: .
+Open file descriptor ...: ...
<inherited from parent>
-Open file descriptor .: /dev/null
+Open file descriptor ...: /dev/null
<inherited from parent>
Modified: branches/DARWIN/none/tests/fdleak_pipe.c
===================================================================
--- branches/DARWIN/none/tests/fdleak_pipe.c 2009-04-28 01:55:01 UTC (rev 9656)
+++ branches/DARWIN/none/tests/fdleak_pipe.c 2009-04-28 05:23:57 UTC (rev 9657)
@@ -1,17 +1,13 @@
#include <unistd.h>
#include "fdleak.h"
-int
-main (int argc, char **argv)
+
+int main (int argc, char **argv)
{
int fds[2];
-
-
-
-
-
CLOSE_INHERITED_FDS;
- pipe(fds);
+ DO( pipe(fds) );
+
return 0;
}
Modified: branches/DARWIN/none/tests/fdleak_pipe.stderr.exp
===================================================================
--- branches/DARWIN/none/tests/fdleak_pipe.stderr.exp 2009-04-28 01:55:01 UTC (rev 9656)
+++ branches/DARWIN/none/tests/fdleak_pipe.stderr.exp 2009-04-28 05:23:57 UTC (rev 9657)
@@ -1,19 +1,19 @@
FILE DESCRIPTORS: 5 open at exit.
-Open file descriptor .:
+Open file descriptor ...:
...
-Open file descriptor .:
+Open file descriptor ...:
...
-Open file descriptor .: .
+Open file descriptor ...: ...
<inherited from parent>
-Open file descriptor .: .
+Open file descriptor ...: ...
<inherited from parent>
-Open file descriptor .: /dev/null
+Open file descriptor ...: /dev/null
<inherited from parent>
Modified: branches/DARWIN/none/tests/fdleak_socketpair.c
===================================================================
--- branches/DARWIN/none/tests/fdleak_socketpair.c 2009-04-28 01:55:01 UTC (rev 9656)
+++ branches/DARWIN/none/tests/fdleak_socketpair.c 2009-04-28 05:23:57 UTC (rev 9657)
@@ -1,17 +1,15 @@
#include <sys/socket.h>
#include <unistd.h>
#include "fdleak.h"
+#include <sys/errno.h>
-int
-main (int argc, char **argv)
+int main (int argc, char **argv)
{
int fds[2];
-
-
-
CLOSE_INHERITED_FDS;
- socketpair(AF_UNIX, SOCK_STREAM, PF_UNIX, fds);
+ DO( socketpair(AF_UNIX, SOCK_STREAM, PF_UNSPEC, fds) );
+
return 0;
}
Modified: branches/DARWIN/none/tests/fdleak_socketpair.stderr.exp
===================================================================
--- branches/DARWIN/none/tests/fdleak_socketpair.stderr.exp 2009-04-28 01:55:01 UTC (rev 9656)
+++ branches/DARWIN/none/tests/fdleak_socketpair.stderr.exp 2009-04-28 05:23:57 UTC (rev 9657)
@@ -1,19 +1,19 @@
FILE DESCRIPTORS: 5 open at exit.
-Open AF_UNIX socket .: <unknown>
+Open AF_UNIX socket ...: <unknown>
...
-Open AF_UNIX socket .: <unknown>
+Open AF_UNIX socket ...: <unknown>
...
-Open file descriptor .: .
+Open file descriptor ...: ...
<inherited from parent>
-Open file descriptor .: .
+Open file descriptor ...: ...
<inherited from parent>
-Open file descriptor .: /dev/null
+Open file descriptor ...: /dev/null
<inherited from parent>
Modified: branches/DARWIN/none/tests/filter_fdleak
===================================================================
--- branches/DARWIN/none/tests/filter_fdleak 2009-04-28 01:55:01 UTC (rev 9656)
+++ branches/DARWIN/none/tests/filter_fdleak 2009-04-28 05:23:57 UTC (rev 9657)
@@ -2,14 +2,16 @@
dir=`dirname $0`
-./filter_stderr |
+./filter_stderr |
-sed s/"^Open AF_UNIX socket [0-9]*: <unknown>/Open AF_UNIX socket .: <unknown>/" |
-sed s/"^Open \(AF_UNIX socket\|file descriptor\) [0-9]*: \/dev\/null/Open \\1 .: \/dev\/null/" |
-sed s/"^Open \(AF_UNIX socket\|file descriptor\) [0-9]*: \/tmp\/\(sock\|data1\|data2\|file\)\.[0-9]*/Open \\1 .: \/tmp\/\\2/" |
-sed s/"^Open file descriptor [0-9]*: .*/Open file descriptor .: ./" |
-sed s/"^Open file descriptor [0-9]*:$/Open file descriptor .:/" |
-sed s/"127.0.0.1:[0-9]*/127.0.0.1:.../g" |
+perl -p -e 's/^Open AF_UNIX socket [0-9]*: <unknown>/Open AF_UNIX socket ...: <unknown>/' |
+perl -p -e 's/^Open (AF_UNIX socket|file descriptor) [0-9]*: \/dev\/null/Open $1 ...: \/dev\/null/' |
+# Nb: on Darwin, /tmp is a symlink to /private/tmp, so sometimes it's
+# necessary to filter out the "/private" part.
+perl -p -e 's/^Open (AF_UNIX socket|file descriptor) [0-9]*: (\/private)?\/tmp\/(sock|data1|data2|file)\.[0-9]*/Open $1 ...: \/tmp\/$3/' |
+perl -p -e 's/^Open file descriptor [0-9]*: .*/Open file descriptor ...: .../' |
+perl -p -e 's/^Open file descriptor [0-9]*:$/Open file descriptor ...:/' |
+perl -p -e 's/127.0.0.1:[0-9]*/127.0.0.1:.../g' |
# Stack traces showing where fds were created have lots of variations:
# different numbers of entries, line numbers or not depending on whether
|
|
From: Tom H. <th...@cy...> - 2009-04-28 02:43:11
|
Nightly build on lloyd ( x86_64, Fedora 7 ) started at 2009-04-28 03:05:05 BST Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... done Regression test results follow == 478 tests, 0 stderr failures, 0 stdout failures, 0 post failures == |
|
From: Tom H. <th...@cy...> - 2009-04-28 02:28:05
|
Nightly build on mg ( x86_64, Fedora 9 ) started at 2009-04-28 03:10:04 BST Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 484 tests, 0 stderr failures, 1 stdout failure, 0 post failures == none/tests/linux/mremap2 (stdout) |
|
From: <sv...@va...> - 2009-04-28 01:55:13
|
Author: njn
Date: 2009-04-28 02:55:01 +0100 (Tue, 28 Apr 2009)
New Revision: 9656
Log:
Merged r9653..r9655 (fixed terminal signal handling in Darwin) from DARWIN
branch.
Added:
trunk/memcheck/tests/filter_addressable
Removed:
trunk/memcheck/tests/addressable.stderr.exp2
Modified:
trunk/coregrind/m_signals.c
trunk/memcheck/tests/Makefile.am
trunk/memcheck/tests/addressable.c
trunk/memcheck/tests/addressable.stderr.exp
trunk/memcheck/tests/addressable.vgtest
Modified: trunk/coregrind/m_signals.c
===================================================================
--- trunk/coregrind/m_signals.c 2009-04-28 01:30:45 UTC (rev 9655)
+++ trunk/coregrind/m_signals.c 2009-04-28 01:55:01 UTC (rev 9656)
@@ -1137,6 +1137,24 @@
VG_(sigprocmask)(VKI_SIG_SETMASK, &origmask, NULL);
}
+// The si_code describes where the signal came from. Some come from the
+// kernel, eg.: seg faults, illegal opcodes. Some come from the user, eg.:
+// from kill() (SI_USER), or timer_settime() (SI_TIMER), or an async I/O
+// request (SI_ASYNCIO). There's lots of implementation-defined leeway in
+// POSIX, but the user vs. kernal distinction is what we want here.
+static Bool is_signal_from_kernel(int si_code)
+{
+#if defined(VGO_linux) || defined(VGO_aix5)
+ // On Linux, SI_USER is zero, negative values are from the user, positive
+ // values are from the kernel. There are SI_FROMUSER and SI_FROMKERNEL
+ // macros but we don't use them here because other platforms don't have
+ // them.
+ return ( si_code > VKI_SI_USER ? True : False );
+#else
+# error Unknown OS
+#endif
+}
+
/*
Perform the default action of a signal. If the signal is fatal, it
marks all threads as needing to exit, but it doesn't actually kill
@@ -1208,15 +1226,17 @@
core = False;
}
- if ( (VG_(clo_verbosity) > 1 || (could_core && info->si_code > VKI_SI_USER))
- && !VG_(clo_xml) ) {
+ if ( (VG_(clo_verbosity) > 1 ||
+ (could_core && is_signal_from_kernel(info->si_code))
+ ) &&
+ !VG_(clo_xml) ) {
VG_(message)(Vg_UserMsg, "");
VG_(message)(Vg_UserMsg,
"Process terminating with default action of signal %d (%s)%s",
sigNo, signame(sigNo), core ? ": dumping core" : "");
/* Be helpful - decode some more details about this fault */
- if (info->si_code > VKI_SI_USER) {
+ if (is_signal_from_kernel(info->si_code)) {
const Char *event = NULL;
Bool haveaddr = True;
@@ -1299,7 +1319,7 @@
VG_(pp_ExeContext)( ec );
}
if (sigNo == VKI_SIGSEGV
- && info && info->si_code > VKI_SI_USER
+ && info && is_signal_from_kernel(info->si_code)
&& info->si_code == VKI_SEGV_MAPERR) {
VG_(message)(Vg_UserMsg, " If you believe this happened as a "
"result of a stack overflow in your");
@@ -1744,7 +1764,24 @@
info->si_code = (Short)info->si_code;
#endif
- if (info->si_code <= VKI_SI_USER) {
+ /* // debug code:
+ if (0) {
+ VG_(printf)("info->si_signo %d\n", info->si_signo);
+ VG_(printf)("info->si_errno %d\n", info->si_errno);
+ VG_(printf)("info->si_code %d\n", info->si_code);
+ VG_(printf)("info->si_pid %d\n", info->si_pid);
+ VG_(printf)("info->si_uid %d\n", info->si_uid);
+ VG_(printf)("info->si_status %d\n", info->si_status);
+ VG_(printf)("info->si_addr %p\n", info->si_addr);
+ }
+ */
+
+ /* Figure out if the signal is being sent from outside the process.
+ (Why do we care?) If the signal is from the user rather than the
+ kernel,, then treat it more like an async signal than a sync signal --
+ that is, merely queue it for later delivery. */
+
+ if (!is_signal_from_kernel(info->si_code)) {
/* If some user-process sent us one of these signals (ie,
they're not the result of a faulting instruction), then treat
it as an async signal. This is tricky because we could get
@@ -1812,7 +1849,7 @@
queue_signal(0, info); /* shared pending */
return;
- }
+ } /* if (!is_signal_from_kernel(info->si_code)) */
if (VG_(clo_trace_signals)) {
VG_(message)(Vg_DebugMsg, "signal %d arrived ... si_code=%d, "
Modified: trunk/memcheck/tests/Makefile.am
===================================================================
--- trunk/memcheck/tests/Makefile.am 2009-04-28 01:30:45 UTC (rev 9655)
+++ trunk/memcheck/tests/Makefile.am 2009-04-28 01:55:01 UTC (rev 9656)
@@ -23,9 +23,11 @@
DIST_SUBDIRS = x86 amd64 linux x86-linux .
-noinst_SCRIPTS = filter_allocs \
- filter_stderr filter_xml \
- filter_varinfo3
+noinst_SCRIPTS = \
+ filter_addressable \
+ filter_allocs \
+ filter_stderr filter_xml \
+ filter_varinfo3
EXTRA_DIST = $(noinst_SCRIPTS) \
addressable.stderr.exp addressable.stdout.exp addressable.vgtest \
Modified: trunk/memcheck/tests/addressable.c
===================================================================
--- trunk/memcheck/tests/addressable.c 2009-04-28 01:30:45 UTC (rev 9655)
+++ trunk/memcheck/tests/addressable.c 2009-04-28 01:55:01 UTC (rev 9656)
@@ -93,12 +93,12 @@
static struct test {
void (*test)(void);
- int sig;
+ int faults;
} tests[] = {
{ test1, 0 },
- { test2, SIGSEGV },
+ { test2, 1 },
{ test3, 0 },
- { test4, SIGSEGV },
+ { test4, 1 },
{ test5, 0 },
};
static const int n_tests = sizeof(tests)/sizeof(*tests);
@@ -140,18 +140,19 @@
if (WIFSIGNALED(status)) {
assert(WTERMSIG(status) != 0);
- if (WTERMSIG(status) == tests[i].sig)
+ if (1 == tests[i].faults &&
+ (WTERMSIG(status) == SIGSEGV ||
+ WTERMSIG(status) == SIGBUS))
printf("PASS\n");
else
printf("died with unexpected signal %d\n",
WTERMSIG(status));
} else if (WIFEXITED(status)) {
if (WEXITSTATUS(status) == 0) {
- if (tests[i].sig == 0)
+ if (tests[i].faults == 0)
printf("PASS\n");
else
- printf("exited without expected signal %d\n",
- tests[i].sig);
+ printf("exited without expected SIGSEGV or SIGBUS signal\n");
} else
printf("exited with unexpected status %d\n",
WEXITSTATUS(status));
Modified: trunk/memcheck/tests/addressable.stderr.exp
===================================================================
--- trunk/memcheck/tests/addressable.stderr.exp 2009-04-28 01:30:45 UTC (rev 9655)
+++ trunk/memcheck/tests/addressable.stderr.exp 2009-04-28 01:55:01 UTC (rev 9656)
@@ -15,8 +15,8 @@
by 0x........: main (addressable.c:125)
Address 0x........ is not stack'd, malloc'd or (recently) free'd
-Process terminating with default action of signal 11 (SIGSEGV)
- Access not within mapped region at address 0x........
+Process terminating with default action of signal N (SIGSEGV or SIGBUS)
+ Bad memory (SIGSEGV or SIGBUS) at address 0x........
at 0x........: test2 (addressable.c:51)
by 0x........: main (addressable.c:125)
If you believe this happened as a result of a stack overflow in your
@@ -36,8 +36,8 @@
For a detailed leak analysis, rerun with: --leak-check=yes
For counts of detected errors, rerun with: -v
-Process terminating with default action of signal 11 (SIGSEGV)
- Bad permissions for mapped region at address 0x........
+Process terminating with default action of signal N (SIGSEGV or SIGBUS)
+ Bad memory (SIGSEGV or SIGBUS) at address 0x........
at 0x........: test4 (addressable.c:74)
by 0x........: main (addressable.c:125)
Deleted: trunk/memcheck/tests/addressable.stderr.exp2
===================================================================
--- trunk/memcheck/tests/addressable.stderr.exp2 2009-04-28 01:30:45 UTC (rev 9655)
+++ trunk/memcheck/tests/addressable.stderr.exp2 2009-04-28 01:55:01 UTC (rev 9656)
@@ -1,70 +0,0 @@
-
-
-ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
-malloc/free: in use at exit: ... bytes in ... blocks.
-malloc/free: ... allocs, ... frees, ... bytes allocated.
-For a detailed leak analysis, rerun with: --leak-check=yes
-For counts of detected errors, rerun with: -v
-Unaddressable byte(s) found during client check request
- at 0x........: test2 (addressable.c:48)
- by 0x........: main (addressable.c:125)
- Address 0x........ is not stack'd, malloc'd or (recently) free'd
-
-Invalid write of size 1
- at 0x........: test2 (addressable.c:51)
- by 0x........: main (addressable.c:125)
- Address 0x........ is not stack'd, malloc'd or (recently) free'd
-
-Process terminating with default action of signal 11 (SIGSEGV)
- Access not within mapped region at address 0x........
- at 0x........: test2 (addressable.c:51)
- by 0x........: main (addressable.c:125)
-
-ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0)
-malloc/free: in use at exit: ... bytes in ... blocks.
-malloc/free: ... allocs, ... frees, ... bytes allocated.
-For a detailed leak analysis, rerun with: --leak-check=yes
-For counts of detected errors, rerun with: -v
-
-ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
-malloc/free: in use at exit: ... bytes in ... blocks.
-malloc/free: ... allocs, ... frees, ... bytes allocated.
-For a detailed leak analysis, rerun with: --leak-check=yes
-For counts of detected errors, rerun with: -v
-
-Process terminating with default action of signal 11 (SIGSEGV)
- Bad permissions for mapped region at address 0x........
- at 0x........: test4 (addressable.c:74)
- by 0x........: main (addressable.c:125)
-
-ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
-malloc/free: in use at exit: ... bytes in ... blocks.
-malloc/free: ... allocs, ... frees, ... bytes allocated.
-For a detailed leak analysis, rerun with: --leak-check=yes
-For counts of detected errors, rerun with: -v
-Uninitialised byte(s) found during client check request
- at 0x........: test5 (addressable.c:85)
- by 0x........: main (addressable.c:125)
- Address 0x........ is 10 bytes inside a block of size 20480 client-defined
- at 0x........: test5 (addressable.c:82)
- by 0x........: main (addressable.c:125)
-
-Uninitialised byte(s) found during client check request
- at 0x........: test5 (addressable.c:91)
- by 0x........: main (addressable.c:125)
- Address 0x........ is 20 bytes inside a block of size 20480 client-defined
- at 0x........: test5 (addressable.c:82)
- by 0x........: main (addressable.c:125)
-
-ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0)
-malloc/free: in use at exit: ... bytes in ... blocks.
-malloc/free: ... allocs, ... frees, ... bytes allocated.
-For a detailed leak analysis, rerun with: --leak-check=yes
-For counts of detected errors, rerun with: -v
-Use --track-origins=yes to see where uninitialised values come from
-
-ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
-malloc/free: in use at exit: ... bytes in ... blocks.
-malloc/free: ... allocs, ... frees, ... bytes allocated.
-For a detailed leak analysis, rerun with: --leak-check=yes
-For counts of detected errors, rerun with: -v
Modified: trunk/memcheck/tests/addressable.vgtest
===================================================================
--- trunk/memcheck/tests/addressable.vgtest 2009-04-28 01:30:45 UTC (rev 9655)
+++ trunk/memcheck/tests/addressable.vgtest 2009-04-28 01:55:01 UTC (rev 9656)
@@ -1,2 +1,2 @@
prog: addressable
-stderr_filter: filter_allocs
+stderr_filter: filter_addressable
Copied: trunk/memcheck/tests/filter_addressable (from rev 9654, branches/DARWIN/memcheck/tests/filter_addressable)
===================================================================
--- trunk/memcheck/tests/filter_addressable (rev 0)
+++ trunk/memcheck/tests/filter_addressable 2009-04-28 01:55:01 UTC (rev 9656)
@@ -0,0 +1,7 @@
+#! /bin/sh
+
+./filter_allocs |
+perl -p -e 's/(default action of signal) [0-9]+ \(SIG(SEGV|BUS)\)/$1 N \(SIGSEGV or SIGBUS\)/' |
+perl -p -e 's/(Bad permissions for mapped region|Access not within mapped region|Non-existent physical address) at address 0x/Bad memory (SIGSEGV or SIGBUS) at address 0x/'
+
+
|
|
From: <sv...@va...> - 2009-04-28 01:47:34
|
Author: njn Date: 2009-04-28 02:30:45 +0100 (Tue, 28 Apr 2009) New Revision: 9655 Log: Allow another fault permutation in 'addressable', and remove an out-of-date .exp file for it. Removed: branches/DARWIN/memcheck/tests/addressable.stderr.exp2 Modified: branches/DARWIN/memcheck/tests/filter_addressable Deleted: branches/DARWIN/memcheck/tests/addressable.stderr.exp2 =================================================================== --- branches/DARWIN/memcheck/tests/addressable.stderr.exp2 2009-04-28 01:22:02 UTC (rev 9654) +++ branches/DARWIN/memcheck/tests/addressable.stderr.exp2 2009-04-28 01:30:45 UTC (rev 9655) @@ -1,70 +0,0 @@ - - -ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) -malloc/free: in use at exit: ... bytes in ... blocks. -malloc/free: ... allocs, ... frees, ... bytes allocated. -For a detailed leak analysis, rerun with: --leak-check=yes -For counts of detected errors, rerun with: -v -Unaddressable byte(s) found during client check request - at 0x........: test2 (addressable.c:48) - by 0x........: main (addressable.c:125) - Address 0x........ is not stack'd, malloc'd or (recently) free'd - -Invalid write of size 1 - at 0x........: test2 (addressable.c:51) - by 0x........: main (addressable.c:125) - Address 0x........ is not stack'd, malloc'd or (recently) free'd - -Process terminating with default action of signal 11 (SIGSEGV) - Access not within mapped region at address 0x........ - at 0x........: test2 (addressable.c:51) - by 0x........: main (addressable.c:125) - -ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0) -malloc/free: in use at exit: ... bytes in ... blocks. -malloc/free: ... allocs, ... frees, ... bytes allocated. -For a detailed leak analysis, rerun with: --leak-check=yes -For counts of detected errors, rerun with: -v - -ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) -malloc/free: in use at exit: ... bytes in ... blocks. -malloc/free: ... allocs, ... frees, ... bytes allocated. -For a detailed leak analysis, rerun with: --leak-check=yes -For counts of detected errors, rerun with: -v - -Process terminating with default action of signal 11 (SIGSEGV) - Bad permissions for mapped region at address 0x........ - at 0x........: test4 (addressable.c:74) - by 0x........: main (addressable.c:125) - -ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) -malloc/free: in use at exit: ... bytes in ... blocks. -malloc/free: ... allocs, ... frees, ... bytes allocated. -For a detailed leak analysis, rerun with: --leak-check=yes -For counts of detected errors, rerun with: -v -Uninitialised byte(s) found during client check request - at 0x........: test5 (addressable.c:85) - by 0x........: main (addressable.c:125) - Address 0x........ is 10 bytes inside a block of size 20480 client-defined - at 0x........: test5 (addressable.c:82) - by 0x........: main (addressable.c:125) - -Uninitialised byte(s) found during client check request - at 0x........: test5 (addressable.c:91) - by 0x........: main (addressable.c:125) - Address 0x........ is 20 bytes inside a block of size 20480 client-defined - at 0x........: test5 (addressable.c:82) - by 0x........: main (addressable.c:125) - -ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 0 from 0) -malloc/free: in use at exit: ... bytes in ... blocks. -malloc/free: ... allocs, ... frees, ... bytes allocated. -For a detailed leak analysis, rerun with: --leak-check=yes -For counts of detected errors, rerun with: -v -Use --track-origins=yes to see where uninitialised values come from - -ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) -malloc/free: in use at exit: ... bytes in ... blocks. -malloc/free: ... allocs, ... frees, ... bytes allocated. -For a detailed leak analysis, rerun with: --leak-check=yes -For counts of detected errors, rerun with: -v Modified: branches/DARWIN/memcheck/tests/filter_addressable =================================================================== --- branches/DARWIN/memcheck/tests/filter_addressable 2009-04-28 01:22:02 UTC (rev 9654) +++ branches/DARWIN/memcheck/tests/filter_addressable 2009-04-28 01:30:45 UTC (rev 9655) @@ -2,6 +2,6 @@ ./filter_allocs | perl -p -e 's/(default action of signal) [0-9]+ \(SIG(SEGV|BUS)\)/$1 N \(SIGSEGV or SIGBUS\)/' | -perl -p -e 's/(Access not within mapped region|Non-existent physical address) at address 0x/Bad memory (SIGSEGV or SIGBUS) at address 0x/' +perl -p -e 's/(Bad permissions for mapped region|Access not within mapped region|Non-existent physical address) at address 0x/Bad memory (SIGSEGV or SIGBUS) at address 0x/' |
|
From: <sv...@va...> - 2009-04-28 01:22:08
|
Author: njn Date: 2009-04-28 02:22:02 +0100 (Tue, 28 Apr 2009) New Revision: 9654 Log: This should have gone in with r9653. Added: branches/DARWIN/memcheck/tests/filter_addressable Added: branches/DARWIN/memcheck/tests/filter_addressable =================================================================== --- branches/DARWIN/memcheck/tests/filter_addressable (rev 0) +++ branches/DARWIN/memcheck/tests/filter_addressable 2009-04-28 01:22:02 UTC (rev 9654) @@ -0,0 +1,7 @@ +#! /bin/sh + +./filter_allocs | +perl -p -e 's/(default action of signal) [0-9]+ \(SIG(SEGV|BUS)\)/$1 N \(SIGSEGV or SIGBUS\)/' | +perl -p -e 's/(Access not within mapped region|Non-existent physical address) at address 0x/Bad memory (SIGSEGV or SIGBUS) at address 0x/' + + Property changes on: branches/DARWIN/memcheck/tests/filter_addressable ___________________________________________________________________ Name: svn:executable + * |
|
From: <sv...@va...> - 2009-04-28 01:20:01
|
Author: njn
Date: 2009-04-28 02:19:54 +0100 (Tue, 28 Apr 2009)
New Revision: 9653
Log:
Fixed handling of some terminal signals on Darwin. Also made
memcheck/tests/addressable more portable.
memcheck/tests/{addressable,badjump,supp_unknown} now all pass on Darwin.
Modified:
branches/DARWIN/coregrind/m_signals.c
branches/DARWIN/memcheck/tests/Makefile.am
branches/DARWIN/memcheck/tests/addressable.c
branches/DARWIN/memcheck/tests/addressable.stderr.exp
branches/DARWIN/memcheck/tests/addressable.vgtest
Modified: branches/DARWIN/coregrind/m_signals.c
===================================================================
--- branches/DARWIN/coregrind/m_signals.c 2009-04-28 00:15:51 UTC (rev 9652)
+++ branches/DARWIN/coregrind/m_signals.c 2009-04-28 01:19:54 UTC (rev 9653)
@@ -1258,6 +1258,28 @@
VG_(sigprocmask)(VKI_SIG_SETMASK, &origmask, NULL);
}
+// The si_code describes where the signal came from. Some come from the
+// kernel, eg.: seg faults, illegal opcodes. Some come from the user, eg.:
+// from kill() (SI_USER), or timer_settime() (SI_TIMER), or an async I/O
+// request (SI_ASYNCIO). There's lots of implementation-defined leeway in
+// POSIX, but the user vs. kernal distinction is what we want here.
+static Bool is_signal_from_kernel(int si_code)
+{
+#if defined(VGO_linux) || defined(VGO_aix5)
+ // On Linux, SI_USER is zero, negative values are from the user, positive
+ // values are from the kernel. There are SI_FROMUSER and SI_FROMKERNEL
+ // macros but we don't use them here because other platforms don't have
+ // them.
+ return ( si_code > VKI_SI_USER ? True : False );
+#elif defined(VGO_darwin)
+ // On Darwin, SI_USER is 0x10001, values greater than that are from the
+ // user, small positive integers are from the kernel.
+ return ( si_code < VKI_SI_USER ? True : False );
+#else
+# error Unknown OS
+#endif
+}
+
/*
Perform the default action of a signal. If the signal is fatal, it
marks all threads as needing to exit, but it doesn't actually kill
@@ -1334,15 +1356,17 @@
core = False;
}
- if ( (VG_(clo_verbosity) > 1 || (could_core && info->si_code > VKI_SI_USER))
- && !VG_(clo_xml) ) {
+ if ( (VG_(clo_verbosity) > 1 ||
+ (could_core && is_signal_from_kernel(info->si_code))
+ ) &&
+ !VG_(clo_xml) ) {
VG_(message)(Vg_UserMsg, "");
VG_(message)(Vg_UserMsg,
"Process terminating with default action of signal %d (%s)%s",
sigNo, signame(sigNo), core ? ": dumping core" : "");
/* Be helpful - decode some more details about this fault */
- if (info->si_code > VKI_SI_USER) {
+ if (is_signal_from_kernel(info->si_code)) {
const Char *event = NULL;
Bool haveaddr = True;
@@ -1425,7 +1449,7 @@
VG_(pp_ExeContext)( ec );
}
if (sigNo == VKI_SIGSEGV
- && info && info->si_code > VKI_SI_USER
+ && info && is_signal_from_kernel(info->si_code)
&& info->si_code == VKI_SEGV_MAPERR) {
VG_(message)(Vg_UserMsg, " If you believe this happened as a "
"result of a stack overflow in your");
@@ -1935,7 +1959,6 @@
void sync_signalhandler ( Int sigNo,
vki_siginfo_t *info, struct vki_ucontext *uc )
{
- Bool is_from_outside_process;
ThreadId tid = VG_(lwpid_to_vgtid)(VG_(gettid)());
if (0)
@@ -1974,26 +1997,11 @@
*/
/* Figure out if the signal is being sent from outside the process.
- (Why do we care?) If it is, then treat it more like an async
- signal than a sync signal -- that is, merely queue it for later
- delivery. It seems the logic for detecting which case is which
- differs between Linux/AIX and Darwin. */
-# if defined(VGO_linux) || defined(VGO_aix5)
- is_from_outside_process = info->si_code <= VKI_SI_USER;
-# elif defined(VGO_darwin)
- /* see "Values for si_code" in /usr/include/sys/signal.h;
- all the XXX_NOOP values are zero. */
- /* Bugger it, let's just deliver the damn thing as if it was a sync
- signal from inside the process. I really don't understand
- enough about the rationale behind this logic to make informed
- decisions. JRS, 3 Mar 09. */
- is_from_outside_process = False;
- /* info->si_code == 0; */ /* originally .. */
-# else
-# error "Unknown OS"
-# endif
+ (Why do we care?) If the signal is from the user rather than the
+ kernel,, then treat it more like an async signal than a sync signal --
+ that is, merely queue it for later delivery. */
- if (is_from_outside_process) {
+ if (!is_signal_from_kernel(info->si_code)) {
/* If some user-process sent us one of these signals (ie,
they're not the result of a faulting instruction), then treat
it as an async signal. This is tricky because we could get
@@ -2061,7 +2069,7 @@
queue_signal(0, info); /* shared pending */
return;
- } /* if (is_from_outside_process) */
+ } /* if (!is_signal_from_kernel(info->si_code)) */
if (VG_(clo_trace_signals)) {
VG_(message)(Vg_DebugMsg, "signal %d arrived ... si_code=%d, "
Modified: branches/DARWIN/memcheck/tests/Makefile.am
===================================================================
--- branches/DARWIN/memcheck/tests/Makefile.am 2009-04-28 00:15:51 UTC (rev 9652)
+++ branches/DARWIN/memcheck/tests/Makefile.am 2009-04-28 01:19:54 UTC (rev 9653)
@@ -26,9 +26,11 @@
DIST_SUBDIRS = x86 amd64 linux darwin x86-linux .
-noinst_SCRIPTS = filter_allocs \
- filter_stderr filter_xml \
- filter_varinfo3
+noinst_SCRIPTS = \
+ filter_addressable \
+ filter_allocs \
+ filter_stderr filter_xml \
+ filter_varinfo3
EXTRA_DIST = $(noinst_SCRIPTS) \
addressable.stderr.exp addressable.stdout.exp addressable.vgtest \
Modified: branches/DARWIN/memcheck/tests/addressable.c
===================================================================
--- branches/DARWIN/memcheck/tests/addressable.c 2009-04-28 00:15:51 UTC (rev 9652)
+++ branches/DARWIN/memcheck/tests/addressable.c 2009-04-28 01:19:54 UTC (rev 9653)
@@ -93,12 +93,12 @@
static struct test {
void (*test)(void);
- int sig;
+ int faults;
} tests[] = {
{ test1, 0 },
- { test2, SIGSEGV },
+ { test2, 1 },
{ test3, 0 },
- { test4, SIGSEGV },
+ { test4, 1 },
{ test5, 0 },
};
static const int n_tests = sizeof(tests)/sizeof(*tests);
@@ -140,18 +140,19 @@
if (WIFSIGNALED(status)) {
assert(WTERMSIG(status) != 0);
- if (WTERMSIG(status) == tests[i].sig)
+ if (1 == tests[i].faults &&
+ (WTERMSIG(status) == SIGSEGV ||
+ WTERMSIG(status) == SIGBUS))
printf("PASS\n");
else
printf("died with unexpected signal %d\n",
WTERMSIG(status));
} else if (WIFEXITED(status)) {
if (WEXITSTATUS(status) == 0) {
- if (tests[i].sig == 0)
+ if (tests[i].faults == 0)
printf("PASS\n");
else
- printf("exited without expected signal %d\n",
- tests[i].sig);
+ printf("exited without expected SIGSEGV or SIGBUS signal\n");
} else
printf("exited with unexpected status %d\n",
WEXITSTATUS(status));
Modified: branches/DARWIN/memcheck/tests/addressable.stderr.exp
===================================================================
--- branches/DARWIN/memcheck/tests/addressable.stderr.exp 2009-04-28 00:15:51 UTC (rev 9652)
+++ branches/DARWIN/memcheck/tests/addressable.stderr.exp 2009-04-28 01:19:54 UTC (rev 9653)
@@ -15,8 +15,8 @@
by 0x........: main (addressable.c:125)
Address 0x........ is not stack'd, malloc'd or (recently) free'd
-Process terminating with default action of signal 11 (SIGSEGV)
- Access not within mapped region at address 0x........
+Process terminating with default action of signal N (SIGSEGV or SIGBUS)
+ Bad memory (SIGSEGV or SIGBUS) at address 0x........
at 0x........: test2 (addressable.c:51)
by 0x........: main (addressable.c:125)
If you believe this happened as a result of a stack overflow in your
@@ -36,8 +36,8 @@
For a detailed leak analysis, rerun with: --leak-check=yes
For counts of detected errors, rerun with: -v
-Process terminating with default action of signal 11 (SIGSEGV)
- Bad permissions for mapped region at address 0x........
+Process terminating with default action of signal N (SIGSEGV or SIGBUS)
+ Bad memory (SIGSEGV or SIGBUS) at address 0x........
at 0x........: test4 (addressable.c:74)
by 0x........: main (addressable.c:125)
Modified: branches/DARWIN/memcheck/tests/addressable.vgtest
===================================================================
--- branches/DARWIN/memcheck/tests/addressable.vgtest 2009-04-28 00:15:51 UTC (rev 9652)
+++ branches/DARWIN/memcheck/tests/addressable.vgtest 2009-04-28 01:19:54 UTC (rev 9653)
@@ -1,2 +1,2 @@
prog: addressable
-stderr_filter: filter_allocs
+stderr_filter: filter_addressable
|
|
From: <sv...@va...> - 2009-04-28 00:16:16
|
Author: njn
Date: 2009-04-28 01:15:51 +0100 (Tue, 28 Apr 2009)
New Revision: 9652
Log:
Make origin1-yes pass on Darwin.
Added:
branches/DARWIN/memcheck/tests/origin1-yes.stderr.exp-darwin
Modified:
branches/DARWIN/memcheck/tests/origin1-yes.c
branches/DARWIN/memcheck/tests/origin1-yes.stderr.exp
Modified: branches/DARWIN/memcheck/tests/origin1-yes.c
===================================================================
--- branches/DARWIN/memcheck/tests/origin1-yes.c 2009-04-27 22:50:26 UTC (rev 9651)
+++ branches/DARWIN/memcheck/tests/origin1-yes.c 2009-04-28 00:15:51 UTC (rev 9652)
@@ -86,12 +86,21 @@
}
// Heap segment (brk), uninitialised
+ // Nb: on Darwin, sbrk() is implemented via vm_allocate() which always
+ // zeroes its allocated memory. So we use a separate .exp file for Darwin,
+ // but we add an extra printf on Darwin only so that it cannot be
+ // successfully matched on non-Darwin platforms.
+#if defined(VGO_darwin)
+ fprintf(stderr, "\nUndef 7 of 8 (brk)\n");
+ fprintf(stderr, "\n(no complaint; sbrk initialises memory on Darwin)\n");
+#else
{
int* ptr_to_new_brk_limit = sbrk(4096);
int undef_brk_int = *ptr_to_new_brk_limit;
fprintf(stderr, "\nUndef 7 of 8 (brk)\n");
x += (undef_brk_int == 0x12345678 ? 15 : 26);
}
+#endif
// User block, marked as undefined
{
Modified: branches/DARWIN/memcheck/tests/origin1-yes.stderr.exp
===================================================================
--- branches/DARWIN/memcheck/tests/origin1-yes.stderr.exp 2009-04-27 22:50:26 UTC (rev 9651)
+++ branches/DARWIN/memcheck/tests/origin1-yes.stderr.exp 2009-04-28 00:15:51 UTC (rev 9652)
@@ -54,9 +54,9 @@
Undef 8 of 8 (MAKE_MEM_UNDEFINED)
Conditional jump or move depends on uninitialised value(s)
- at 0x........: main (origin1-yes.c:101)
+ at 0x........: main (origin1-yes.c:110)
Uninitialised value was created by a client request
- at 0x........: main (origin1-yes.c:99)
+ at 0x........: main (origin1-yes.c:108)
Def 1 of 3
Added: branches/DARWIN/memcheck/tests/origin1-yes.stderr.exp-darwin
===================================================================
--- branches/DARWIN/memcheck/tests/origin1-yes.stderr.exp-darwin (rev 0)
+++ branches/DARWIN/memcheck/tests/origin1-yes.stderr.exp-darwin 2009-04-28 00:15:51 UTC (rev 9652)
@@ -0,0 +1,60 @@
+
+Undef 1 of 8 (stack, 32 bit)
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: main (origin1-yes.c:37)
+ Uninitialised value was created by a stack allocation
+ at 0x........: main (origin1-yes.c:23)
+
+Undef 2 of 8 (stack, 32 bit)
+
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: main (origin1-yes.c:49)
+ Uninitialised value was created by a stack allocation
+ at 0x........: main (origin1-yes.c:23)
+
+Undef 3 of 8 (stack, 64 bit)
+
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: main (origin1-yes.c:56)
+ Uninitialised value was created by a stack allocation
+ at 0x........: main (origin1-yes.c:23)
+
+Undef 4 of 8 (mallocd, 32-bit)
+
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: main (origin1-yes.c:64)
+ Uninitialised value was created by a heap allocation
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: main (origin1-yes.c:61)
+
+Undef 5 of 8 (realloc)
+
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: main (origin1-yes.c:76)
+ Uninitialised value was created by a heap allocation
+ at 0x........: realloc (vg_replace_malloc.c:...)
+ by 0x........: main (origin1-yes.c:71)
+
+Undef 6 of 8 (MALLOCLIKE_BLOCK)
+
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: main (origin1-yes.c:85)
+ Uninitialised value was created by a heap allocation
+ at 0x........: main (origin1-yes.c:82)
+
+Undef 7 of 8 (brk)
+
+(no complaint; sbrk initialises memory on Darwin)
+
+Undef 8 of 8 (MAKE_MEM_UNDEFINED)
+
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: main (origin1-yes.c:110)
+ Uninitialised value was created by a client request
+ at 0x........: main (origin1-yes.c:108)
+
+Def 1 of 3
+
+Def 2 of 3
+
+Def 3 of 3
|
|
From: <sv...@va...> - 2009-04-27 22:50:43
|
Author: njn
Date: 2009-04-27 23:50:26 +0100 (Mon, 27 Apr 2009)
New Revision: 9651
Log:
Merge r9614 (make more_x86_fp compile on darwin) from the DARWIN branch.
Modified:
trunk/memcheck/tests/x86/more_x86_fp.c
Modified: trunk/memcheck/tests/x86/more_x86_fp.c
===================================================================
--- trunk/memcheck/tests/x86/more_x86_fp.c 2009-04-27 22:32:33 UTC (rev 9650)
+++ trunk/memcheck/tests/x86/more_x86_fp.c 2009-04-27 22:50:26 UTC (rev 9651)
@@ -187,8 +187,8 @@
for(i=0;i<8;i++)
dtab[i] = i + 1;
- TEST_ENV(&float_env16, "data16 fnstenv", "data16 fldenv");
- TEST_ENV(&float_env16, "data16 fnsave", "data16 frstor");
+ TEST_ENV(&float_env16, "data16/fnstenv", "data16/fldenv");
+ TEST_ENV(&float_env16, "data16/fnsave", "data16/frstor");
TEST_ENV(&float_env32, "fnstenv", "fldenv");
TEST_ENV(&float_env32, "fnsave", "frstor");
|
|
From: <sv...@va...> - 2009-04-27 22:32:46
|
Author: njn
Date: 2009-04-27 23:32:33 +0100 (Mon, 27 Apr 2009)
New Revision: 9650
Log:
Be less whiny about missing UUIDs in readmacho.c. Fixes three test
failures. Patch is from Julian.
Modified:
branches/DARWIN/coregrind/m_debuginfo/readmacho.c
Modified: branches/DARWIN/coregrind/m_debuginfo/readmacho.c
===================================================================
--- branches/DARWIN/coregrind/m_debuginfo/readmacho.c 2009-04-27 21:07:30 UTC (rev 9649)
+++ branches/DARWIN/coregrind/m_debuginfo/readmacho.c 2009-04-27 22:32:33 UTC (rev 9650)
@@ -826,21 +826,16 @@
VG_(deleteXA)( candSyms );
}
- /* Now we move on to reading the DWARF3, if we can find any. Since
- this always appears to come from dSYM files, we first need to
- check that we can verify that we've got the right file. That
- means, if a UUID was not found in the primary object, we might
- as well stop now, since without it we won't be able to verify
- that the dSYM matches the primary. And our policy is to load no
- debug info rather than incorrect debug info. Except, don't
- bother to complain about system libraries, it's pointless. */
- if (!have_uuid) {
- if (!is_systemish_library_name(di->filename)) {
- ML_(symerr)(di, True, "no UUID in Mach-O primary; "
- "so dSYM correctness can't be verified");
- }
+ /* If there's no UUID in the primary, don't even bother to try and
+ read any DWARF, since we won't be able to verify it matches.
+ Our policy is not to load debug info unless we can verify that
+ it matches the primary. Just declare success at this point.
+ And don't complain to the user, since that would cause us to
+ complain on objects compiled without -g. (Some versions of
+ XCode are observed to omit a UUID entry for object linked(?)
+ without -g. Others don't appear to omit it.) */
+ if (!have_uuid)
goto success;
- }
/* mmap the dSYM file to look for DWARF debug info. If successful,
use the .macho_img and .macho_img_szB in iid. */
|
|
From: <sv...@va...> - 2009-04-27 21:07:41
|
Author: sewardj
Date: 2009-04-27 22:07:30 +0100 (Mon, 27 Apr 2009)
New Revision: 9649
Log:
Add a list of bugs reported since 3.4.1 was released. 50 new bug
reports in 60 days.
Added:
trunk/docs/internals/3_4_BUGSTATUS.txt
Modified:
trunk/docs/internals/Makefile.am
Added: trunk/docs/internals/3_4_BUGSTATUS.txt
===================================================================
--- trunk/docs/internals/3_4_BUGSTATUS.txt (rev 0)
+++ trunk/docs/internals/3_4_BUGSTATUS.txt 2009-04-27 21:07:30 UTC (rev 9649)
@@ -0,0 +1,130 @@
+
+Bugs reported after the release of 3.4.1. Not sure what happened to
+any record of bugs reported after the release of 3.4.0. Oh well.
+
+For ref:
+
+(3.4.1.RC1: 24 Feb 2009, vex r1884, valgrind r9253).
+(3.4.1: 28 Feb 2009, vex r1884, valgrind r9293).
+
+-------------------
+
+185128 Helgrind: hg_main.c:3860 (hg_handle_client_request):
+ Assertion 'found' failed.
+
+185499 testcase usability kde brainfuck
+
+185517 Wrong write detection
+
+185794 "WARNING: unhandled syscall: 285" (fallocate) on x86_64
+ in several tools
+
+185801 exp-ptrcheck: evaluate_Dwarf3_Expr: unhandled DW_OP_ 0x93
+
+185816 Valgrind is unable to handle debug info for files with
+ split debug info that are prelinked afterwards
+
+186238 bbToIR_AMD64: disInstr miscalculated next %rip
+
+186248 Support full AMD floating-point implementation.
+
+186507 exp-ptrcheck unhandled syscalls prctl, etc.
+
+186790 Suppression pattern used for leaks are not reported
+
+186796 Symbols with length>200 in suppression files are ignored
+
+157154 documentation (leak-resolution doc speaks about num-callers
+ def=4) + what is a loss record
+
+186963 Report mutexes humanic names
+
+187043 sched_getcpu() produces Segmentation Fault
+
+187048 mutex PTHREAD_PROCESS_SHARED attribute missinterpretation
+
+187416 support for __NR_{setregid,setreuid,setresuid} in
+ exp-ptrcheck
+
+187680 valgrind: the 'impossible' happened (probably invalid)
+
+187760 valgrind: the 'impossible' happened: VG_(arena_memalign)
+
+188038 Helgrind internal error
+
+188046 bashisms in the configure script
+
+188127 vex amd64->IR: unhandled instruction bytes: 0xF0 0xF 0xB0 0xA
+ (ancient cmpxchg stuff, probably invalid now)
+
+188161 valgrind --track-origins=yes asserts (transient trunk
+ stuff, now fixed?)
+
+188248 pthread_cleanup_push, pthread_rwlock_unlock, assertion
+ fail "!lock->heldBy"
+
+188258 javascript fragment gives different result under valgrind
+ (requires SSSE3 exns; cant easily fix?)
+
+188427 Add support for epoll_create1 (with patch)
+
+188530 Support for SIOCGSTAMPNS
+
+188560 Include valgrind.spec in the tarball
+
+188572 Valgrind on Mac should suppress setenv() mem leak
+
+188656 valgrind doesn't build on x86_64 machine (INVALID)
+
+188657 Massif: ms_main.c:1700 (update_stack_stats): Assertion
+ 'stacks_szB >= -stack_szB_delta' failed
+
+188735 Cachegrind fails to produce any output on java apps
+
+188969 thread's stack is not computed correctly
+
+188984 Data corruption for returned from function long double
+ (fp grumblings)
+
+189028 impossible happend in unlinkBlock (m_mallocfree.c:206)
+ (usual memory corruption) -- invalid
+
+189054 Valgrind fails to build because of duplicate non-local
+ asm labels
+
+189143 crash when running using wine to run vcsetup.exe under
+ valgrind
+
+189183 valgrind core dump on aix5.3 platform
+
+189232 Illegal opcode - unhandled instruction bytes: 0xCB 0x55
+ 0x8B 0xEC
+
+189361 Cache simulation slightly wrong
+
+189661 Valgrind on Mac hangs on a race-condition
+
+189737 vex amd64->IR: unhandled instruction bytes: 0xAC (lods)
+
+189762 epoll_create syscall not handled (in ptrcheck)
+
+189763 drd assertion failure: s_threadinfo[tid].is_recording
+
+190219 unhandled syscall: 328 (x86-linux, __NR_eventfd2 ?)
+
+190390 Allow to set the number of frames for helgrind conflicts
+
+190391 okular crashes helgrind
+ ==181394
+
+190429 Valgrind reports lost of errors in ld.so with x86_64
+ 2.9.90 glibc
+
+(next 2 are wine-specific)
+190660 False warnings for _strlen
+190675 Spurious error "Wrong time stamp of .PDB file"
+
+190820 No debug information on powerpc-linux
+
+(-- 27 Apr 09 --)
+
Modified: trunk/docs/internals/Makefile.am
===================================================================
--- trunk/docs/internals/Makefile.am 2009-04-27 20:04:08 UTC (rev 9648)
+++ trunk/docs/internals/Makefile.am 2009-04-27 21:07:30 UTC (rev 9649)
@@ -1,6 +1,7 @@
EXTRA_DIST = \
3_0_BUGSTATUS.txt 3_1_BUGSTATUS.txt \
3_2_BUGSTATUS.txt 3_3_BUGSTATUS.txt \
+ 3_4_BUGSTATUS.txt \
BIG_APP_NOTES.txt \
directory-structure.txt \
howto_BUILD_KDE42.txt \
|
|
From: Johan B. <jb...@gm...> - 2009-04-27 20:31:30
|
Hi all, If the readelf code is unable to find a soname for the loaded library, it puts the soname as "NONE". Anyone know why NONE was chosen over the basename of the library filename? /Johan |
|
From: <sv...@va...> - 2009-04-27 20:04:12
|
Author: sewardj
Date: 2009-04-27 21:04:08 +0100 (Mon, 27 Apr 2009)
New Revision: 9648
Log:
Merge r9647 (comments on _debug_{svma,bias} fields in struct
_DebugInfo) from trunk.
Modified:
branches/DARWIN/coregrind/m_debuginfo/priv_storage.h
Modified: branches/DARWIN/coregrind/m_debuginfo/priv_storage.h
===================================================================
--- branches/DARWIN/coregrind/m_debuginfo/priv_storage.h 2009-04-27 19:59:10 UTC (rev 9647)
+++ branches/DARWIN/coregrind/m_debuginfo/priv_storage.h 2009-04-27 20:04:08 UTC (rev 9648)
@@ -333,6 +333,8 @@
Certainly text_ is mandatory on all platforms; not sure about
the rest though.
+ --------------------------------------------------------
+
Comment_on_IMPORTANT_CFSI_REPRESENTATIONAL_INVARIANTS: we require that
either (rx_map_size == 0 && cfsi == NULL) (the degenerate case)
@@ -370,6 +372,89 @@
(2) follows from (4) and (3). It is ensured by canonicaliseCFI.
(3) is ensured by ML_(addDiCfSI).
(4) is ensured by canonicaliseCFI.
+
+ --------------------------------------------------------
+
+ Comment_on_DEBUG_SVMA_and_DEBUG_BIAS_fields:
+
+ The _debug_{svma,bias} fields were added as part of a fix to
+ #185816. The problem encompassed in that bug report was that it
+ wasn't correct to use apply the bias values deduced for a
+ primary object to its associated debuginfo object, because the
+ debuginfo object (or the primary) could have been prelinked to a
+ different SVMA. Hence debuginfo and primary objects need to
+ have their own biases.
+
+ ------ JRS: (referring to r9329): ------
+ Let me see if I understand the workings correctly. Initially
+ the _debug_ values are set to the same values as the "normal"
+ ones, as there's a bunch of bits of code like this (in
+ readelf.c)
+
+ di->text_svma = svma;
+ ...
+ di->text_bias = rx_bias;
+ di->text_debug_svma = svma;
+ di->text_debug_bias = rx_bias;
+
+ If a debuginfo object subsequently shows up then the
+ _debug_svma/bias are set for the debuginfo object. Result is
+ that if there's no debuginfo object then the values are the same
+ as the primary-object values, and if there is a debuginfo object
+ then they will (or at least may) be different.
+
+ Then when we need to actually bias something, we'll have to
+ decide whether to use the primary bias or the debuginfo bias.
+ And the strategy is to use the primary bias for ELF symbols but
+ the debuginfo bias for anything pulled out of Dwarf.
+
+ ------ THH: ------
+ Correct - the debug_svma and bias values apply to any address
+ read from the debug data regardless of where that debug data is
+ stored and the other values are used for addresses from other
+ places (primarily the symbol table).
+
+ ------ JRS: ------
+ Ok; so this was my only area of concern. Are there any
+ corner-case scenarios where this wouldn't be right? It sounds
+ like we're assuming the ELF symbols come from the primary object
+ and, if there is a debug object, then all the Dwarf comes from
+ there. But what if (eg) both symbols and Dwarf come from the
+ debug object? Is that even possible or allowable?
+
+ ------ THH: ------
+ You may have a point...
+
+ The current logic is to try and take any one set of data from
+ either the base object or the debug object. There are four sets
+ of data we consider:
+
+ - Symbol Table
+ - Stabs
+ - DWARF1
+ - DWARF2
+
+ If we see the primary section for a given set in the base object
+ then we ignore all sections relating to that set in the debug
+ object.
+
+ Now in principle if we saw a secondary section (like debug_line
+ say) in the base object, but not the main section (debug_info in
+ this case) then we would take debug_info from the debug object
+ but would use the debug_line from the base object unless we saw
+ a replacement copy in the debug object. That's probably unlikely
+ however.
+
+ A bigger issue might be, as you say, the symbol table as we will
+ pick that up from the debug object if it isn't in the base. The
+ dynamic symbol table will always have to be in the base object
+ though so we will have to be careful when processing symbols to
+ know which table we are reading in that case.
+
+ What we probably need to do is tell read_elf_symtab which object
+ the symbols it is being asked to read came from.
+
+ (A followup patch to deal with this was committed in r9469).
*/
/* .text */
Bool text_present;
|
|
From: <sv...@va...> - 2009-04-27 19:59:15
|
Author: sewardj
Date: 2009-04-27 20:59:10 +0100 (Mon, 27 Apr 2009)
New Revision: 9647
Log:
Comment-only change: add comments pertaining to revs 9329 and 9469,
which were a fix for #185816. These commits added _debug_{svma,bias}
fields to struct _DebugInfo.
Modified:
trunk/coregrind/m_debuginfo/priv_storage.h
Modified: trunk/coregrind/m_debuginfo/priv_storage.h
===================================================================
--- trunk/coregrind/m_debuginfo/priv_storage.h 2009-04-27 08:04:57 UTC (rev 9646)
+++ trunk/coregrind/m_debuginfo/priv_storage.h 2009-04-27 19:59:10 UTC (rev 9647)
@@ -333,6 +333,8 @@
Certainly text_ is mandatory on all platforms; not sure about
the rest though.
+ --------------------------------------------------------
+
Comment_on_IMPORTANT_CFSI_REPRESENTATIONAL_INVARIANTS: we require that
either (rx_map_size == 0 && cfsi == NULL) (the degenerate case)
@@ -370,6 +372,89 @@
(2) follows from (4) and (3). It is ensured by canonicaliseCFI.
(3) is ensured by ML_(addDiCfSI).
(4) is ensured by canonicaliseCFI.
+
+ --------------------------------------------------------
+
+ Comment_on_DEBUG_SVMA_and_DEBUG_BIAS_fields:
+
+ The _debug_{svma,bias} fields were added as part of a fix to
+ #185816. The problem encompassed in that bug report was that it
+ wasn't correct to use apply the bias values deduced for a
+ primary object to its associated debuginfo object, because the
+ debuginfo object (or the primary) could have been prelinked to a
+ different SVMA. Hence debuginfo and primary objects need to
+ have their own biases.
+
+ ------ JRS: (referring to r9329): ------
+ Let me see if I understand the workings correctly. Initially
+ the _debug_ values are set to the same values as the "normal"
+ ones, as there's a bunch of bits of code like this (in
+ readelf.c)
+
+ di->text_svma = svma;
+ ...
+ di->text_bias = rx_bias;
+ di->text_debug_svma = svma;
+ di->text_debug_bias = rx_bias;
+
+ If a debuginfo object subsequently shows up then the
+ _debug_svma/bias are set for the debuginfo object. Result is
+ that if there's no debuginfo object then the values are the same
+ as the primary-object values, and if there is a debuginfo object
+ then they will (or at least may) be different.
+
+ Then when we need to actually bias something, we'll have to
+ decide whether to use the primary bias or the debuginfo bias.
+ And the strategy is to use the primary bias for ELF symbols but
+ the debuginfo bias for anything pulled out of Dwarf.
+
+ ------ THH: ------
+ Correct - the debug_svma and bias values apply to any address
+ read from the debug data regardless of where that debug data is
+ stored and the other values are used for addresses from other
+ places (primarily the symbol table).
+
+ ------ JRS: ------
+ Ok; so this was my only area of concern. Are there any
+ corner-case scenarios where this wouldn't be right? It sounds
+ like we're assuming the ELF symbols come from the primary object
+ and, if there is a debug object, then all the Dwarf comes from
+ there. But what if (eg) both symbols and Dwarf come from the
+ debug object? Is that even possible or allowable?
+
+ ------ THH: ------
+ You may have a point...
+
+ The current logic is to try and take any one set of data from
+ either the base object or the debug object. There are four sets
+ of data we consider:
+
+ - Symbol Table
+ - Stabs
+ - DWARF1
+ - DWARF2
+
+ If we see the primary section for a given set in the base object
+ then we ignore all sections relating to that set in the debug
+ object.
+
+ Now in principle if we saw a secondary section (like debug_line
+ say) in the base object, but not the main section (debug_info in
+ this case) then we would take debug_info from the debug object
+ but would use the debug_line from the base object unless we saw
+ a replacement copy in the debug object. That's probably unlikely
+ however.
+
+ A bigger issue might be, as you say, the symbol table as we will
+ pick that up from the debug object if it isn't in the base. The
+ dynamic symbol table will always have to be in the base object
+ though so we will have to be careful when processing symbols to
+ know which table we are reading in that case.
+
+ What we probably need to do is tell read_elf_symtab which object
+ the symbols it is being asked to read came from.
+
+ (A followup patch to deal with this was committed in r9469).
*/
/* .text */
Bool text_present;
|
|
From: Nicholas N. <n.n...@gm...> - 2009-04-27 17:33:25
|
Nightly build on ocean32 ( Ubuntu 8.10, Intel x86-64 (32-bit only) ) started at 2009-04-28 03:00:01 EST
Results unchanged from 24 hours ago
Checking out valgrind source tree ... done
Configuring valgrind ... done
Building valgrind ... done
Running regression tests ... failed
Regression test results follow
== 446 tests, 7 stderr failures, 2 stdout failures, 0 post failures ==
memcheck/tests/linux/stack_switch (stderr)
memcheck/tests/origin1-yes (stderr)
memcheck/tests/origin5-bz2 (stderr)
none/tests/linux/mremap2 (stdout)
none/tests/shell (stdout)
none/tests/shell (stderr)
none/tests/shell_valid1 (stderr)
none/tests/shell_valid2 (stderr)
none/tests/shell_valid3 (stderr)
=================================================
./valgrind/memcheck/tests/linux/stack_switch.stderr.diff
=================================================
--- stack_switch.stderr.exp 2009-04-28 03:19:13.000000000 +1000
+++ stack_switch.stderr.out 2009-04-28 03:31:09.000000000 +1000
@@ -0,0 +1,2 @@
+Syscall param clone(child_tidptr) contains uninitialised byte(s)
+ ...
=================================================
./valgrind/memcheck/tests/origin1-yes.stderr.diff
=================================================
--- origin1-yes.stderr.exp 2009-04-28 03:19:25.000000000 +1000
+++ origin1-yes.stderr.out 2009-04-28 03:31:26.000000000 +1000
@@ -47,7 +47,7 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin1-yes.c:93)
Uninitialised value was created
- at 0x........: brk (in /...libc...)
+ at 0x........: ??? (in /lib32/ld-2.9.so)
by 0x........: sbrk (in /...libc...)
by 0x........: main (origin1-yes.c:90)
=================================================
./valgrind/memcheck/tests/origin5-bz2.stderr.diff-glibc25-amd64
=================================================
--- origin5-bz2.stderr.exp-glibc25-amd64 2009-04-28 03:19:24.000000000 +1000
+++ origin5-bz2.stderr.out 2009-04-28 03:31:30.000000000 +1000
@@ -11,7 +11,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: handle_compress (origin5-bz2.c:4686)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
@@ -19,7 +19,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: handle_compress (origin5-bz2.c:4686)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
@@ -27,7 +27,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: mainSort (origin5-bz2.c:2820)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -38,7 +38,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: mainSort (origin5-bz2.c:2823)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -49,7 +49,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: mainSort (origin5-bz2.c:2854)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -60,7 +60,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: mainSort (origin5-bz2.c:2858)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -71,7 +71,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: mainSort (origin5-bz2.c:2963)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -82,7 +82,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: mainSort (origin5-bz2.c:2964)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -93,7 +93,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: fallbackSort (origin5-bz2.c:2269)
by 0x........: BZ2_blockSort (origin5-bz2.c:3116)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -104,7 +104,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: fallbackSort (origin5-bz2.c:2275)
by 0x........: BZ2_blockSort (origin5-bz2.c:3116)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
=================================================
./valgrind/memcheck/tests/origin5-bz2.stderr.diff-glibc25-x86
=================================================
--- origin5-bz2.stderr.exp-glibc25-x86 2009-04-28 03:19:25.000000000 +1000
+++ origin5-bz2.stderr.out 2009-04-28 03:31:30.000000000 +1000
@@ -28,7 +28,8 @@
at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 4
- at 0x........: BZ2_blockSort (origin5-bz2.c:2820)
+ at 0x........: mainSort (origin5-bz2.c:2820)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -38,7 +39,8 @@
at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 4
- at 0x........: BZ2_blockSort (origin5-bz2.c:2823)
+ at 0x........: mainSort (origin5-bz2.c:2823)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -48,7 +50,8 @@
at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 4
- at 0x........: BZ2_blockSort (origin5-bz2.c:2855)
+ at 0x........: mainSort (origin5-bz2.c:2854)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -58,7 +61,8 @@
at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 4
- at 0x........: BZ2_blockSort (origin5-bz2.c:2859)
+ at 0x........: mainSort (origin5-bz2.c:2858)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -68,7 +72,8 @@
at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 4
- at 0x........: BZ2_blockSort (origin5-bz2.c:2963)
+ at 0x........: mainSort (origin5-bz2.c:2963)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -78,7 +83,8 @@
at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 4
- at 0x........: BZ2_blockSort (origin5-bz2.c:2964)
+ at 0x........: mainSort (origin5-bz2.c:2964)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
=================================================
./valgrind/memcheck/tests/origin5-bz2.stderr.diff-glibc27-ppc64
=================================================
--- origin5-bz2.stderr.exp-glibc27-ppc64 2009-04-28 03:19:24.000000000 +1000
+++ origin5-bz2.stderr.out 2009-04-28 03:31:30.000000000 +1000
@@ -1,7 +1,7 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6481)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Conditional jump or move depends on uninitialised value(s)
at 0x........: handle_compress (origin5-bz2.c:4686)
@@ -9,85 +9,91 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: handle_compress (origin5-bz2.c:4686)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
+Use of uninitialised value of size 4
at 0x........: handle_compress (origin5-bz2.c:4686)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
- at 0x........: BZ2_blockSort (origin5-bz2.c:2820)
+Use of uninitialised value of size 4
+ at 0x........: mainSort (origin5-bz2.c:2820)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
- at 0x........: BZ2_blockSort (origin5-bz2.c:2823)
+Use of uninitialised value of size 4
+ at 0x........: mainSort (origin5-bz2.c:2823)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
- at 0x........: BZ2_blockSort (origin5-bz2.c:2854)
+Use of uninitialised value of size 4
+ at 0x........: mainSort (origin5-bz2.c:2854)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
- at 0x........: BZ2_blockSort (origin5-bz2.c:2858)
+Use of uninitialised value of size 4
+ at 0x........: mainSort (origin5-bz2.c:2858)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 8
- at 0x........: BZ2_blockSort (origin5-bz2.c:2963)
+Use of uninitialised value of size 4
+ at 0x........: mainSort (origin5-bz2.c:2963)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
<truncated beyond 100 lines>
=================================================
./valgrind/none/tests/linux/mremap2.stdout.diff
=================================================
--- mremap2.stdout.exp 2009-04-28 03:21:15.000000000 +1000
+++ mremap2.stdout.out 2009-04-28 03:32:37.000000000 +1000
@@ -27,38 +27,38 @@
..................................................
..................................................
-maymv 0 fixed 0 newsz 21 dstpo 0 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXX.........XXXXXXXXXX
+maymv 0 fixed 0 newsz 21 dstpo 0 dst 0x........ -> error 12
+XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
-maymv 0 fixed 0 newsz 21 dstpo 1 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXX.........XXXXXXXXXX
+maymv 0 fixed 0 newsz 21 dstpo 1 dst 0x........ -> error 12
+XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
-maymv 0 fixed 0 newsz 29 dstpo 0 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXX
+maymv 0 fixed 0 newsz 29 dstpo 0 dst 0x........ -> error 12
+XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
-maymv 0 fixed 0 newsz 29 dstpo 1 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXX
+maymv 0 fixed 0 newsz 29 dstpo 1 dst 0x........ -> error 12
+XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
-maymv 0 fixed 0 newsz 30 dstpo 0 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+maymv 0 fixed 0 newsz 30 dstpo 0 dst 0x........ -> error 12
+XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
-maymv 0 fixed 0 newsz 30 dstpo 1 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+maymv 0 fixed 0 newsz 30 dstpo 1 dst 0x........ -> error 12
+XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
@@ -173,40 +173,40 @@
..................................................
..................................................
-maymv 1 fixed 0 newsz 21 dstpo 0 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXX.........XXXXXXXXXX
+maymv 1 fixed 0 newsz 21 dstpo 0 dst 0x........ -> 0x........ (== other)
+XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
-maymv 1 fixed 0 newsz 21 dstpo 1 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXX.........XXXXXXXXXX
+maymv 1 fixed 0 newsz 21 dstpo 1 dst 0x........ -> 0x........ (== other)
+XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
-maymv 1 fixed 0 newsz 29 dstpo 0 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXX
+maymv 1 fixed 0 newsz 29 dstpo 0 dst 0x........ -> 0x........ (== other)
+XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-..................................................
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.....................
..................................................
-maymv 1 fixed 0 newsz 29 dstpo 1 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXX
+maymv 1 fixed 0 newsz 29 dstpo 1 dst 0x........ -> 0x........ (== other)
+XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-..................................................
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.....................
..................................................
-maymv 1 fixed 0 newsz 30 dstpo 0 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+maymv 1 fixed 0 newsz 30 dstpo 0 dst 0x........ -> 0x........ (== other)
+XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-..................................................
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX....................
..................................................
<truncated beyond 100 lines>
=================================================
./valgrind/none/tests/linux/mremap2.stdout.diff-glibc28-amd64
=================================================
--- mremap2.stdout.exp-glibc28-amd64 2009-04-28 03:21:15.000000000 +1000
+++ mremap2.stdout.out 2009-04-28 03:32:37.000000000 +1000
@@ -188,37 +188,37 @@
maymv 1 fixed 0 newsz 29 dstpo 0 dst 0x........ -> 0x........ (== other)
XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-..................................................
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.....................
..................................................
maymv 1 fixed 0 newsz 29 dstpo 1 dst 0x........ -> 0x........ (== other)
XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-..................................................
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.....................
..................................................
maymv 1 fixed 0 newsz 30 dstpo 0 dst 0x........ -> 0x........ (== other)
XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-..................................................
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX....................
..................................................
maymv 1 fixed 0 newsz 30 dstpo 1 dst 0x........ -> 0x........ (== other)
XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-..................................................
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX....................
..................................................
maymv 1 fixed 0 newsz 31 dstpo 0 dst 0x........ -> 0x........ (== other)
XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-..................................................
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX...................
..................................................
maymv 1 fixed 0 newsz 31 dstpo 1 dst 0x........ -> 0x........ (== other)
XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-..................................................
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX...................
..................................................
=================================================
./valgrind/none/tests/linux/mremap2.stdout.diff2
=================================================
--- mremap2.stdout.exp2 2009-04-28 03:21:15.000000000 +1000
+++ mremap2.stdout.out 2009-04-28 03:32:37.000000000 +1000
@@ -27,38 +27,38 @@
..................................................
..................................................
-maymv 0 fixed 0 newsz 21 dstpo 0 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXX.........XXXXXXXXXX
+maymv 0 fixed 0 newsz 21 dstpo 0 dst 0x........ -> error 12
+XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
-maymv 0 fixed 0 newsz 21 dstpo 1 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXX.........XXXXXXXXXX
+maymv 0 fixed 0 newsz 21 dstpo 1 dst 0x........ -> error 12
+XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
-maymv 0 fixed 0 newsz 29 dstpo 0 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXX
+maymv 0 fixed 0 newsz 29 dstpo 0 dst 0x........ -> error 12
+XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
-maymv 0 fixed 0 newsz 29 dstpo 1 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXX
+maymv 0 fixed 0 newsz 29 dstpo 1 dst 0x........ -> error 12
+XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
-maymv 0 fixed 0 newsz 30 dstpo 0 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+maymv 0 fixed 0 newsz 30 dstpo 0 dst 0x........ -> error 12
+XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
-maymv 0 fixed 0 newsz 30 dstpo 1 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+maymv 0 fixed 0 newsz 30 dstpo 1 dst 0x........ -> error 12
+XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
@@ -173,52 +173,52 @@
..................................................
..................................................
-maymv 1 fixed 0 newsz 21 dstpo 0 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXX.........XXXXXXXXXX
+maymv 1 fixed 0 newsz 21 dstpo 0 dst 0x........ -> 0x........ (== other)
+XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
-maymv 1 fixed 0 newsz 21 dstpo 1 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXX.........XXXXXXXXXX
+maymv 1 fixed 0 newsz 21 dstpo 1 dst 0x........ -> 0x........ (== other)
+XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
..................................................
..................................................
-maymv 1 fixed 0 newsz 29 dstpo 0 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXX
+maymv 1 fixed 0 newsz 29 dstpo 0 dst 0x........ -> 0x........ (== other)
+XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-..................................................
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.....................
..................................................
-maymv 1 fixed 0 newsz 29 dstpo 1 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXX
+maymv 1 fixed 0 newsz 29 dstpo 1 dst 0x........ -> 0x........ (== other)
+XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-..................................................
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.....................
..................................................
-maymv 1 fixed 0 newsz 30 dstpo 0 dst 0x........ -> 0x........ (== src)
-XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
+maymv 1 fixed 0 newsz 30 dstpo 0 dst 0x........ -> 0x........ (== other)
+XXXXXXXXX...............................XXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
-..................................................
+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX....................
..................................................
<truncated beyond 100 lines>
=================================================
./valgrind/none/tests/shell.stderr.diff
=================================================
--- shell.stderr.exp 2009-04-28 03:21:26.000000000 +1000
+++ shell.stderr.out 2009-04-28 03:32:54.000000000 +1000
@@ -1,8 +1 @@
-./shell: ./x86/: is a directory
-./shell: ./shell.vgtest: Permission denied
-execve(0x........(./shell_badinterp), 0x........, 0x........) failed, errno 2
-EXEC FAILED: I can't recover from execve() failing, so I'm dying.
-Add more stringent tests in PRE(sys_execve), or work out how to recover.
-./shell: ./shell_binaryfile: cannot execute binary file
-./shell: ./shell_nosuchfile: No such file or directory
-./shell: shell_nosuchfile: command not found
+valgrind: failed to start tool 'none' for platform 'amd64-linux': No such file or directory
=================================================
./valgrind/none/tests/shell.stderr.diff-dash
=================================================
--- shell.stderr.exp-dash 2009-04-28 03:21:26.000000000 +1000
+++ shell.stderr.out 2009-04-28 03:32:54.000000000 +1000
@@ -1,8 +1 @@
-./shell: 10: ./x86/: Permission denied
-./shell: 13: ./shell.vgtest: Permission denied
-execve(0x........(./shell_badinterp), 0x........, 0x........) failed, errno 2
-EXEC FAILED: I can't recover from execve() failing, so I'm dying.
-Add more stringent tests in PRE(sys_execve), or work out how to recover.
-./shell_binaryfile: 4: Syntax error: ")" unexpected
-./shell: 22: ./shell_nosuchfile: not found
-./shell: 25: shell_nosuchfile: not found
+valgrind: failed to start tool 'none' for platform 'amd64-linux': No such file or directory
=================================================
./valgrind/none/tests/shell.stdout.diff
=================================================
--- shell.stdout.exp 2009-04-28 03:21:26.000000000 +1000
+++ shell.stdout.out 2009-04-28 03:32:54.000000000 +1000
@@ -1,10 +0,0 @@
-Execute a directory
-Execute a non-executable file
-Execute a script with a bad interpreter name
-Execute a binary file
-Execute a non-existent file
-Execute a non-existent file (2)
-Execute a valid script with a #! line
-Execute a valid script without a #! line
-Execute a valid script with #! but no interpname
-Execute a zero-length file
=================================================
./valgrind/none/tests/shell_valid1.stderr.diff
=================================================
--- shell_valid1.stderr.exp 2009-04-28 03:21:26.000000000 +1000
+++ shell_valid1.stderr.out 2009-04-28 03:32:54.000000000 +1000
@@ -0,0 +1 @@
+valgrind: failed to start tool 'none' for platform 'amd64-linux': No such file or directory
=================================================
./valgrind/none/tests/shell_valid2.stderr.diff
=================================================
--- shell_valid2.stderr.exp 2009-04-28 03:21:26.000000000 +1000
+++ shell_valid2.stderr.out 2009-04-28 03:32:54.000000000 +1000
@@ -0,0 +1,2 @@
+valgrind: wrong ELF executable class (eg. 32-bit instead of 64-bit)
+valgrind: ./shell_valid2: bad interpreter (/bin/sh): VG_(strerror): unknown error
=================================================
./valgrind/none/tests/shell_valid3.stderr.diff
=================================================
--- shell_valid3.stderr.exp 2009-04-28 03:21:26.000000000 +1000
+++ shell_valid3.stderr.out 2009-04-28 03:32:54.000000000 +1000
@@ -0,0 +1,2 @@
+valgrind: wrong ELF executable class (eg. 32-bit instead of 64-bit)
+valgrind: ./shell_valid3: bad interpreter (/bin/sh): VG_(strerror): unknown error
|
|
From: Nicholas N. <n.n...@gm...> - 2009-04-27 16:40:09
|
Nightly build on ocean ( Ubuntu 8.10, Intel x86-64 ) started at 2009-04-28 02:00:01 EST Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 483 tests, 0 stderr failures, 1 stdout failure, 0 post failures == none/tests/linux/mremap2 (stdout) ================================================= ./valgrind/none/tests/linux/mremap2.stdout.diff ================================================= --- mremap2.stdout.exp 2009-04-28 02:22:51.000000000 +1000 +++ mremap2.stdout.out 2009-04-28 02:39:14.000000000 +1000 @@ -27,38 +27,38 @@ .................................................. .................................................. -maymv 0 fixed 0 newsz 21 dstpo 0 dst 0x........ -> 0x........ (== src) -XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXX.........XXXXXXXXXX +maymv 0 fixed 0 newsz 21 dstpo 0 dst 0x........ -> error 12 +XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................................................. .................................................. -maymv 0 fixed 0 newsz 21 dstpo 1 dst 0x........ -> 0x........ (== src) -XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXX.........XXXXXXXXXX +maymv 0 fixed 0 newsz 21 dstpo 1 dst 0x........ -> error 12 +XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................................................. .................................................. -maymv 0 fixed 0 newsz 29 dstpo 0 dst 0x........ -> 0x........ (== src) -XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXX +maymv 0 fixed 0 newsz 29 dstpo 0 dst 0x........ -> error 12 +XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................................................. .................................................. -maymv 0 fixed 0 newsz 29 dstpo 1 dst 0x........ -> 0x........ (== src) -XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXX +maymv 0 fixed 0 newsz 29 dstpo 1 dst 0x........ -> error 12 +XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................................................. .................................................. -maymv 0 fixed 0 newsz 30 dstpo 0 dst 0x........ -> 0x........ (== src) -XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +maymv 0 fixed 0 newsz 30 dstpo 0 dst 0x........ -> error 12 +XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................................................. .................................................. -maymv 0 fixed 0 newsz 30 dstpo 1 dst 0x........ -> 0x........ (== src) -XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +maymv 0 fixed 0 newsz 30 dstpo 1 dst 0x........ -> error 12 +XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................................................. .................................................. @@ -173,40 +173,40 @@ .................................................. .................................................. -maymv 1 fixed 0 newsz 21 dstpo 0 dst 0x........ -> 0x........ (== src) -XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXX.........XXXXXXXXXX +maymv 1 fixed 0 newsz 21 dstpo 0 dst 0x........ -> 0x........ (== other) +XXXXXXXXX...............................XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................................................. .................................................. -maymv 1 fixed 0 newsz 21 dstpo 1 dst 0x........ -> 0x........ (== src) -XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXX.........XXXXXXXXXX +maymv 1 fixed 0 newsz 21 dstpo 1 dst 0x........ -> 0x........ (== other) +XXXXXXXXX...............................XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................................................. .................................................. -maymv 1 fixed 0 newsz 29 dstpo 0 dst 0x........ -> 0x........ (== src) -XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXX +maymv 1 fixed 0 newsz 29 dstpo 0 dst 0x........ -> 0x........ (== other) +XXXXXXXXX...............................XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -.................................................. +XXXXXXXXXXXXXXXXXXXXXXXXXXXXX..................... .................................................. -maymv 1 fixed 0 newsz 29 dstpo 1 dst 0x........ -> 0x........ (== src) -XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXX +maymv 1 fixed 0 newsz 29 dstpo 1 dst 0x........ -> 0x........ (== other) +XXXXXXXXX...............................XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -.................................................. +XXXXXXXXXXXXXXXXXXXXXXXXXXXXX..................... .................................................. -maymv 1 fixed 0 newsz 30 dstpo 0 dst 0x........ -> 0x........ (== src) -XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +maymv 1 fixed 0 newsz 30 dstpo 0 dst 0x........ -> 0x........ (== other) +XXXXXXXXX...............................XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -.................................................. +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.................... .................................................. <truncated beyond 100 lines> ================================================= ./valgrind/none/tests/linux/mremap2.stdout.diff-glibc28-amd64 ================================================= --- mremap2.stdout.exp-glibc28-amd64 2009-04-28 02:22:51.000000000 +1000 +++ mremap2.stdout.out 2009-04-28 02:39:14.000000000 +1000 @@ -188,37 +188,37 @@ maymv 1 fixed 0 newsz 29 dstpo 0 dst 0x........ -> 0x........ (== other) XXXXXXXXX...............................XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -.................................................. +XXXXXXXXXXXXXXXXXXXXXXXXXXXXX..................... .................................................. maymv 1 fixed 0 newsz 29 dstpo 1 dst 0x........ -> 0x........ (== other) XXXXXXXXX...............................XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -.................................................. +XXXXXXXXXXXXXXXXXXXXXXXXXXXXX..................... .................................................. maymv 1 fixed 0 newsz 30 dstpo 0 dst 0x........ -> 0x........ (== other) XXXXXXXXX...............................XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -.................................................. +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.................... .................................................. maymv 1 fixed 0 newsz 30 dstpo 1 dst 0x........ -> 0x........ (== other) XXXXXXXXX...............................XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -.................................................. +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.................... .................................................. maymv 1 fixed 0 newsz 31 dstpo 0 dst 0x........ -> 0x........ (== other) XXXXXXXXX...............................XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -.................................................. +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX................... .................................................. maymv 1 fixed 0 newsz 31 dstpo 1 dst 0x........ -> 0x........ (== other) XXXXXXXXX...............................XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -.................................................. +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX................... .................................................. ================================================= ./valgrind/none/tests/linux/mremap2.stdout.diff2 ================================================= --- mremap2.stdout.exp2 2009-04-28 02:22:51.000000000 +1000 +++ mremap2.stdout.out 2009-04-28 02:39:14.000000000 +1000 @@ -27,38 +27,38 @@ .................................................. .................................................. -maymv 0 fixed 0 newsz 21 dstpo 0 dst 0x........ -> 0x........ (== src) -XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXX.........XXXXXXXXXX +maymv 0 fixed 0 newsz 21 dstpo 0 dst 0x........ -> error 12 +XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................................................. .................................................. -maymv 0 fixed 0 newsz 21 dstpo 1 dst 0x........ -> 0x........ (== src) -XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXX.........XXXXXXXXXX +maymv 0 fixed 0 newsz 21 dstpo 1 dst 0x........ -> error 12 +XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................................................. .................................................. -maymv 0 fixed 0 newsz 29 dstpo 0 dst 0x........ -> 0x........ (== src) -XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXX +maymv 0 fixed 0 newsz 29 dstpo 0 dst 0x........ -> error 12 +XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................................................. .................................................. -maymv 0 fixed 0 newsz 29 dstpo 1 dst 0x........ -> 0x........ (== src) -XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXX +maymv 0 fixed 0 newsz 29 dstpo 1 dst 0x........ -> error 12 +XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................................................. .................................................. -maymv 0 fixed 0 newsz 30 dstpo 0 dst 0x........ -> 0x........ (== src) -XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +maymv 0 fixed 0 newsz 30 dstpo 0 dst 0x........ -> error 12 +XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................................................. .................................................. -maymv 0 fixed 0 newsz 30 dstpo 1 dst 0x........ -> 0x........ (== src) -XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +maymv 0 fixed 0 newsz 30 dstpo 1 dst 0x........ -> error 12 +XXXXXXXXX.XXXXXXXXXXXXXXXXXXXX..........XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................................................. .................................................. @@ -173,52 +173,52 @@ .................................................. .................................................. -maymv 1 fixed 0 newsz 21 dstpo 0 dst 0x........ -> 0x........ (== src) -XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXX.........XXXXXXXXXX +maymv 1 fixed 0 newsz 21 dstpo 0 dst 0x........ -> 0x........ (== other) +XXXXXXXXX...............................XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................................................. .................................................. -maymv 1 fixed 0 newsz 21 dstpo 1 dst 0x........ -> 0x........ (== src) -XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXX.........XXXXXXXXXX +maymv 1 fixed 0 newsz 21 dstpo 1 dst 0x........ -> 0x........ (== other) +XXXXXXXXX...............................XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .................................................. .................................................. -maymv 1 fixed 0 newsz 29 dstpo 0 dst 0x........ -> 0x........ (== src) -XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXX +maymv 1 fixed 0 newsz 29 dstpo 0 dst 0x........ -> 0x........ (== other) +XXXXXXXXX...............................XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -.................................................. +XXXXXXXXXXXXXXXXXXXXXXXXXXXXX..................... .................................................. -maymv 1 fixed 0 newsz 29 dstpo 1 dst 0x........ -> 0x........ (== src) -XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXXX +maymv 1 fixed 0 newsz 29 dstpo 1 dst 0x........ -> 0x........ (== other) +XXXXXXXXX...............................XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -.................................................. +XXXXXXXXXXXXXXXXXXXXXXXXXXXXX..................... .................................................. -maymv 1 fixed 0 newsz 30 dstpo 0 dst 0x........ -> 0x........ (== src) -XXXXXXXXX.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +maymv 1 fixed 0 newsz 30 dstpo 0 dst 0x........ -> 0x........ (== other) +XXXXXXXXX...............................XXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX -.................................................. +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.................... .................................................. <truncated beyond 100 lines> |
|
From: <sv...@va...> - 2009-04-27 08:05:04
|
Author: bart
Date: 2009-04-27 09:04:57 +0100 (Mon, 27 Apr 2009)
New Revision: 9646
Log:
Only run the nightly build if there was a commit during the last 24 hours.
Modified:
trunk/nightly/bin/nightly
Modified: trunk/nightly/bin/nightly
===================================================================
--- trunk/nightly/bin/nightly 2009-04-27 04:59:02 UTC (rev 9645)
+++ trunk/nightly/bin/nightly 2009-04-27 08:04:57 UTC (rev 9646)
@@ -6,9 +6,14 @@
#----------------------------------------------------------------------------
#----------------------------------------------------------------------------
-# Helper function
+# Helper functions
#----------------------------------------------------------------------------
+# Returns the revision number of the source files with date $1.
+get_svn_revision() {
+ svn info -r "{$1}" "${valgrind_svn_repo}" | sed -n 's/^Revision: //p'
+}
+
runcmd () {
logfile=$1
str=$2
@@ -39,6 +44,9 @@
#----------------------------------------------------------------------------
# Startup
#----------------------------------------------------------------------------
+
+valgrind_svn_repo="svn://svn.valgrind.org/valgrind/trunk"
+
# Must have exactly two arguments
if [ $# -ne 2 ] ; then
echo "usage: $0 /path/to/valgrind/nightly <tag>"
@@ -57,6 +65,10 @@
cd $ABT_TOP
+# Clean up output files produced by a previous run.
+rm -rf diffs diff.short final Inst new.short new.verbose old.short old.verbose
+rm -rf sendmail.log unchanged.log valgrind
+
# Setup any relevant environment variables from conf/<tag>.conf.
. conf/$ABT_MACHINE.conf
if [ "${ABT_JOBS}" = "" ]; then
@@ -74,12 +86,20 @@
# Check out, build, test
#----------------------------------------------------------------------------
+svn_old_rev="`get_svn_revision ${svn_old_date}`"
+svn_new_rev="`get_svn_revision ${svn_new_date}`"
+if [ "${svn_old_rev}" = "${svn_new_rev}" ]; then
+ echo "Both {$svn_old_date} and {$svn_new_date} correspond to r${svn_new_rev}"\
+ "-- skipping nightly build." >unchanged.log
+ exit 0
+fi
+
# Do everything twice -- once for the 24 hours old Valgrind, and once
# for the current one.
for logfile in old new ; do
- # Remove the old valgrind/ and vex/ directories
- rm -rf valgrind vex
+ # Remove the old valgrind directory.
+ rm -rf valgrind
# Remove old short and verbose log files, and start the new ones
for ext in short verbose ; do
@@ -98,7 +118,7 @@
# Check out, build, run tests
runcmd $logfile \
"Checking out valgrind source tree" \
- "svn co svn://svn.valgrind.org/valgrind/trunk -r {$svn_date} valgrind" && \
+ "svn co ${valgrind_svn_repo} -r {$svn_date} valgrind" && \
\
runcmd $logfile \
"Configuring valgrind " \
@@ -170,7 +190,6 @@
# Gather up the diffs (at most the first 100 lines for each one) into a
# single file.
MAX_LINES=100
-rm -f diffs
diff_files=`find . -name '*.diff*' | sort`
if [ z"$diff_files" = z ] ; then
echo "Congratulations, all tests passed!" >> diffs
|
|
From: Bart V. A. <bar...@gm...> - 2009-04-27 07:55:14
|
Nightly build on georgia-tech-cellbuzz-native ( cellbuzz, ppc64, Fedora 7, native ) started at 2009-04-27 02:21:44 EDT Results differ from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... done Regression test results follow == 407 tests, 37 stderr failures, 12 stdout failures, 0 post failures == drd/tests/pth_create_chain (stderr) exp-ptrcheck/tests/bad_percentify (stdout) exp-ptrcheck/tests/bad_percentify (stderr) exp-ptrcheck/tests/base (stderr) exp-ptrcheck/tests/ccc (stderr) exp-ptrcheck/tests/fp (stderr) exp-ptrcheck/tests/globalerr (stderr) exp-ptrcheck/tests/hackedbz2 (stdout) exp-ptrcheck/tests/hackedbz2 (stderr) exp-ptrcheck/tests/hp_bounds (stderr) exp-ptrcheck/tests/hp_dangle (stderr) exp-ptrcheck/tests/justify (stderr) exp-ptrcheck/tests/partial_bad (stderr) exp-ptrcheck/tests/partial_good (stderr) exp-ptrcheck/tests/preen_invars (stdout) exp-ptrcheck/tests/preen_invars (stderr) exp-ptrcheck/tests/pth_create (stderr) exp-ptrcheck/tests/pth_specific (stderr) exp-ptrcheck/tests/realloc (stderr) exp-ptrcheck/tests/stackerr (stderr) exp-ptrcheck/tests/strcpy (stderr) exp-ptrcheck/tests/supp (stderr) exp-ptrcheck/tests/tricky (stderr) exp-ptrcheck/tests/unaligned (stderr) exp-ptrcheck/tests/zero (stderr) helgrind/tests/hg05_race2 (stderr) memcheck/tests/deep_templates (stdout) memcheck/tests/leak-cases-full (stderr) memcheck/tests/leak-cases-summary (stderr) memcheck/tests/leak-cycle (stderr) memcheck/tests/origin5-bz2 (stderr) memcheck/tests/varinfo1 (stderr) memcheck/tests/varinfo2 (stderr) memcheck/tests/varinfo3 (stderr) memcheck/tests/varinfo4 (stderr) memcheck/tests/varinfo5 (stderr) memcheck/tests/varinfo6 (stderr) memcheck/tests/wrap8 (stderr) none/tests/linux/mremap (stderr) none/tests/linux/mremap2 (stdout) none/tests/ppc32/jm-fp (stdout) none/tests/ppc32/jm-vmx (stdout) none/tests/ppc32/round (stdout) none/tests/ppc32/test_gx (stdout) none/tests/ppc64/jm-fp (stdout) none/tests/ppc64/jm-vmx (stdout) none/tests/ppc64/round (stdout) none/tests/shell_valid2 (stderr) none/tests/shell_valid3 (stderr) ================================================= == Results from 24 hours ago == ================================================= Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... done Regression test results follow == 407 tests, 36 stderr failures, 9 stdout failures, 0 post failures == exp-ptrcheck/tests/bad_percentify (stderr) exp-ptrcheck/tests/base (stderr) exp-ptrcheck/tests/ccc (stderr) exp-ptrcheck/tests/fp (stderr) exp-ptrcheck/tests/globalerr (stderr) exp-ptrcheck/tests/hackedbz2 (stderr) exp-ptrcheck/tests/hp_bounds (stderr) exp-ptrcheck/tests/hp_dangle (stderr) exp-ptrcheck/tests/justify (stderr) exp-ptrcheck/tests/partial_bad (stderr) exp-ptrcheck/tests/partial_good (stderr) exp-ptrcheck/tests/preen_invars (stderr) exp-ptrcheck/tests/pth_create (stderr) exp-ptrcheck/tests/pth_specific (stderr) exp-ptrcheck/tests/realloc (stderr) exp-ptrcheck/tests/stackerr (stderr) exp-ptrcheck/tests/strcpy (stderr) exp-ptrcheck/tests/supp (stderr) exp-ptrcheck/tests/tricky (stderr) exp-ptrcheck/tests/unaligned (stderr) exp-ptrcheck/tests/zero (stderr) helgrind/tests/hg05_race2 (stderr) memcheck/tests/deep_templates (stdout) memcheck/tests/leak-cases-full (stderr) memcheck/tests/leak-cases-summary (stderr) memcheck/tests/leak-cycle (stderr) memcheck/tests/origin5-bz2 (stderr) memcheck/tests/varinfo1 (stderr) memcheck/tests/varinfo2 (stderr) memcheck/tests/varinfo3 (stderr) memcheck/tests/varinfo4 (stderr) memcheck/tests/varinfo5 (stderr) memcheck/tests/varinfo6 (stderr) memcheck/tests/wrap8 (stderr) none/tests/linux/mremap (stderr) none/tests/linux/mremap2 (stdout) none/tests/ppc32/jm-fp (stdout) none/tests/ppc32/jm-vmx (stdout) none/tests/ppc32/round (stdout) none/tests/ppc32/test_gx (stdout) none/tests/ppc64/jm-fp (stdout) none/tests/ppc64/jm-vmx (stdout) none/tests/ppc64/round (stdout) none/tests/shell_valid2 (stderr) none/tests/shell_valid3 (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Mon Apr 27 03:09:03 2009 --- new.short Mon Apr 27 03:54:59 2009 *************** *** 8,10 **** ! == 407 tests, 36 stderr failures, 9 stdout failures, 0 post failures == exp-ptrcheck/tests/bad_percentify (stderr) --- 8,12 ---- ! == 407 tests, 37 stderr failures, 12 stdout failures, 0 post failures == ! drd/tests/pth_create_chain (stderr) ! exp-ptrcheck/tests/bad_percentify (stdout) exp-ptrcheck/tests/bad_percentify (stderr) *************** *** 14,15 **** --- 16,18 ---- exp-ptrcheck/tests/globalerr (stderr) + exp-ptrcheck/tests/hackedbz2 (stdout) exp-ptrcheck/tests/hackedbz2 (stderr) *************** *** 20,21 **** --- 23,25 ---- exp-ptrcheck/tests/partial_good (stderr) + exp-ptrcheck/tests/preen_invars (stdout) exp-ptrcheck/tests/preen_invars (stderr) |
|
From: <sv...@va...> - 2009-04-27 04:59:10
|
Author: njn
Date: 2009-04-27 05:59:02 +0100 (Mon, 27 Apr 2009)
New Revision: 9645
Log:
Some Darwin tweaks, including removing --trace-unknown-syscalls.
Modified:
branches/DARWIN/coregrind/m_initimg/initimg-darwin.c
branches/DARWIN/coregrind/m_mach/mach_basics.c
branches/DARWIN/coregrind/m_main.c
branches/DARWIN/coregrind/m_options.c
branches/DARWIN/coregrind/m_syswrap/syswrap-darwin.c
branches/DARWIN/coregrind/pub_core_options.h
Modified: branches/DARWIN/coregrind/m_initimg/initimg-darwin.c
===================================================================
--- branches/DARWIN/coregrind/m_initimg/initimg-darwin.c 2009-04-27 04:35:28 UTC (rev 9644)
+++ branches/DARWIN/coregrind/m_initimg/initimg-darwin.c 2009-04-27 04:59:02 UTC (rev 9645)
@@ -78,7 +78,6 @@
/* Get hold of a file descriptor which refers to the client
executable. This is needed for attaching to GDB. */
- // GrP fixme ...which doesn't work anyway
res = VG_(open)(exe_name, VKI_O_RDONLY, VKI_S_IRUSR);
if (!sr_isError(res))
VG_(cl_exec_fd) = sr_Res(res);
Modified: branches/DARWIN/coregrind/m_mach/mach_basics.c
===================================================================
--- branches/DARWIN/coregrind/m_mach/mach_basics.c 2009-04-27 04:35:28 UTC (rev 9644)
+++ branches/DARWIN/coregrind/m_mach/mach_basics.c 2009-04-27 04:59:02 UTC (rev 9645)
@@ -46,13 +46,6 @@
mach_port_name_t mach_task_self_ = 0;
-// DDD: doesn't get used...
-//mach_port_name_t mach_host_self(void)
-//{
-// return host_self_trap();
-//}
-
-
mach_port_name_t mach_thread_self(void)
{
return thread_self_trap();
@@ -87,7 +80,7 @@
reply = 0;
mach_task_self_ = task_self_trap();
- // GrP fixme host_page_size(mach_host_self(), &vm_page_size);
+ // GrP fixme host_page_size(host_self_trap(), &vm_page_size);
vm_page_size = 4096;
}
Modified: branches/DARWIN/coregrind/m_main.c
===================================================================
--- branches/DARWIN/coregrind/m_main.c 2009-04-27 04:35:28 UTC (rev 9644)
+++ branches/DARWIN/coregrind/m_main.c 2009-04-27 04:59:02 UTC (rev 9645)
@@ -416,8 +416,6 @@
else if VG_BOOL_CLO(arg, "--trace-redir", VG_(clo_trace_redir)) {}
else if VG_BOOL_CLO(arg, "--trace-syscalls", VG_(clo_trace_syscalls)) {}
- else if VG_BOOL_CLO(arg, "--trace-unknown-syscalls",
- VG_(clo_trace_unknown_syscalls)) {}
else if VG_BOOL_CLO(arg, "--wait-for-gdb", VG_(clo_wait_for_gdb)) {}
else if VG_STR_CLO (arg, "--db-command", VG_(clo_db_command)) {}
else if VG_STR_CLO (arg, "--sim-hints", VG_(clo_sim_hints)) {}
Modified: branches/DARWIN/coregrind/m_options.c
===================================================================
--- branches/DARWIN/coregrind/m_options.c 2009-04-27 04:35:28 UTC (rev 9644)
+++ branches/DARWIN/coregrind/m_options.c 2009-04-27 04:59:02 UTC (rev 9645)
@@ -68,7 +68,6 @@
UChar VG_(clo_profile_flags) = 0; // 00000000b
Int VG_(clo_trace_notbelow) = 999999999;
Bool VG_(clo_trace_syscalls) = False;
-Bool VG_(clo_trace_unknown_syscalls) = True; // GrP
Bool VG_(clo_trace_signals) = False;
Bool VG_(clo_trace_symtab) = False;
HChar* VG_(clo_trace_symtab_patt) = "*";
Modified: branches/DARWIN/coregrind/m_syswrap/syswrap-darwin.c
===================================================================
--- branches/DARWIN/coregrind/m_syswrap/syswrap-darwin.c 2009-04-27 04:35:28 UTC (rev 9644)
+++ branches/DARWIN/coregrind/m_syswrap/syswrap-darwin.c 2009-04-27 04:59:02 UTC (rev 9645)
@@ -1120,9 +1120,7 @@
default:
PRINT("sys_fcntl ( %ld, %ld [??] )", ARG1, ARG2);
- if (VG_(clo_trace_unknown_syscalls)) {
- VG_(printf)("UNKNOWN fcntl %ld!", ARG2);
- }
+ VG_(printf)("UNKNOWN fcntl %ld!", ARG2);
break;
}
}
@@ -1590,7 +1588,7 @@
// JRS: arguments are identical to sigprocmask
// (how, sigset_t*, sigset_t*). Perhaps behave identically?
static Bool warned;
- if (!warned && VG_(clo_trace_unknown_syscalls)) {
+ if (!warned) {
VG_(printf)("UNKNOWN __pthread_sigmask is unsupported. "
"This warning will not be repeated.\n");
warned = True;
Modified: branches/DARWIN/coregrind/pub_core_options.h
===================================================================
--- branches/DARWIN/coregrind/pub_core_options.h 2009-04-27 04:35:28 UTC (rev 9644)
+++ branches/DARWIN/coregrind/pub_core_options.h 2009-04-27 04:59:02 UTC (rev 9645)
@@ -112,8 +112,6 @@
extern Int VG_(clo_trace_notbelow);
/* DEBUG: print system calls? default: NO */
extern Bool VG_(clo_trace_syscalls);
-/* DEBUG: print unknown system calls? default: NO */ // DDD: undocumented
-extern Bool VG_(clo_trace_unknown_syscalls);
/* DEBUG: print signal details? default: NO */
extern Bool VG_(clo_trace_signals);
/* DEBUG: print symtab details? default: NO */
|
|
From: <sv...@va...> - 2009-04-27 04:35:41
|
Author: njn
Date: 2009-04-27 05:35:28 +0100 (Mon, 27 Apr 2009)
New Revision: 9644
Log:
Tweak some comments.
Modified:
branches/DARWIN/coregrind/m_libcfile.c
branches/DARWIN/coregrind/pub_core_libcfile.h
branches/DARWIN/include/pub_tool_basics.h
Modified: branches/DARWIN/coregrind/m_libcfile.c
===================================================================
--- branches/DARWIN/coregrind/m_libcfile.c 2009-04-27 03:27:31 UTC (rev 9643)
+++ branches/DARWIN/coregrind/m_libcfile.c 2009-04-27 04:35:28 UTC (rev 9644)
@@ -582,9 +582,10 @@
return 0;
}
-/* Note this moves (or at least, is believed to move) the file pointer
+/* DDD: Note this moves (or at least, is believed to move) the file pointer
on Linux and AIX5 but doesn't on Darwin. This inconsistency should
- be fixed. */
+ be fixed. (In other words, why isn't the Linux/AIX5 version implemented in
+ terms of pread()?) */
SysRes VG_(pread) ( Int fd, void* buf, Int count, OffT offset )
{
SysRes res;
Modified: branches/DARWIN/coregrind/pub_core_libcfile.h
===================================================================
--- branches/DARWIN/coregrind/pub_core_libcfile.h 2009-04-27 03:27:31 UTC (rev 9643)
+++ branches/DARWIN/coregrind/pub_core_libcfile.h 2009-04-27 04:35:28 UTC (rev 9644)
@@ -82,9 +82,10 @@
extern Int VG_(check_executable)(/*OUT*/Bool* is_setuid,
const HChar* f, Bool allow_setuid);
-/* Note this moves (or at least, is believed to move) the file pointer
+/* DDD: Note this moves (or at least, is believed to move) the file pointer
on Linux and AIX5 but doesn't on Darwin. This inconsistency should
- be fixed. */
+ be fixed. (In other words, why isn't the Linux/AIX5 version implemented in
+ terms of pread()?) */
extern SysRes VG_(pread) ( Int fd, void* buf, Int count, OffT offset );
/* Create and open (-rw------) a tmp file name incorporating said arg.
Modified: branches/DARWIN/include/pub_tool_basics.h
===================================================================
--- branches/DARWIN/include/pub_tool_basics.h 2009-04-27 03:27:31 UTC (rev 9643)
+++ branches/DARWIN/include/pub_tool_basics.h 2009-04-27 04:35:28 UTC (rev 9644)
@@ -112,13 +112,12 @@
// - off_t is "used for file sizes".
// At one point we were using it for memory offsets, but PtrdiffT should be
// used in those cases.
-// DDD: on Linux and AIX, off_t is a signed word-sized int. On Darwin it's
-// always a signed 64-bit int. Need to find a way to remove this #if.
-// Killing OffT in favour of Off64T everywhere might work.
+// Nb: on Linux and AIX, off_t is a signed word-sized int. On Darwin it's
+// always a signed 64-bit int. So we defined our own Off64T as well.
#if defined(VGO_linux) || defined(VGO_aix5)
typedef Word OffT; // 32 64
#elif defined(VGO_darwin)
-typedef Long OffT; // 32 64
+typedef Long OffT; // 64 64
#else
# error Unknown OS
#endif
|
|
From: <sv...@va...> - 2009-04-27 03:28:21
|
Author: njn
Date: 2009-04-27 04:27:31 +0100 (Mon, 27 Apr 2009)
New Revision: 9643
Log:
Merge r9642 (improve ms_print output) from the trunk.
Modified:
branches/DARWIN/NEWS
branches/DARWIN/massif/docs/ms-manual.xml
branches/DARWIN/massif/ms_print.in
branches/DARWIN/massif/tests/alloc-fns-A.post.exp
branches/DARWIN/massif/tests/alloc-fns-B.post.exp
branches/DARWIN/massif/tests/basic.post.exp
branches/DARWIN/massif/tests/basic2.post.exp
branches/DARWIN/massif/tests/big-alloc.post.exp
branches/DARWIN/massif/tests/custom_alloc.post.exp
branches/DARWIN/massif/tests/deep-A.post.exp
branches/DARWIN/massif/tests/deep-B.post.exp
branches/DARWIN/massif/tests/deep-C.post.exp
branches/DARWIN/massif/tests/deep-D.post.exp
branches/DARWIN/massif/tests/ignored.post.exp
branches/DARWIN/massif/tests/ignoring.post.exp
branches/DARWIN/massif/tests/insig.post.exp
branches/DARWIN/massif/tests/long-names.post.exp
branches/DARWIN/massif/tests/long-time.post.exp
branches/DARWIN/massif/tests/new-cpp.post.exp
branches/DARWIN/massif/tests/overloaded-new.post.exp
branches/DARWIN/massif/tests/peak.post.exp
branches/DARWIN/massif/tests/peak2.post.exp
branches/DARWIN/massif/tests/realloc.post.exp
branches/DARWIN/massif/tests/thresholds_0_0.post.exp
branches/DARWIN/massif/tests/thresholds_0_10.post.exp
branches/DARWIN/massif/tests/thresholds_10_0.post.exp
branches/DARWIN/massif/tests/thresholds_10_10.post.exp
branches/DARWIN/massif/tests/thresholds_5_0.post.exp
branches/DARWIN/massif/tests/thresholds_5_10.post.exp
Modified: branches/DARWIN/NEWS
===================================================================
--- branches/DARWIN/NEWS 2009-04-27 01:27:58 UTC (rev 9642)
+++ branches/DARWIN/NEWS 2009-04-27 03:27:31 UTC (rev 9643)
@@ -54,13 +54,19 @@
Stack traces produced when --xml=yes is specified are different and
unchanged.
+* The graphs drawn by Massif's ms_print program have changed slightly:
+ - The half-height chars '.' and ',' are no longer drawn, because they are
+ confusing. The --y option can be used if the default y-resolution is
+ not high enough.
+ - Horizontal lines are now drawn after the top of a snapshot if there is a
+ gap until the next snapshot. This makes it clear that the memory
+ usage has not dropped to zero between snapshots.
+
* The location of some install files has changed. This should not affect
most users. Those who might be affected:
-
- For people who use Valgrind with MPI programs, the installed
libmpiwrap.so library has moved from $(INSTALL)/<platform>/libmpiwrap.so
to $(INSTALL)/libmpiwrap-<platform>.so.
-
- For people who distribute standalone Valgrind tools, the installed
libraries such as $(INSTALL)/<platform>/libcoregrind.a have moved to
$(INSTALL)/libcoregrind-<platform>.a.
Modified: branches/DARWIN/massif/docs/ms-manual.xml
===================================================================
--- branches/DARWIN/massif/docs/ms-manual.xml 2009-04-27 01:27:58 UTC (rev 9642)
+++ branches/DARWIN/massif/docs/ms-manual.xml 2009-04-27 03:27:31 UTC (rev 9643)
@@ -174,15 +174,15 @@
| #
| #
| #
+ | #
+ | #
+ | #
| :#
| :#
| :#
- | :#
- | :#
- | :#
- 0 +----------------------------------------------------------------------->ki
- 0 121.8
+ 0 +----------------------------------------------------------------------->ki 0 113.4
+
Number of snapshots: 25
Detailed snapshots: [9, 14 (peak), 24]
]]></screen>
@@ -201,40 +201,40 @@
re-run ms_print, we get this more useful graph:</para>
<screen><![CDATA[
- KB
-19.63^ #
- | # .
- | # : .
- | # : : .
- | : # : : : .
- | : # : : : : .
- | : # : : : : : .
- | : # : : : : : : .
- | : : # : : : : : : : .
- | : : # : : : : : : : : .
- | : : : # : : : : : : : : : ,
- | @ : : : # : : : : : : : : : @
- | : @ : : : # : : : : : : : : : @
- | : : @ : : : # : : : : : : : : : @
- | : : : @ : : : # : : : : : : : : : @
- | : : : : @ : : : # : : : : : : : : : @
- | : : : : : @ : : : # : : : : : : : : : @
- | : : : : : : @ : : : # : : : : : : : : : @
- | : : : : : : : @ : : : # : : : : : : : : : @
- | : : : : : : : : @ : : : # : : : : : : : : : @
- 0 +----------------------------------------------------------------------->KB
- 0 29.48
+19.63^ ###
+ | #
+ | # ::
+ | # : :::
+ | :::::::::# : : ::
+ | : # : : : ::
+ | : # : : : : :::
+ | : # : : : : : ::
+ | ::::::::::: # : : : : : : :::
+ | : : # : : : : : : : ::
+ | ::::: : # : : : : : : : : ::
+ | @@@: : : # : : : : : : : : : @
+ | ::@ : : : # : : : : : : : : : @
+ | :::: @ : : : # : : : : : : : : : @
+ | ::: : @ : : : # : : : : : : : : : @
+ | ::: : : @ : : : # : : : : : : : : : @
+ | :::: : : : @ : : : # : : : : : : : : : @
+ | ::: : : : : @ : : : # : : : : : : : : : @
+ | :::: : : : : : @ : : : # : : : : : : : : : @
+ | ::: : : : : : : @ : : : # : : : : : : : : : @
+ 0 +----------------------------------------------------------------------->KB 0 29.48
Number of snapshots: 25
Detailed snapshots: [9, 14 (peak), 24]
]]></screen>
<para>Each vertical bar represents a snapshot, i.e. a measurement of the
-memory usage at a certain point in time. The text at the bottom show that
-25 snapshots were taken for this program, which is one per heap
-allocation/deallocation, plus a couple of extras. Massif starts by taking
-snapshots for every heap allocation/deallocation, but as a program runs for
-longer, it takes snapshots less frequently. It also discards older
+memory usage at a certain point in time. If the next snapshot is more than
+one column away, a horizontal line of characters is drawn from the top of
+the snapshot to just before the next snapshot column. The text at the
+bottom show that 25 snapshots were taken for this program, which is one per
+heap allocation/deallocation, plus a couple of extras. Massif starts by
+taking snapshots for every heap allocation/deallocation, but as a program
+runs for longer, it takes snapshots less frequently. It also discards older
snapshots as the program goes on; when it reaches the maximum number of
snapshots (100 by default, although changeable with the
<computeroutput>--max-snapshots</computeroutput> option) half of them are
@@ -243,12 +243,12 @@
<para>Most snapshots are <emphasis>normal</emphasis>, and only basic
information is recorded for them. Normal snapshots are represented in the
-graph by bars consisting of ':' and '.' characters.</para>
+graph by bars consisting of ':' characters.</para>
<para>Some snapshots are <emphasis>detailed</emphasis>. Information about
where allocations happened are recorded for these snapshots, as we will see
shortly. Detailed snapshots are represented in the graph by bars consisting
-of '@' and ',' characters. The text at the bottom show that 3 detailed
+of '@' characters. The text at the bottom show that 3 detailed
snapshots were taken for this program (snapshots 9, 14 and 24). By default,
every 10th snapshot is detailed, although this can be changed via the
<computeroutput>--detailed-freq</computeroutput> option.</para>
@@ -256,7 +256,7 @@
<para>Finally, there is at most one <emphasis>peak</emphasis> snapshot. The
peak snapshot is a detailed snapshot, and records the point where memory
consumption was greatest. The peak snapshot is represented in the graph by
-a bar consisting of '#' and ',' characters. The text at the bottom shows
+a bar consisting of '#' characters. The text at the bottom shows
that snapshot 14 was the peak. Note that for tiny programs that never
deallocate heap memory, Massif will not record a peak snapshot.</para>
@@ -272,26 +272,26 @@
browser. It shows what graphs for larger programs look like.</para>
<screen><![CDATA[
MB
-3.952^ #.
- | ,@#:
- | , .. :@@#:
- | @ :: :@@#:.
- | ,@ :: :@@#::
- | , .@@@ :: :@@#:.
- | .@ :@@@ :: :@@#::
+3.952^ #
+ | @#:
+ | :@@#:
+ | @@::::@@#:
+ | @ :: :@@#::
+ | @@@ :: :@@#::
+ | @@:@@@ :: :@@#::
+ | :::@ :@@@ :: :@@#::
| : :@ :@@@ :: :@@#::
- | ,: :@ :@@@ :: :@@#::
- | ,:@: :@ :@@@ :: :@@#::.
+ | :@: :@ :@@@ :: :@@#::
| @@:@: :@ :@@@ :: :@@#:::
- | ,,: .:: . , .::@@:@: :@ :@@@ :: :@@#:::
- | .:@@: .: ::: ::: @ :::@@:@: :@ :@@@ :: :@@#:::
- | ,: ::@@: ::: ::::::: @ :::@@:@: :@ :@@@ :: :@@#:::
- | @: ::@@: ::: ::::::: @ :::@@:@: :@ :@@@ :: :@@#::.
+ | : :: ::@@:@: :@ :@@@ :: :@@#:::
+ | :@@: ::::: ::::@@@:::@@:@: :@ :@@@ :: :@@#:::
+ | ::::@@: ::: ::::::: @ :::@@:@: :@ :@@@ :: :@@#:::
| @: ::@@: ::: ::::::: @ :::@@:@: :@ :@@@ :: :@@#:::
- | , @: ::@@:: ::: ::::::: @ :::@@:@: :@ :@@@ :: :@@#:::
- | ::@ @: ::@@:: ::: ::::::: @ :::@@:@: :@ :@@@ :: :@@#:::
- | , :::::@ @: ::@@:: ::: ::::::: @ :::@@:@: :@ :@@@ :: :@@#:::
- | ..@ :::::@ @: ::@@:: ::: ::::::: @ :::@@:@: :@ :@@@ :: :@@#:::
+ | @: ::@@: ::: ::::::: @ :::@@:@: :@ :@@@ :: :@@#:::
+ | @: ::@@:::::: ::::::: @ :::@@:@: :@ :@@@ :: :@@#:::
+ | ::@@@: ::@@:: ::: ::::::: @ :::@@:@: :@ :@@@ :: :@@#:::
+ | :::::@ @: ::@@:: ::: ::::::: @ :::@@:@: :@ :@@@ :: :@@#:::
+ | @@:::::@ @: ::@@:: ::: ::::::: @ :::@@:@: :@ :@@@ :: :@@#:::
0 +----------------------------------------------------------------------->Mi
0 626.4
@@ -424,8 +424,9 @@
11, and half was due to a call from line 25.</para>
<para>In short, Massif collates the stack trace of every single allocation
-point in the program into a single tree, which gives a complete picture of
-how and why all heap memory was allocated.</para>
+point in the program into a single tree, which gives a complete picture at
+a particular point in time of how and why all heap memory was
+allocated.</para>
<para>Note that the tree entries correspond not to functions, but to
individual code locations. For example, if function <function>A</function>
@@ -436,16 +437,16 @@
from line 15 (e.g. due to a loop), then each of those calls will be
represented by the same stack trace in the tree.</para>
-<para>Note also that tree entry with children in the example satisfies an
+<para>Note also that each tree entry with children in the example satisfies an
invariant: the entry's size is equal to the sum of its children's sizes.
For example, the first entry has size 20,000B, and its children have sizes
10,000B, 8,000B, and 2,000B. In general, this invariant almost always
holds. However, in rare circumstances stack traces can be malformed, in
which case a stack trace can be a sub-trace of another stack trace. This
means that some entries in the tree may not satisfy the invariant -- the
-entry's size will be greater than the sum of its children's sizes. Massif
-can sometimes detect when this happens; if it does, it issues a
-warning:</para>
+entry's size will be greater than the sum of its children's sizes. This is
+not a big problem, but could make the results confusing. Massif can
+sometimes detect when this happens; if it does, it issues a warning:</para>
<screen><![CDATA[
Warning: Malformed stack trace detected. In Massif's output,
Modified: branches/DARWIN/massif/ms_print.in
===================================================================
--- branches/DARWIN/massif/ms_print.in 2009-04-27 01:27:58 UTC (rev 9642)
+++ branches/DARWIN/massif/ms_print.in 2009-04-27 03:27:31 UTC (rev 9643)
@@ -507,25 +507,20 @@
# Each row represents K bytes, which is 1/graph_y of the peak size
# (and K can be non-integral). When drawing the column for a snapshot,
# in order to fill the slot in row y (where the first row drawn on is
- # row 1) with a half-char (eg. '.'), it must be >= (y - 1/2)*K. In
- # order to fill a row/column spot with a full-char (eg. ':'), it must be
- # >= y*K. For example, if K = 10 bytes, then the values 0, 4, 5, 9, 10,
- # 14, 15, 19, 20, 24, 25, 29, 30 would be drawn like this (showing one
- # per column):
+ # row 1) with a full-char (eg. ':'), it must be >= y*K. For example, if
+ # K = 10 bytes, then the values 0, 4, 5, 9, 10, 14, 15, 19, 20, 24, 25,
+ # 29, 30 would be drawn like this (showing one per column):
#
- # y (y - 1/2) * K y * K
- # - ------------- -----------
- # 30 | ..: 3 (3 - 1/2) * 10 = 25 3 * 10 = 30
- # 20 | ..::::: 2 (2 - 1/2) * 10 = 15 2 * 10 = 20
- # 10 | ..::::::::: 1 (1 - 1/2) * 10 = 5 1 * 10 = 10
+ # y y * K
+ # - -----------
+ # 30 | : 3 3 * 10 = 30
+ # 20 | ::::: 2 2 * 10 = 20
+ # 10 | ::::::::: 1 1 * 10 = 10
# 0 +-------------
- my $peak_full_char = '#';
- my $detailed_full_char = '@';
- my $normal_full_char = ':';
- my $peak_half_char = ',';
- my $detailed_half_char = ',';
- my $normal_half_char = '.';
+ my $peak_char = '#';
+ my $detailed_char = '@';
+ my $normal_char = ':';
# Work out how many bytes each row represents. If the peak size was 0,
# make it 1 so that the Y-axis covers a non-zero range of values.
@@ -534,9 +529,15 @@
if (0 == $end_time ) { $end_time = 1; }
my $K = $peak_mem_total_szB / $graph_y;
+ $x = 0;
+ my $prev_x = 0;
+ my $prev_y_max = 0;
+ my $prev_char = ':';
+
for (my $i = 0; $i < $n_snapshots; $i++) {
# Work out which column this snapshot belongs to.
+ $prev_x = $x;
my $x_pos_frac = ($times[$i] / ($end_time)) * $graph_x;
$x = int($x_pos_frac) + 1; # +1 due to Y-axis
# The final snapshot will spill over into the n+1th column, which
@@ -547,41 +548,49 @@
$x = $graph_x;
}
- # Draw the column if:
- # - it's the peak column, or
- # - it's a detailed column, and we won't overwrite the peak column, or
- # - it's a normal column, and we won't overwrite the peak column or a
- # detailed column.
- my $should_draw_column =
- (($i == $peak_num) or
- ($is_detaileds[$i] and $graph[$x][1] ne $peak_full_char) or
- ($graph[$x][1] ne $peak_full_char and
- $graph[$x][1] ne $detailed_full_char));
+ # If there was a gap between the previous snapshot's column and this
+ # one, we draw a horizontal line in the gap (so long as it doesn't
+ # trash the x-axis). Without this, graphs with a few sparse
+ # snapshots look funny -- as if the memory usage is in temporary
+ # spikes.
+ if ($prev_y_max > 0) {
+ for (my $x2 = $prev_x + 1; $x2 < $x; $x2++) {
+ $graph[$x2][$prev_y_max] = $prev_char;
+ }
+ }
- if ($should_draw_column) {
- # If it's detailed, mark the X-axis. Also choose the full-slot
- # char.
- my ($full_char, $half_char);
- if ($i == $peak_num) {
- $full_char = $peak_full_char;
- $half_char = $peak_half_char;
- } elsif ($is_detaileds[$i]) {
- $full_char = $detailed_full_char;
- $half_char = $detailed_half_char;
- } else {
- $full_char = $normal_full_char;
- $half_char = $normal_half_char;
- }
- # Grow this snapshot bar from bottom to top.
- for ($y = 1; $y <= $graph_y; $y++) {
- if ($mem_total_Bs[$i] >= ($y - 1/2) * $K) {
- $graph[$x][$y] = $half_char;
- }
- if ($mem_total_Bs[$i] >= $y * $K) {
- $graph[$x][$y] = $full_char;
+ # Choose the column char.
+ my $char;
+ if ($i == $peak_num) { $char = $peak_char; }
+ elsif ($is_detaileds[$i]) { $char = $detailed_char; }
+ else { $char = $normal_char; }
+
+ # Grow this snapshot bar from bottom to top.
+ my $y_max = 0;
+ for ($y = 1; $y <= $graph_y; $y++) {
+ if ($mem_total_Bs[$i] >= $y * $K) {
+ # Priority order for chars: peak > detailed > normal
+ my $should_draw_char =
+ (($char eq $peak_char)
+ or
+ ($char eq $detailed_char and
+ $graph[$x][$y] ne $peak_char
+ )
+ or
+ ($char eq $normal_char and
+ $graph[$x][$y] ne $peak_char and
+ $graph[$x][$y] ne $detailed_char
+ )
+ );
+
+ if ($should_draw_char) {
+ $graph[$x][$y] = $char;
}
+ $y_max = $y;
}
}
+ $prev_y_max = $y_max;
+ $prev_char = $char;
}
#-------------------------------------------------------------------------
@@ -669,5 +678,3 @@
##--------------------------------------------------------------------##
##--- end ms_print.in ---##
##--------------------------------------------------------------------##
-
-
Modified: branches/DARWIN/massif/tests/alloc-fns-A.post.exp
===================================================================
--- branches/DARWIN/massif/tests/alloc-fns-A.post.exp 2009-04-27 01:27:58 UTC (rev 9642)
+++ branches/DARWIN/massif/tests/alloc-fns-A.post.exp 2009-04-27 03:27:31 UTC (rev 9643)
@@ -8,24 +8,24 @@
KB
3.516^ @
| @
- | . @
+ | @
+ | :::::::@
| : @
- | . : @
+ | ::::::::: @
| : : @
- | : : @
+ | ::::::::: : @
| : : : @
- | : : : @
+ | ::::::::: : : @
| : : : : @
| : : : : @
- | . : : : : @
+ | ::::::::: : : : @
| : : : : : @
- | . : : : : : @
+ | ::::::::: : : : : @
| : : : : : : @
- | : : : : : : @
+ | ::::::::: : : : : : @
| : : : : : : : @
- | : : : : : : : @
+ | ::::::::: : : : : : : @
| : : : : : : : : @
- | : : : : : : : : @
0 +----------------------------------------------------------------------->KB
0 3.516
Modified: branches/DARWIN/massif/tests/alloc-fns-B.post.exp
===================================================================
--- branches/DARWIN/massif/tests/alloc-fns-B.post.exp 2009-04-27 01:27:58 UTC (rev 9642)
+++ branches/DARWIN/massif/tests/alloc-fns-B.post.exp 2009-04-27 03:27:31 UTC (rev 9643)
@@ -8,24 +8,24 @@
KB
3.516^ @
| @
- | . @
+ | @
+ | :::::::@
| : @
- | . : @
+ | ::::::::: @
| : : @
- | : : @
+ | ::::::::: : @
| : : : @
- | : : : @
+ | ::::::::: : : @
| : : : : @
| : : : : @
- | . : : : : @
+ | ::::::::: : : : @
| : : : : : @
- | . : : : : : @
+ | ::::::::: : : : : @
| : : : : : : @
- | : : : : : : @
+ | ::::::::: : : : : : @
| : : : : : : : @
- | : : : : : : : @
+ | ::::::::: : : : : : : @
| : : : : : : : : @
- | : : : : : : : : @
0 +----------------------------------------------------------------------->KB
0 3.516
Modified: branches/DARWIN/massif/tests/basic.post.exp
===================================================================
--- branches/DARWIN/massif/tests/basic.post.exp 2009-04-27 01:27:58 UTC (rev 9642)
+++ branches/DARWIN/massif/tests/basic.post.exp 2009-04-27 03:27:31 UTC (rev 9643)
@@ -7,25 +7,25 @@
KB
14.34^ #
- | .:#:.
- | .:::#:::.
- | .:::::#:::::.
- | .@::::::#:::::::.
+ | :#:
+ | :::#:::
+ | :::::#:::::
+ | @::::::#:::::::
| ::@::::::#:::::::::
- | .:::@::::::#:::::::::@.
- | .:::::@::::::#:::::::::@::.
- | .:::::::@::::::#:::::::::@::::.
- | ,:::::::::@::::::#:::::::::@::::::.
+ | :::@::::::#:::::::::@
+ | :::::@::::::#:::::::::@::
+ | :::::::@::::::#:::::::::@::::
+ | :::::::::@::::::#:::::::::@::::::
| :@:::::::::@::::::#:::::::::@::::::::
- | .::@:::::::::@::::::#:::::::::@:::::::::,
- | .::::@:::::::::@::::::#:::::::::@:::::::::@:.
- | .::::::@:::::::::@::::::#:::::::::@:::::::::@:::.
- | .::::::::@:::::::::@::::::#:::::::::@:::::::::@:::::.
+ | ::@:::::::::@::::::#:::::::::@:::::::::
+ | ::::@:::::::::@::::::#:::::::::@:::::::::@:
+ | ::::::@:::::::::@::::::#:::::::::@:::::::::@:::
+ | ::::::::@:::::::::@::::::#:::::::::@:::::::::@:::::
| @:::::::::@:::::::::@::::::#:::::::::@:::::::::@:::::::
- | .:@:::::::::@:::::::::@::::::#:::::::::@:::::::::@::::::::.
- | .:::@:::::::::@:::::::::@::::::#:::::::::@:::::::::@:::::::::@.
- | .:::::@:::::::::@:::::::::@::::::#:::::::::@:::::::::@:::::::::@::.
- | .:::::::@:::::::::@:::::::::@::::::#:::::::::@:::::::::@:::::::::@::::.
+ | :@:::::::::@:::::::::@::::::#:::::::::@:::::::::@::::::::
+ | :::@:::::::::@:::::::::@::::::#:::::::::@:::::::::@:::::::::@
+ | :::::@:::::::::@:::::::::@::::::#:::::::::@:::::::::@:::::::::@::
+ | :::::::@:::::::::@:::::::::@::::::#:::::::::@:::::::::@:::::::::@::::
0 +----------------------------------------------------------------------->KB
0 28.29
Modified: branches/DARWIN/massif/tests/basic2.post.exp
===================================================================
--- branches/DARWIN/massif/tests/basic2.post.exp 2009-04-27 01:27:58 UTC (rev 9642)
+++ branches/DARWIN/massif/tests/basic2.post.exp 2009-04-27 03:27:31 UTC (rev 9643)
@@ -6,24 +6,24 @@
KB
-14.34^ #
+14.34^ ########
| #
| #
| #
- | # ,
+ | #
+ | @@@@@@@@@@# @@@@@@@@@
| @ # @
| @ # @
| @ # @
- | @ # @
- | , @ # @ @
+ | @ # @ @@@@@@@@
+ | @@@@@@@@@ # @ @
| @ @ # @ @
| @ @ # @ @
| @ @ # @ @
- | @ @ # @ @ ,
- | @ @ # @ @ @
+ | @ @ # @ @ @@@@@@@@
+ | @@@@@@@@@@@@ @ # @ @ @
| @ @ @ # @ @ @
| @ @ @ # @ @ @
- | @ @ @ # @ @ @
| @ @ @ # @ @ @ @
| @ @ @ # @ @ @ @
0 +----------------------------------------------------------------------->KB
Modified: branches/DARWIN/massif/tests/big-alloc.post.exp
===================================================================
--- branches/DARWIN/massif/tests/big-alloc.post.exp 2009-04-27 01:27:58 UTC (rev 9642)
+++ branches/DARWIN/massif/tests/big-alloc.post.exp 2009-04-27 03:27:31 UTC (rev 9643)
@@ -8,24 +8,24 @@
MB
100.0^ :
| :
+ | @@@@@@@:
| @ :
- | @ :
+ | :::::::@ :
| : @ :
- | : @ :
+ | :::::::: @ :
| : : @ :
- | : : @ :
+ | :::::::: : @ :
| : : : @ :
- | : : : @ :
+ | :::::::: : : @ :
| : : : : @ :
- | : : : : @ :
+ | ::::::::: : : : @ :
| : : : : : @ :
- | : : : : : @ :
+ | :::::::: : : : : @ :
| : : : : : : @ :
- | : : : : : : @ :
+ | :::::::: : : : : : @ :
| : : : : : : : @ :
- | : : : : : : : @ :
+ | :::::::: : : : : : : @ :
| : : : : : : : : @ :
- | : : : : : : : : @ :
0 +----------------------------------------------------------------------->MB
0 100.0
Modified: branches/DARWIN/massif/tests/custom_alloc.post.exp
===================================================================
--- branches/DARWIN/massif/tests/custom_alloc.post.exp 2009-04-27 01:27:58 UTC (rev 9642)
+++ branches/DARWIN/massif/tests/custom_alloc.post.exp 2009-04-27 03:27:31 UTC (rev 9643)
@@ -6,7 +6,7 @@
B
- 816^ # :
+ 816^ ############ :::::::::::
| # :
| # :
| # :
@@ -16,6 +16,7 @@
| # :
| # :
| # :
+ | @@@@@@ # :::::: :
| @ # : :
| @ # : :
| @ # : :
@@ -25,7 +26,6 @@
| @ # : :
| @ # : :
| @ # : :
- | @ # : :
0 +----------------------------------------------------------------------->KB
0 4.812
Modified: branches/DARWIN/massif/tests/deep-A.post.exp
===================================================================
--- branches/DARWIN/massif/tests/deep-A.post.exp 2009-04-27 01:27:58 UTC (rev 9642)
+++ branches/DARWIN/massif/tests/deep-A.post.exp 2009-04-27 03:27:31 UTC (rev 9643)
@@ -8,24 +8,24 @@
KB
3.984^ :
| :
+ | @@@@@@@:
| @ :
- | @ :
+ | :::::::@ :
| : @ :
- | : @ :
+ | :::::::: @ :
| : : @ :
- | : : @ :
+ | :::::::: : @ :
| : : : @ :
- | : : : @ :
+ | :::::::: : : @ :
| : : : : @ :
- | : : : : @ :
+ | ::::::::: : : : @ :
| : : : : : @ :
- | : : : : : @ :
+ | :::::::: : : : : @ :
| : : : : : : @ :
- | : : : : : : @ :
+ | :::::::: : : : : : @ :
| : : : : : : : @ :
- | : : : : : : : @ :
+ | :::::::: : : : : : : @ :
| : : : : : : : : @ :
- | : : : : : : : : @ :
0 +----------------------------------------------------------------------->KB
0 3.984
Modified: branches/DARWIN/massif/tests/deep-B.post.exp
===================================================================
--- branches/DARWIN/massif/tests/deep-B.post.exp 2009-04-27 01:27:58 UTC (rev 9642)
+++ branches/DARWIN/massif/tests/deep-B.post.exp 2009-04-27 03:27:31 UTC (rev 9643)
@@ -8,24 +8,24 @@
KB
3.984^ :
| :
+ | @@@@@@@:
| @ :
- | @ :
+ | :::::::@ :
| : @ :
- | : @ :
+ | :::::::: @ :
| : : @ :
- | : : @ :
+ | :::::::: : @ :
| : : : @ :
- | : : : @ :
+ | :::::::: : : @ :
| : : : : @ :
- | : : : : @ :
+ | ::::::::: : : : @ :
| : : : : : @ :
- | : : : : : @ :
+ | :::::::: : : : : @ :
| : : : : : : @ :
- | : : : : : : @ :
+ | :::::::: : : : : : @ :
| : : : : : : : @ :
- | : : : : : : : @ :
+ | :::::::: : : : : : : @ :
| : : : : : : : : @ :
- | : : : : : : : : @ :
0 +----------------------------------------------------------------------->KB
0 3.984
Modified: branches/DARWIN/massif/tests/deep-C.post.exp
===================================================================
--- branches/DARWIN/massif/tests/deep-C.post.exp 2009-04-27 01:27:58 UTC (rev 9642)
+++ branches/DARWIN/massif/tests/deep-C.post.exp 2009-04-27 03:27:31 UTC (rev 9643)
@@ -8,24 +8,24 @@
KB
3.984^ :
| :
+ | @@@@@@@:
| @ :
- | @ :
+ | :::::::@ :
| : @ :
- | : @ :
+ | :::::::: @ :
| : : @ :
- | : : @ :
+ | :::::::: : @ :
| : : : @ :
- | : : : @ :
+ | :::::::: : : @ :
| : : : : @ :
- | : : : : @ :
+ | ::::::::: : : : @ :
| : : : : : @ :
- | : : : : : @ :
+ | :::::::: : : : : @ :
| : : : : : : @ :
- | : : : : : : @ :
+ | :::::::: : : : : : @ :
| : : : : : : : @ :
- | : : : : : : : @ :
+ | :::::::: : : : : : : @ :
| : : : : : : : : @ :
- | : : : : : : : : @ :
0 +----------------------------------------------------------------------->KB
0 3.984
Modified: branches/DARWIN/massif/tests/deep-D.post.exp
===================================================================
--- branches/DARWIN/massif/tests/deep-D.post.exp 2009-04-27 01:27:58 UTC (rev 9642)
+++ branches/DARWIN/massif/tests/deep-D.post.exp 2009-04-27 03:27:31 UTC (rev 9643)
@@ -8,24 +8,24 @@
KB
3.984^ :
| :
+ | @@@@@@@:
| @ :
- | @ :
+ | :::::::@ :
| : @ :
- | : @ :
+ | :::::::: @ :
| : : @ :
- | : : @ :
+ | :::::::: : @ :
| : : : @ :
- | : : : @ :
+ | :::::::: : : @ :
| : : : : @ :
- | : : : : @ :
+ | ::::::::: : : : @ :
| : : : : : @ :
- | : : : : : @ :
+ | :::::::: : : : : @ :
| : : : : : : @ :
- | : : : : : : @ :
+ | :::::::: : : : : : @ :
| : : : : : : : @ :
- | : : : : : : : @ :
+ | :::::::: : : : : : : @ :
| : : : : : : : : @ :
- | : : : : : : : : @ :
0 +----------------------------------------------------------------------->KB
0 3.984
Modified: branches/DARWIN/massif/tests/ignored.post.exp
===================================================================
--- branches/DARWIN/massif/tests/ignored.post.exp 2009-04-27 01:27:58 UTC (rev 9642)
+++ branches/DARWIN/massif/tests/ignored.post.exp 2009-04-27 03:27:31 UTC (rev 9643)
@@ -16,6 +16,7 @@
| #
| #
| #
+ | :::::::::::::::::::::::::::::::::::#
| : #
| : #
| : #
@@ -25,7 +26,6 @@
| : #
| : #
| : #
- | : #
0 +----------------------------------------------------------------------->B
0 800
Modified: branches/DARWIN/massif/tests/ignoring.post.exp
===================================================================
--- branches/DARWIN/massif/tests/ignoring.post.exp 2009-04-27 01:27:58 UTC (rev 9642)
+++ branches/DARWIN/massif/tests/ignoring.post.exp 2009-04-27 03:27:31 UTC (rev 9643)
@@ -6,16 +6,16 @@
KB
-1.008^#
+1.008^##
|#
|#
|#
|#
+ |# ::::::::::::@:::@:::@:::@:::@::::@:::::::@:::::::@:::::::@::::
|# ::::::::::::@:::@:::@:::@:::@: ::@:::::::@:::::::@:::::::@::::
|# ::::::::::::@:::@:::@:::@:::@: ::@:::::::@:::::::@:::::::@::::
|# ::::::::::::@:::@:::@:::@:::@: ::@:::::::@:::::::@:::::::@::::
|# ::::::::::::@:::@:::@:::@:::@: ::@:::::::@:::::::@:::::::@::::
- |# ::::::::::::@:::@:::@:::@:::@: ::@:::::::@:::::::@:::::::@::::
|# @:::@:::::::::::::::@:::@:::@:::@:::@: ::@:::::::@:::::::@:::::::@::::
|# @:::@:::::::::::::::@:::@:::@:::@:::@: ::@:::::::@:::::::@:::::::@::::
|# @:::@:::::::::::::::@:::@:::@:::@:::@: ::@:::::::@:::::::@:::::::@::::
Modified: branches/DARWIN/massif/tests/insig.post.exp
===================================================================
--- branches/DARWIN/massif/tests/insig.post.exp 2009-04-27 01:27:58 UTC (rev 9642)
+++ branches/DARWIN/massif/tests/insig.post.exp 2009-04-27 03:27:31 UTC (rev 9643)
@@ -6,10 +6,11 @@
KB
-19.23^ .:
- | ..:@::
- | .,::::@::
- | .:::@::::@::
+19.23^ :
+ | :@::
+ | ::::@::
+ | :::@::::@::
+ | ::::::@::::@::
| : ::::@::::@::
| : ::::@::::@::
| : ::::@::::@::
@@ -25,7 +26,6 @@
| : ::::@::::@::
| : ::::@::::@::
| : ::::@::::@::
- | : ::::@::::@::
0 +----------------------------------------------------------------------->KB
0 19.23
Modified: branches/DARWIN/massif/tests/long-names.post.exp
===================================================================
--- branches/DARWIN/massif/tests/long-names.post.exp 2009-04-27 01:27:58 UTC (rev 9642)
+++ branches/DARWIN/massif/tests/long-names.post.exp 2009-04-27 03:27:31 UTC (rev 9643)
@@ -13,19 +13,19 @@
| :
| :
| :
+ | @@@@@@@@@@@@@@@@@@@@@@@:
| @ :
| @ :
| @ :
| @ :
| @ :
| @ :
- | . @ :
+ | ::::::::::::::::::::::::@ :
| : @ :
| : @ :
| : @ :
| : @ :
| : @ :
- | : @ :
0 +----------------------------------------------------------------------->KB
0 5.859
Modified: branches/DARWIN/massif/tests/long-time.post.exp
===================================================================
--- branches/DARWIN/massif/tests/long-time.post.exp 2009-04-27 01:27:58 UTC (rev 9642)
+++ branches/DARWIN/massif/tests/long-time.post.exp 2009-04-27 03:27:31 UTC (rev 9643)
@@ -9,17 +9,17 @@
2.193^#: : : : @ : :
|#: : : : @ : :
|#: : : : @ : :
- |#: :. :. :. @. :, .
+ |#: : : : @ : :
|#: :: :: :: @: :@ :
|#: :: :: :: @: :@ :
|#: :: :: :: @: :@ :
|#: :: :: :: @: :@ :
|#: :: :: :: @: :@ :
|#: :: :: :: @: :@ :
- |#: :: :: :: @: :@ : :. :. :. :. :, :. :. . :. :, :. :
- |#: :: :: :: @: :@ : :: :: :: :: :@ :: :: : :: :@ :: :
- |#:...,..............:: :: :: @: :@ : ::.::,::.:: :@ :: :: ,: :: :@ :: :
- |#::::@:::::::::::::::: :: :: @: :@ : :::::@:::::.:@.::.::.@:.::.:@.::.:
+ |#: :: :: :: @: :@ : : : : : : : : : : : : :
+ |#: :: :: :: @: :@ : :: :: :: :: :@ :: :: :: :: :@ :: :
+ |#: :: :: :: @: :@ : :: :: :: :: :@ :: :: :: :: :@ :: :
+ |#::::@:::::::::::::::: :: :: @: :@ : :::::@::::: :@ :: :: @: :: :@ :: :
|#::::@:::::::::::::::: :: :: @: :@ : :::::@:::::::@:::::::@::::::@:::::
|#::::@:::::::::::::::: :: :: @: :@ : :::::@:::::::@:::::::@::::::@:::::
|#::::@:::::::::::::::: :: :: @: :@ : :::::@:::::::@:::::::@::::::@:::::
Modified: branches/DARWIN/massif/tests/new-cpp.post.exp
===================================================================
--- branches/DARWIN/massif/tests/new-cpp.post.exp 2009-04-27 01:27:58 UTC (rev 9642)
+++ branches/DARWIN/massif/tests/new-cpp.post.exp 2009-04-27 03:27:31 UTC (rev 9643)
@@ -6,26 +6,26 @@
KB
-11.75^ #
+11.75^ ###########
| #
| #
- | . #
+ | #
+ | :::::::#
| : #
| : #
- | : #
+ | ::::::: # ::::::::::::
| : : # :
| : : # :
| : : # :
| : : # :
| : : # :
| : : # :
- | . : : # : .
+ | ::::::::::::: : # : ::::::
| : : : # : :
| : : : # : :
- | : : : # : :
+ | : : : # : : ::::::
| : : : # : : :
| : : : # : : :
- | : ...
[truncated message content] |
|
From: Tom H. <th...@cy...> - 2009-04-27 02:45:23
|
Nightly build on lloyd ( x86_64, Fedora 7 ) started at 2009-04-27 03:05:06 BST Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... done Regression test results follow == 478 tests, 0 stderr failures, 0 stdout failures, 0 post failures == |
|
From: Tom H. <th...@cy...> - 2009-04-27 02:28:08
|
Nightly build on mg ( x86_64, Fedora 9 ) started at 2009-04-27 03:10:05 BST Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 484 tests, 0 stderr failures, 1 stdout failure, 0 post failures == none/tests/linux/mremap2 (stdout) |
|
From: <sv...@va...> - 2009-04-27 01:28:13
|
Author: njn
Date: 2009-04-27 02:27:58 +0100 (Mon, 27 Apr 2009)
New Revision: 9642
Log:
Make the graphs drawn by ms_print less confusing.
Modified:
trunk/NEWS
trunk/massif/docs/ms-manual.xml
trunk/massif/ms_print.in
trunk/massif/tests/alloc-fns-A.post.exp
trunk/massif/tests/alloc-fns-B.post.exp
trunk/massif/tests/basic.post.exp
trunk/massif/tests/basic2.post.exp
trunk/massif/tests/big-alloc.post.exp
trunk/massif/tests/custom_alloc.post.exp
trunk/massif/tests/deep-A.post.exp
trunk/massif/tests/deep-B.post.exp
trunk/massif/tests/deep-C.post.exp
trunk/massif/tests/deep-D.post.exp
trunk/massif/tests/ignored.post.exp
trunk/massif/tests/ignoring.post.exp
trunk/massif/tests/insig.post.exp
trunk/massif/tests/long-names.post.exp
trunk/massif/tests/long-time.post.exp
trunk/massif/tests/new-cpp.post.exp
trunk/massif/tests/overloaded-new.post.exp
trunk/massif/tests/peak.post.exp
trunk/massif/tests/peak2.post.exp
trunk/massif/tests/realloc.post.exp
trunk/massif/tests/thresholds_0_0.post.exp
trunk/massif/tests/thresholds_0_10.post.exp
trunk/massif/tests/thresholds_10_0.post.exp
trunk/massif/tests/thresholds_10_10.post.exp
trunk/massif/tests/thresholds_5_0.post.exp
trunk/massif/tests/thresholds_5_10.post.exp
Modified: trunk/NEWS
===================================================================
--- trunk/NEWS 2009-04-26 22:23:20 UTC (rev 9641)
+++ trunk/NEWS 2009-04-27 01:27:58 UTC (rev 9642)
@@ -38,13 +38,19 @@
Stack traces produced when --xml=yes is specified are different and
unchanged.
+* The graphs drawn by Massif's ms_print program have changed slightly:
+ - The half-height chars '.' and ',' are no longer drawn, because they are
+ confusing. The --y option can be used if the default y-resolution is
+ not high enough.
+ - Horizontal lines are now drawn after the top of a snapshot if there is a
+ gap until the next snapshot. This makes it clear that the memory
+ usage has not dropped to zero between snapshots.
+
* The location of some install files has changed. This should not affect
most users. Those who might be affected:
-
- For people who use Valgrind with MPI programs, the installed
libmpiwrap.so library has moved from $(INSTALL)/<platform>/libmpiwrap.so
to $(INSTALL)/libmpiwrap-<platform>.so.
-
- For people who distribute standalone Valgrind tools, the installed
libraries such as $(INSTALL)/<platform>/libcoregrind.a have moved to
$(INSTALL)/libcoregrind-<platform>.a.
Modified: trunk/massif/docs/ms-manual.xml
===================================================================
--- trunk/massif/docs/ms-manual.xml 2009-04-26 22:23:20 UTC (rev 9641)
+++ trunk/massif/docs/ms-manual.xml 2009-04-27 01:27:58 UTC (rev 9642)
@@ -174,15 +174,15 @@
| #
| #
| #
+ | #
+ | #
+ | #
| :#
| :#
| :#
- | :#
- | :#
- | :#
- 0 +----------------------------------------------------------------------->ki
- 0 121.8
+ 0 +----------------------------------------------------------------------->ki 0 113.4
+
Number of snapshots: 25
Detailed snapshots: [9, 14 (peak), 24]
]]></screen>
@@ -201,40 +201,40 @@
re-run ms_print, we get this more useful graph:</para>
<screen><![CDATA[
- KB
-19.63^ #
- | # .
- | # : .
- | # : : .
- | : # : : : .
- | : # : : : : .
- | : # : : : : : .
- | : # : : : : : : .
- | : : # : : : : : : : .
- | : : # : : : : : : : : .
- | : : : # : : : : : : : : : ,
- | @ : : : # : : : : : : : : : @
- | : @ : : : # : : : : : : : : : @
- | : : @ : : : # : : : : : : : : : @
- | : : : @ : : : # : : : : : : : : : @
- | : : : : @ : : : # : : : : : : : : : @
- | : : : : : @ : : : # : : : : : : : : : @
- | : : : : : : @ : : : # : : : : : : : : : @
- | : : : : : : : @ : : : # : : : : : : : : : @
- | : : : : : : : : @ : : : # : : : : : : : : : @
- 0 +----------------------------------------------------------------------->KB
- 0 29.48
+19.63^ ###
+ | #
+ | # ::
+ | # : :::
+ | :::::::::# : : ::
+ | : # : : : ::
+ | : # : : : : :::
+ | : # : : : : : ::
+ | ::::::::::: # : : : : : : :::
+ | : : # : : : : : : : ::
+ | ::::: : # : : : : : : : : ::
+ | @@@: : : # : : : : : : : : : @
+ | ::@ : : : # : : : : : : : : : @
+ | :::: @ : : : # : : : : : : : : : @
+ | ::: : @ : : : # : : : : : : : : : @
+ | ::: : : @ : : : # : : : : : : : : : @
+ | :::: : : : @ : : : # : : : : : : : : : @
+ | ::: : : : : @ : : : # : : : : : : : : : @
+ | :::: : : : : : @ : : : # : : : : : : : : : @
+ | ::: : : : : : : @ : : : # : : : : : : : : : @
+ 0 +----------------------------------------------------------------------->KB 0 29.48
Number of snapshots: 25
Detailed snapshots: [9, 14 (peak), 24]
]]></screen>
<para>Each vertical bar represents a snapshot, i.e. a measurement of the
-memory usage at a certain point in time. The text at the bottom show that
-25 snapshots were taken for this program, which is one per heap
-allocation/deallocation, plus a couple of extras. Massif starts by taking
-snapshots for every heap allocation/deallocation, but as a program runs for
-longer, it takes snapshots less frequently. It also discards older
+memory usage at a certain point in time. If the next snapshot is more than
+one column away, a horizontal line of characters is drawn from the top of
+the snapshot to just before the next snapshot column. The text at the
+bottom show that 25 snapshots were taken for this program, which is one per
+heap allocation/deallocation, plus a couple of extras. Massif starts by
+taking snapshots for every heap allocation/deallocation, but as a program
+runs for longer, it takes snapshots less frequently. It also discards older
snapshots as the program goes on; when it reaches the maximum number of
snapshots (100 by default, although changeable with the
<computeroutput>--max-snapshots</computeroutput> option) half of them are
@@ -243,12 +243,12 @@
<para>Most snapshots are <emphasis>normal</emphasis>, and only basic
information is recorded for them. Normal snapshots are represented in the
-graph by bars consisting of ':' and '.' characters.</para>
+graph by bars consisting of ':' characters.</para>
<para>Some snapshots are <emphasis>detailed</emphasis>. Information about
where allocations happened are recorded for these snapshots, as we will see
shortly. Detailed snapshots are represented in the graph by bars consisting
-of '@' and ',' characters. The text at the bottom show that 3 detailed
+of '@' characters. The text at the bottom show that 3 detailed
snapshots were taken for this program (snapshots 9, 14 and 24). By default,
every 10th snapshot is detailed, although this can be changed via the
<computeroutput>--detailed-freq</computeroutput> option.</para>
@@ -256,7 +256,7 @@
<para>Finally, there is at most one <emphasis>peak</emphasis> snapshot. The
peak snapshot is a detailed snapshot, and records the point where memory
consumption was greatest. The peak snapshot is represented in the graph by
-a bar consisting of '#' and ',' characters. The text at the bottom shows
+a bar consisting of '#' characters. The text at the bottom shows
that snapshot 14 was the peak. Note that for tiny programs that never
deallocate heap memory, Massif will not record a peak snapshot.</para>
@@ -272,26 +272,26 @@
browser. It shows what graphs for larger programs look like.</para>
<screen><![CDATA[
MB
-3.952^ #.
- | ,@#:
- | , .. :@@#:
- | @ :: :@@#:.
- | ,@ :: :@@#::
- | , .@@@ :: :@@#:.
- | .@ :@@@ :: :@@#::
+3.952^ #
+ | @#:
+ | :@@#:
+ | @@::::@@#:
+ | @ :: :@@#::
+ | @@@ :: :@@#::
+ | @@:@@@ :: :@@#::
+ | :::@ :@@@ :: :@@#::
| : :@ :@@@ :: :@@#::
- | ,: :@ :@@@ :: :@@#::
- | ,:@: :@ :@@@ :: :@@#::.
+ | :@: :@ :@@@ :: :@@#::
| @@:@: :@ :@@@ :: :@@#:::
- | ,,: .:: . , .::@@:@: :@ :@@@ :: :@@#:::
- | .:@@: .: ::: ::: @ :::@@:@: :@ :@@@ :: :@@#:::
- | ,: ::@@: ::: ::::::: @ :::@@:@: :@ :@@@ :: :@@#:::
- | @: ::@@: ::: ::::::: @ :::@@:@: :@ :@@@ :: :@@#::.
+ | : :: ::@@:@: :@ :@@@ :: :@@#:::
+ | :@@: ::::: ::::@@@:::@@:@: :@ :@@@ :: :@@#:::
+ | ::::@@: ::: ::::::: @ :::@@:@: :@ :@@@ :: :@@#:::
| @: ::@@: ::: ::::::: @ :::@@:@: :@ :@@@ :: :@@#:::
- | , @: ::@@:: ::: ::::::: @ :::@@:@: :@ :@@@ :: :@@#:::
- | ::@ @: ::@@:: ::: ::::::: @ :::@@:@: :@ :@@@ :: :@@#:::
- | , :::::@ @: ::@@:: ::: ::::::: @ :::@@:@: :@ :@@@ :: :@@#:::
- | ..@ :::::@ @: ::@@:: ::: ::::::: @ :::@@:@: :@ :@@@ :: :@@#:::
+ | @: ::@@: ::: ::::::: @ :::@@:@: :@ :@@@ :: :@@#:::
+ | @: ::@@:::::: ::::::: @ :::@@:@: :@ :@@@ :: :@@#:::
+ | ::@@@: ::@@:: ::: ::::::: @ :::@@:@: :@ :@@@ :: :@@#:::
+ | :::::@ @: ::@@:: ::: ::::::: @ :::@@:@: :@ :@@@ :: :@@#:::
+ | @@:::::@ @: ::@@:: ::: ::::::: @ :::@@:@: :@ :@@@ :: :@@#:::
0 +----------------------------------------------------------------------->Mi
0 626.4
@@ -424,8 +424,9 @@
11, and half was due to a call from line 25.</para>
<para>In short, Massif collates the stack trace of every single allocation
-point in the program into a single tree, which gives a complete picture of
-how and why all heap memory was allocated.</para>
+point in the program into a single tree, which gives a complete picture at
+a particular point in time of how and why all heap memory was
+allocated.</para>
<para>Note that the tree entries correspond not to functions, but to
individual code locations. For example, if function <function>A</function>
@@ -436,16 +437,16 @@
from line 15 (e.g. due to a loop), then each of those calls will be
represented by the same stack trace in the tree.</para>
-<para>Note also that tree entry with children in the example satisfies an
+<para>Note also that each tree entry with children in the example satisfies an
invariant: the entry's size is equal to the sum of its children's sizes.
For example, the first entry has size 20,000B, and its children have sizes
10,000B, 8,000B, and 2,000B. In general, this invariant almost always
holds. However, in rare circumstances stack traces can be malformed, in
which case a stack trace can be a sub-trace of another stack trace. This
means that some entries in the tree may not satisfy the invariant -- the
-entry's size will be greater than the sum of its children's sizes. Massif
-can sometimes detect when this happens; if it does, it issues a
-warning:</para>
+entry's size will be greater than the sum of its children's sizes. This is
+not a big problem, but could make the results confusing. Massif can
+sometimes detect when this happens; if it does, it issues a warning:</para>
<screen><![CDATA[
Warning: Malformed stack trace detected. In Massif's output,
Modified: trunk/massif/ms_print.in
===================================================================
--- trunk/massif/ms_print.in 2009-04-26 22:23:20 UTC (rev 9641)
+++ trunk/massif/ms_print.in 2009-04-27 01:27:58 UTC (rev 9642)
@@ -507,25 +507,20 @@
# Each row represents K bytes, which is 1/graph_y of the peak size
# (and K can be non-integral). When drawing the column for a snapshot,
# in order to fill the slot in row y (where the first row drawn on is
- # row 1) with a half-char (eg. '.'), it must be >= (y - 1/2)*K. In
- # order to fill a row/column spot with a full-char (eg. ':'), it must be
- # >= y*K. For example, if K = 10 bytes, then the values 0, 4, 5, 9, 10,
- # 14, 15, 19, 20, 24, 25, 29, 30 would be drawn like this (showing one
- # per column):
+ # row 1) with a full-char (eg. ':'), it must be >= y*K. For example, if
+ # K = 10 bytes, then the values 0, 4, 5, 9, 10, 14, 15, 19, 20, 24, 25,
+ # 29, 30 would be drawn like this (showing one per column):
#
- # y (y - 1/2) * K y * K
- # - ------------- -----------
- # 30 | ..: 3 (3 - 1/2) * 10 = 25 3 * 10 = 30
- # 20 | ..::::: 2 (2 - 1/2) * 10 = 15 2 * 10 = 20
- # 10 | ..::::::::: 1 (1 - 1/2) * 10 = 5 1 * 10 = 10
+ # y y * K
+ # - -----------
+ # 30 | : 3 3 * 10 = 30
+ # 20 | ::::: 2 2 * 10 = 20
+ # 10 | ::::::::: 1 1 * 10 = 10
# 0 +-------------
- my $peak_full_char = '#';
- my $detailed_full_char = '@';
- my $normal_full_char = ':';
- my $peak_half_char = ',';
- my $detailed_half_char = ',';
- my $normal_half_char = '.';
+ my $peak_char = '#';
+ my $detailed_char = '@';
+ my $normal_char = ':';
# Work out how many bytes each row represents. If the peak size was 0,
# make it 1 so that the Y-axis covers a non-zero range of values.
@@ -534,9 +529,15 @@
if (0 == $end_time ) { $end_time = 1; }
my $K = $peak_mem_total_szB / $graph_y;
+ $x = 0;
+ my $prev_x = 0;
+ my $prev_y_max = 0;
+ my $prev_char = ':';
+
for (my $i = 0; $i < $n_snapshots; $i++) {
# Work out which column this snapshot belongs to.
+ $prev_x = $x;
my $x_pos_frac = ($times[$i] / ($end_time)) * $graph_x;
$x = int($x_pos_frac) + 1; # +1 due to Y-axis
# The final snapshot will spill over into the n+1th column, which
@@ -547,41 +548,49 @@
$x = $graph_x;
}
- # Draw the column if:
- # - it's the peak column, or
- # - it's a detailed column, and we won't overwrite the peak column, or
- # - it's a normal column, and we won't overwrite the peak column or a
- # detailed column.
- my $should_draw_column =
- (($i == $peak_num) or
- ($is_detaileds[$i] and $graph[$x][1] ne $peak_full_char) or
- ($graph[$x][1] ne $peak_full_char and
- $graph[$x][1] ne $detailed_full_char));
+ # If there was a gap between the previous snapshot's column and this
+ # one, we draw a horizontal line in the gap (so long as it doesn't
+ # trash the x-axis). Without this, graphs with a few sparse
+ # snapshots look funny -- as if the memory usage is in temporary
+ # spikes.
+ if ($prev_y_max > 0) {
+ for (my $x2 = $prev_x + 1; $x2 < $x; $x2++) {
+ $graph[$x2][$prev_y_max] = $prev_char;
+ }
+ }
- if ($should_draw_column) {
- # If it's detailed, mark the X-axis. Also choose the full-slot
- # char.
- my ($full_char, $half_char);
- if ($i == $peak_num) {
- $full_char = $peak_full_char;
- $half_char = $peak_half_char;
- } elsif ($is_detaileds[$i]) {
- $full_char = $detailed_full_char;
- $half_char = $detailed_half_char;
- } else {
- $full_char = $normal_full_char;
- $half_char = $normal_half_char;
- }
- # Grow this snapshot bar from bottom to top.
- for ($y = 1; $y <= $graph_y; $y++) {
- if ($mem_total_Bs[$i] >= ($y - 1/2) * $K) {
- $graph[$x][$y] = $half_char;
- }
- if ($mem_total_Bs[$i] >= $y * $K) {
- $graph[$x][$y] = $full_char;
+ # Choose the column char.
+ my $char;
+ if ($i == $peak_num) { $char = $peak_char; }
+ elsif ($is_detaileds[$i]) { $char = $detailed_char; }
+ else { $char = $normal_char; }
+
+ # Grow this snapshot bar from bottom to top.
+ my $y_max = 0;
+ for ($y = 1; $y <= $graph_y; $y++) {
+ if ($mem_total_Bs[$i] >= $y * $K) {
+ # Priority order for chars: peak > detailed > normal
+ my $should_draw_char =
+ (($char eq $peak_char)
+ or
+ ($char eq $detailed_char and
+ $graph[$x][$y] ne $peak_char
+ )
+ or
+ ($char eq $normal_char and
+ $graph[$x][$y] ne $peak_char and
+ $graph[$x][$y] ne $detailed_char
+ )
+ );
+
+ if ($should_draw_char) {
+ $graph[$x][$y] = $char;
}
+ $y_max = $y;
}
}
+ $prev_y_max = $y_max;
+ $prev_char = $char;
}
#-------------------------------------------------------------------------
@@ -669,5 +678,3 @@
##--------------------------------------------------------------------##
##--- end ms_print.in ---##
##--------------------------------------------------------------------##
-
-
Modified: trunk/massif/tests/alloc-fns-A.post.exp
===================================================================
--- trunk/massif/tests/alloc-fns-A.post.exp 2009-04-26 22:23:20 UTC (rev 9641)
+++ trunk/massif/tests/alloc-fns-A.post.exp 2009-04-27 01:27:58 UTC (rev 9642)
@@ -8,24 +8,24 @@
KB
3.516^ @
| @
- | . @
+ | @
+ | :::::::@
| : @
- | . : @
+ | ::::::::: @
| : : @
- | : : @
+ | ::::::::: : @
| : : : @
- | : : : @
+ | ::::::::: : : @
| : : : : @
| : : : : @
- | . : : : : @
+ | ::::::::: : : : @
| : : : : : @
- | . : : : : : @
+ | ::::::::: : : : : @
| : : : : : : @
- | : : : : : : @
+ | ::::::::: : : : : : @
| : : : : : : : @
- | : : : : : : : @
+ | ::::::::: : : : : : : @
| : : : : : : : : @
- | : : : : : : : : @
0 +----------------------------------------------------------------------->KB
0 3.516
Modified: trunk/massif/tests/alloc-fns-B.post.exp
===================================================================
--- trunk/massif/tests/alloc-fns-B.post.exp 2009-04-26 22:23:20 UTC (rev 9641)
+++ trunk/massif/tests/alloc-fns-B.post.exp 2009-04-27 01:27:58 UTC (rev 9642)
@@ -8,24 +8,24 @@
KB
3.516^ @
| @
- | . @
+ | @
+ | :::::::@
| : @
- | . : @
+ | ::::::::: @
| : : @
- | : : @
+ | ::::::::: : @
| : : : @
- | : : : @
+ | ::::::::: : : @
| : : : : @
| : : : : @
- | . : : : : @
+ | ::::::::: : : : @
| : : : : : @
- | . : : : : : @
+ | ::::::::: : : : : @
| : : : : : : @
- | : : : : : : @
+ | ::::::::: : : : : : @
| : : : : : : : @
- | : : : : : : : @
+ | ::::::::: : : : : : : @
| : : : : : : : : @
- | : : : : : : : : @
0 +----------------------------------------------------------------------->KB
0 3.516
Modified: trunk/massif/tests/basic.post.exp
===================================================================
--- trunk/massif/tests/basic.post.exp 2009-04-26 22:23:20 UTC (rev 9641)
+++ trunk/massif/tests/basic.post.exp 2009-04-27 01:27:58 UTC (rev 9642)
@@ -7,25 +7,25 @@
KB
14.34^ #
- | .:#:.
- | .:::#:::.
- | .:::::#:::::.
- | .@::::::#:::::::.
+ | :#:
+ | :::#:::
+ | :::::#:::::
+ | @::::::#:::::::
| ::@::::::#:::::::::
- | .:::@::::::#:::::::::@.
- | .:::::@::::::#:::::::::@::.
- | .:::::::@::::::#:::::::::@::::.
- | ,:::::::::@::::::#:::::::::@::::::.
+ | :::@::::::#:::::::::@
+ | :::::@::::::#:::::::::@::
+ | :::::::@::::::#:::::::::@::::
+ | :::::::::@::::::#:::::::::@::::::
| :@:::::::::@::::::#:::::::::@::::::::
- | .::@:::::::::@::::::#:::::::::@:::::::::,
- | .::::@:::::::::@::::::#:::::::::@:::::::::@:.
- | .::::::@:::::::::@::::::#:::::::::@:::::::::@:::.
- | .::::::::@:::::::::@::::::#:::::::::@:::::::::@:::::.
+ | ::@:::::::::@::::::#:::::::::@:::::::::
+ | ::::@:::::::::@::::::#:::::::::@:::::::::@:
+ | ::::::@:::::::::@::::::#:::::::::@:::::::::@:::
+ | ::::::::@:::::::::@::::::#:::::::::@:::::::::@:::::
| @:::::::::@:::::::::@::::::#:::::::::@:::::::::@:::::::
- | .:@:::::::::@:::::::::@::::::#:::::::::@:::::::::@::::::::.
- | .:::@:::::::::@:::::::::@::::::#:::::::::@:::::::::@:::::::::@.
- | .:::::@:::::::::@:::::::::@::::::#:::::::::@:::::::::@:::::::::@::.
- | .:::::::@:::::::::@:::::::::@::::::#:::::::::@:::::::::@:::::::::@::::.
+ | :@:::::::::@:::::::::@::::::#:::::::::@:::::::::@::::::::
+ | :::@:::::::::@:::::::::@::::::#:::::::::@:::::::::@:::::::::@
+ | :::::@:::::::::@:::::::::@::::::#:::::::::@:::::::::@:::::::::@::
+ | :::::::@:::::::::@:::::::::@::::::#:::::::::@:::::::::@:::::::::@::::
0 +----------------------------------------------------------------------->KB
0 28.29
Modified: trunk/massif/tests/basic2.post.exp
===================================================================
--- trunk/massif/tests/basic2.post.exp 2009-04-26 22:23:20 UTC (rev 9641)
+++ trunk/massif/tests/basic2.post.exp 2009-04-27 01:27:58 UTC (rev 9642)
@@ -6,24 +6,24 @@
KB
-14.34^ #
+14.34^ ########
| #
| #
| #
- | # ,
+ | #
+ | @@@@@@@@@@# @@@@@@@@@
| @ # @
| @ # @
| @ # @
- | @ # @
- | , @ # @ @
+ | @ # @ @@@@@@@@
+ | @@@@@@@@@ # @ @
| @ @ # @ @
| @ @ # @ @
| @ @ # @ @
- | @ @ # @ @ ,
- | @ @ # @ @ @
+ | @ @ # @ @ @@@@@@@@
+ | @@@@@@@@@@@@ @ # @ @ @
| @ @ @ # @ @ @
| @ @ @ # @ @ @
- | @ @ @ # @ @ @
| @ @ @ # @ @ @ @
| @ @ @ # @ @ @ @
0 +----------------------------------------------------------------------->KB
Modified: trunk/massif/tests/big-alloc.post.exp
===================================================================
--- trunk/massif/tests/big-alloc.post.exp 2009-04-26 22:23:20 UTC (rev 9641)
+++ trunk/massif/tests/big-alloc.post.exp 2009-04-27 01:27:58 UTC (rev 9642)
@@ -8,24 +8,24 @@
MB
100.0^ :
| :
+ | @@@@@@@:
| @ :
- | @ :
+ | :::::::@ :
| : @ :
- | : @ :
+ | :::::::: @ :
| : : @ :
- | : : @ :
+ | :::::::: : @ :
| : : : @ :
- | : : : @ :
+ | :::::::: : : @ :
| : : : : @ :
- | : : : : @ :
+ | ::::::::: : : : @ :
| : : : : : @ :
- | : : : : : @ :
+ | :::::::: : : : : @ :
| : : : : : : @ :
- | : : : : : : @ :
+ | :::::::: : : : : : @ :
| : : : : : : : @ :
- | : : : : : : : @ :
+ | :::::::: : : : : : : @ :
| : : : : : : : : @ :
- | : : : : : : : : @ :
0 +----------------------------------------------------------------------->MB
0 100.0
Modified: trunk/massif/tests/custom_alloc.post.exp
===================================================================
--- trunk/massif/tests/custom_alloc.post.exp 2009-04-26 22:23:20 UTC (rev 9641)
+++ trunk/massif/tests/custom_alloc.post.exp 2009-04-27 01:27:58 UTC (rev 9642)
@@ -6,7 +6,7 @@
B
- 816^ # :
+ 816^ ############ :::::::::::
| # :
| # :
| # :
@@ -16,6 +16,7 @@
| # :
| # :
| # :
+ | @@@@@@ # :::::: :
| @ # : :
| @ # : :
| @ # : :
@@ -25,7 +26,6 @@
| @ # : :
| @ # : :
| @ # : :
- | @ # : :
0 +----------------------------------------------------------------------->KB
0 4.812
Modified: trunk/massif/tests/deep-A.post.exp
===================================================================
--- trunk/massif/tests/deep-A.post.exp 2009-04-26 22:23:20 UTC (rev 9641)
+++ trunk/massif/tests/deep-A.post.exp 2009-04-27 01:27:58 UTC (rev 9642)
@@ -8,24 +8,24 @@
KB
3.984^ :
| :
+ | @@@@@@@:
| @ :
- | @ :
+ | :::::::@ :
| : @ :
- | : @ :
+ | :::::::: @ :
| : : @ :
- | : : @ :
+ | :::::::: : @ :
| : : : @ :
- | : : : @ :
+ | :::::::: : : @ :
| : : : : @ :
- | : : : : @ :
+ | ::::::::: : : : @ :
| : : : : : @ :
- | : : : : : @ :
+ | :::::::: : : : : @ :
| : : : : : : @ :
- | : : : : : : @ :
+ | :::::::: : : : : : @ :
| : : : : : : : @ :
- | : : : : : : : @ :
+ | :::::::: : : : : : : @ :
| : : : : : : : : @ :
- | : : : : : : : : @ :
0 +----------------------------------------------------------------------->KB
0 3.984
Modified: trunk/massif/tests/deep-B.post.exp
===================================================================
--- trunk/massif/tests/deep-B.post.exp 2009-04-26 22:23:20 UTC (rev 9641)
+++ trunk/massif/tests/deep-B.post.exp 2009-04-27 01:27:58 UTC (rev 9642)
@@ -8,24 +8,24 @@
KB
3.984^ :
| :
+ | @@@@@@@:
| @ :
- | @ :
+ | :::::::@ :
| : @ :
- | : @ :
+ | :::::::: @ :
| : : @ :
- | : : @ :
+ | :::::::: : @ :
| : : : @ :
- | : : : @ :
+ | :::::::: : : @ :
| : : : : @ :
- | : : : : @ :
+ | ::::::::: : : : @ :
| : : : : : @ :
- | : : : : : @ :
+ | :::::::: : : : : @ :
| : : : : : : @ :
- | : : : : : : @ :
+ | :::::::: : : : : : @ :
| : : : : : : : @ :
- | : : : : : : : @ :
+ | :::::::: : : : : : : @ :
| : : : : : : : : @ :
- | : : : : : : : : @ :
0 +----------------------------------------------------------------------->KB
0 3.984
Modified: trunk/massif/tests/deep-C.post.exp
===================================================================
--- trunk/massif/tests/deep-C.post.exp 2009-04-26 22:23:20 UTC (rev 9641)
+++ trunk/massif/tests/deep-C.post.exp 2009-04-27 01:27:58 UTC (rev 9642)
@@ -8,24 +8,24 @@
KB
3.984^ :
| :
+ | @@@@@@@:
| @ :
- | @ :
+ | :::::::@ :
| : @ :
- | : @ :
+ | :::::::: @ :
| : : @ :
- | : : @ :
+ | :::::::: : @ :
| : : : @ :
- | : : : @ :
+ | :::::::: : : @ :
| : : : : @ :
- | : : : : @ :
+ | ::::::::: : : : @ :
| : : : : : @ :
- | : : : : : @ :
+ | :::::::: : : : : @ :
| : : : : : : @ :
- | : : : : : : @ :
+ | :::::::: : : : : : @ :
| : : : : : : : @ :
- | : : : : : : : @ :
+ | :::::::: : : : : : : @ :
| : : : : : : : : @ :
- | : : : : : : : : @ :
0 +----------------------------------------------------------------------->KB
0 3.984
Modified: trunk/massif/tests/deep-D.post.exp
===================================================================
--- trunk/massif/tests/deep-D.post.exp 2009-04-26 22:23:20 UTC (rev 9641)
+++ trunk/massif/tests/deep-D.post.exp 2009-04-27 01:27:58 UTC (rev 9642)
@@ -8,24 +8,24 @@
KB
3.984^ :
| :
+ | @@@@@@@:
| @ :
- | @ :
+ | :::::::@ :
| : @ :
- | : @ :
+ | :::::::: @ :
| : : @ :
- | : : @ :
+ | :::::::: : @ :
| : : : @ :
- | : : : @ :
+ | :::::::: : : @ :
| : : : : @ :
- | : : : : @ :
+ | ::::::::: : : : @ :
| : : : : : @ :
- | : : : : : @ :
+ | :::::::: : : : : @ :
| : : : : : : @ :
- | : : : : : : @ :
+ | :::::::: : : : : : @ :
| : : : : : : : @ :
- | : : : : : : : @ :
+ | :::::::: : : : : : : @ :
| : : : : : : : : @ :
- | : : : : : : : : @ :
0 +----------------------------------------------------------------------->KB
0 3.984
Modified: trunk/massif/tests/ignored.post.exp
===================================================================
--- trunk/massif/tests/ignored.post.exp 2009-04-26 22:23:20 UTC (rev 9641)
+++ trunk/massif/tests/ignored.post.exp 2009-04-27 01:27:58 UTC (rev 9642)
@@ -16,6 +16,7 @@
| #
| #
| #
+ | :::::::::::::::::::::::::::::::::::#
| : #
| : #
| : #
@@ -25,7 +26,6 @@
| : #
| : #
| : #
- | : #
0 +----------------------------------------------------------------------->B
0 800
Modified: trunk/massif/tests/ignoring.post.exp
===================================================================
--- trunk/massif/tests/ignoring.post.exp 2009-04-26 22:23:20 UTC (rev 9641)
+++ trunk/massif/tests/ignoring.post.exp 2009-04-27 01:27:58 UTC (rev 9642)
@@ -6,16 +6,16 @@
KB
-1.008^#
+1.008^##
|#
|#
|#
|#
+ |# ::::::::::::@:::@:::@:::@:::@::::@:::::::@:::::::@:::::::@::::
|# ::::::::::::@:::@:::@:::@:::@: ::@:::::::@:::::::@:::::::@::::
|# ::::::::::::@:::@:::@:::@:::@: ::@:::::::@:::::::@:::::::@::::
|# ::::::::::::@:::@:::@:::@:::@: ::@:::::::@:::::::@:::::::@::::
|# ::::::::::::@:::@:::@:::@:::@: ::@:::::::@:::::::@:::::::@::::
- |# ::::::::::::@:::@:::@:::@:::@: ::@:::::::@:::::::@:::::::@::::
|# @:::@:::::::::::::::@:::@:::@:::@:::@: ::@:::::::@:::::::@:::::::@::::
|# @:::@:::::::::::::::@:::@:::@:::@:::@: ::@:::::::@:::::::@:::::::@::::
|# @:::@:::::::::::::::@:::@:::@:::@:::@: ::@:::::::@:::::::@:::::::@::::
Modified: trunk/massif/tests/insig.post.exp
===================================================================
--- trunk/massif/tests/insig.post.exp 2009-04-26 22:23:20 UTC (rev 9641)
+++ trunk/massif/tests/insig.post.exp 2009-04-27 01:27:58 UTC (rev 9642)
@@ -6,10 +6,11 @@
KB
-19.23^ .:
- | ..:@::
- | .,::::@::
- | .:::@::::@::
+19.23^ :
+ | :@::
+ | ::::@::
+ | :::@::::@::
+ | ::::::@::::@::
| : ::::@::::@::
| : ::::@::::@::
| : ::::@::::@::
@@ -25,7 +26,6 @@
| : ::::@::::@::
| : ::::@::::@::
| : ::::@::::@::
- | : ::::@::::@::
0 +----------------------------------------------------------------------->KB
0 19.23
Modified: trunk/massif/tests/long-names.post.exp
===================================================================
--- trunk/massif/tests/long-names.post.exp 2009-04-26 22:23:20 UTC (rev 9641)
+++ trunk/massif/tests/long-names.post.exp 2009-04-27 01:27:58 UTC (rev 9642)
@@ -13,19 +13,19 @@
| :
| :
| :
+ | @@@@@@@@@@@@@@@@@@@@@@@:
| @ :
| @ :
| @ :
| @ :
| @ :
| @ :
- | . @ :
+ | ::::::::::::::::::::::::@ :
| : @ :
| : @ :
| : @ :
| : @ :
| : @ :
- | : @ :
0 +----------------------------------------------------------------------->KB
0 5.859
Modified: trunk/massif/tests/long-time.post.exp
===================================================================
--- trunk/massif/tests/long-time.post.exp 2009-04-26 22:23:20 UTC (rev 9641)
+++ trunk/massif/tests/long-time.post.exp 2009-04-27 01:27:58 UTC (rev 9642)
@@ -9,17 +9,17 @@
2.193^#: : : : @ : :
|#: : : : @ : :
|#: : : : @ : :
- |#: :. :. :. @. :, .
+ |#: : : : @ : :
|#: :: :: :: @: :@ :
|#: :: :: :: @: :@ :
|#: :: :: :: @: :@ :
|#: :: :: :: @: :@ :
|#: :: :: :: @: :@ :
|#: :: :: :: @: :@ :
- |#: :: :: :: @: :@ : :. :. :. :. :, :. :. . :. :, :. :
- |#: :: :: :: @: :@ : :: :: :: :: :@ :: :: : :: :@ :: :
- |#:...,..............:: :: :: @: :@ : ::.::,::.:: :@ :: :: ,: :: :@ :: :
- |#::::@:::::::::::::::: :: :: @: :@ : :::::@:::::.:@.::.::.@:.::.:@.::.:
+ |#: :: :: :: @: :@ : : : : : : : : : : : : :
+ |#: :: :: :: @: :@ : :: :: :: :: :@ :: :: :: :: :@ :: :
+ |#: :: :: :: @: :@ : :: :: :: :: :@ :: :: :: :: :@ :: :
+ |#::::@:::::::::::::::: :: :: @: :@ : :::::@::::: :@ :: :: @: :: :@ :: :
|#::::@:::::::::::::::: :: :: @: :@ : :::::@:::::::@:::::::@::::::@:::::
|#::::@:::::::::::::::: :: :: @: :@ : :::::@:::::::@:::::::@::::::@:::::
|#::::@:::::::::::::::: :: :: @: :@ : :::::@:::::::@:::::::@::::::@:::::
Modified: trunk/massif/tests/new-cpp.post.exp
===================================================================
--- trunk/massif/tests/new-cpp.post.exp 2009-04-26 22:23:20 UTC (rev 9641)
+++ trunk/massif/tests/new-cpp.post.exp 2009-04-27 01:27:58 UTC (rev 9642)
@@ -6,26 +6,26 @@
KB
-11.75^ #
+11.75^ ###########
| #
| #
- | . #
+ | #
+ | :::::::#
| : #
| : #
- | : #
+ | ::::::: # ::::::::::::
| : : # :
| : : # :
| : : # :
| : : # :
| : : # :
| : : # :
- | . : : # : .
+ | ::::::::::::: : # : ::::::
| : : : # : :
| : : : # : :
- | : : : # : :
+ | : : : # : : ::::::
| : : : # : : :
| : : : # : : :
- | : : : # : : :
0 +----------------------------------------------------------------------->KB
0 23.50
Modified: trunk/massif/tests/overloaded-new.post.exp
===================================================================
--- trunk/massif/tests/overloaded-new.post.exp 2009-04-26 22:23:20 UTC (rev 9641)
+++ trunk/massif/tests/overloaded-new.post.exp 2009-04-27 01:27:58 UTC (rev 9642)
@@ -6,26 +6,26 @@
KB
-11.75^ #
+11.75^ ###########
| #
| #
- | ...
[truncated message content] |
|
From: <sv...@va...> - 2009-04-26 22:23:29
|
Author: njn
Date: 2009-04-26 23:23:20 +0100 (Sun, 26 Apr 2009)
New Revision: 9641
Log:
Merge r9624..r9639 (DRD tweaks, mostly) from the trunk.
Added:
branches/DARWIN/drd/tests/pth_create_glibc_2_0.c
branches/DARWIN/drd/tests/pth_create_glibc_2_0.stderr.exp
branches/DARWIN/drd/tests/pth_create_glibc_2_0.vgtest
Modified:
branches/DARWIN/NEWS
branches/DARWIN/configure.in
branches/DARWIN/drd/drd_bitmap.c
branches/DARWIN/drd/drd_bitmap.h
branches/DARWIN/drd/scripts/measurement-functions
branches/DARWIN/drd/scripts/run-splash2
branches/DARWIN/drd/tests/
branches/DARWIN/drd/tests/Makefile.am
branches/DARWIN/drd/tests/tc09_bad_unlock.stderr.exp-glibc2.8
branches/DARWIN/drd/tests/tc19_shadowmem.stderr.exp-32bit
branches/DARWIN/drd/tests/tc20_verifywrap.stderr.exp-glibc2.8
branches/DARWIN/drd/tests/tc20_verifywrap2.stderr.exp-glibc2.8
branches/DARWIN/include/pub_tool_oset.h
Modified: branches/DARWIN/NEWS
===================================================================
--- branches/DARWIN/NEWS 2009-04-26 22:18:44 UTC (rev 9640)
+++ branches/DARWIN/NEWS 2009-04-26 22:23:20 UTC (rev 9641)
@@ -79,6 +79,8 @@
187048 DRD - the mutex attribute PTHREAD_PROCESS_SHARED is now
interpreted correctly.
188046 Removed a bashism from the configure script.
+189763 DRD - pthread_create@GLIBC_2.0() no longer triggers an assertion
+ failure.
Modified: branches/DARWIN/configure.in
===================================================================
--- branches/DARWIN/configure.in 2009-04-26 22:18:44 UTC (rev 9640)
+++ branches/DARWIN/configure.in 2009-04-26 22:23:20 UTC (rev 9641)
@@ -972,6 +972,35 @@
AM_CONDITIONAL([HAVE_ALTIVEC_H], [test x$ac_have_altivec = xyes])
+# Check for pthread_create@GLIBC2.0
+AC_MSG_CHECKING([for pthread_create@GLIBC2.0()])
+
+safe_CFLAGS=$CFLAGS
+CFLAGS="-lpthread"
+AC_TRY_LINK(
+[
+extern int pthread_create_glibc_2_0(void*, const void*,
+ void *(*)(void*), void*);
+__asm__(".symver pthread_create_glibc_2_0, pthread_create@GLIBC_2.0");
+], [
+ pthread_create_glibc_2_0(0, 0, 0, 0);
+ return 0;
+],
+[
+ac_have_pthread_create_glibc_2_0=yes
+AC_MSG_RESULT([yes])
+AC_DEFINE([HAVE_PTHREAD_CREATE_GLIBC_2_0], 1,
+ [Define to 1 if you have the `pthread_create@glibc2.0' function.])
+], [
+ac_have_pthread_create_glibc_2_0=no
+AC_MSG_RESULT([no])
+])
+CFLAGS=$safe_CFLAGS
+
+AM_CONDITIONAL(HAVE_PTHREAD_CREATE_GLIBC_2_0,
+ test x$ac_have_pthread_create_glibc_2_0 = xyes)
+
+
# Check for eventfd_t, eventfd() and eventfd_read()
AC_MSG_CHECKING([for eventfd()])
Modified: branches/DARWIN/drd/drd_bitmap.c
===================================================================
--- branches/DARWIN/drd/drd_bitmap.c 2009-04-26 22:18:44 UTC (rev 9640)
+++ branches/DARWIN/drd/drd_bitmap.c 2009-04-26 22:23:20 UTC (rev 9641)
@@ -112,6 +112,17 @@
const Addr a1, const Addr a2,
const BmAccessTypeT access_type)
{
+ tl_assert(access_type == eLoad || access_type == eStore);
+
+ if (access_type == eLoad)
+ return DRD_(bm_access_range_load)(bm, a1, a2);
+ else
+ return DRD_(bm_access_range_store)(bm, a1, a2);
+}
+
+void DRD_(bm_access_range_load)(struct bitmap* const bm,
+ const Addr a1, const Addr a2)
+{
Addr b, b_next;
tl_assert(bm);
@@ -145,39 +156,34 @@
b_start = (bm2->addr << ADDR0_BITS);
else
break;
- tl_assert(a1 <= b_start && b_start <= a2);
if ((bm2->addr << ADDR0_BITS) + ADDR0_COUNT < a2)
b_end = (bm2->addr << ADDR0_BITS) + ADDR0_COUNT;
else
b_end = a2;
- tl_assert(a1 <= b_end && b_end <= a2);
- tl_assert(b_start < b_end);
+
+ tl_assert(a1 <= b_start && b_start < b_end && b_end && b_end <= a2);
tl_assert((b_start & ADDR0_MASK) <= ((b_end - 1) & ADDR0_MASK));
-
- if (access_type == eLoad)
+
+ if (b_end - b_start == ADDR0_COUNT)
{
- for (b0 = b_start & ADDR0_MASK; b0 <= ((b_end - 1) & ADDR0_MASK); b0++)
+ unsigned k;
+
+ for (k = 0; k < BITMAP1_UWORD_COUNT; k++)
{
- bm0_set(bm2->bm1.bm0_r, b0);
+ bm2->bm1.bm0_r[k] = ~(UWord)0;
}
}
else
{
for (b0 = b_start & ADDR0_MASK; b0 <= ((b_end - 1) & ADDR0_MASK); b0++)
{
- bm0_set(bm2->bm1.bm0_w, b0);
+ bm0_set(bm2->bm1.bm0_r, b0);
}
}
}
}
-void DRD_(bm_access_range_load)(struct bitmap* const bm,
- const Addr a1, const Addr a2)
-{
- DRD_(bm_access_range)(bm, a1, a2, eLoad);
-}
-
void DRD_(bm_access_load_1)(struct bitmap* const bm, const Addr a1)
{
bm_access_aligned_load(bm, a1, 1);
@@ -215,7 +221,65 @@
void DRD_(bm_access_range_store)(struct bitmap* const bm,
const Addr a1, const Addr a2)
{
- DRD_(bm_access_range)(bm, a1, a2, eStore);
+ Addr b, b_next;
+
+ tl_assert(bm);
+ tl_assert(a1 < a2);
+ /* The current implementation of bm_access_range does not work for the */
+ /* ADDR0_COUNT highest addresses in the address range. At least on Linux */
+ /* this is not a problem since the upper part of the address space is */
+ /* reserved for the kernel. */
+ tl_assert(a2 + ADDR0_COUNT > a2);
+
+ for (b = a1; b < a2; b = b_next)
+ {
+ Addr b_start;
+ Addr b_end;
+ struct bitmap2* bm2;
+ SPLIT_ADDRESS(b);
+
+ b_next = (b & ~ADDR0_MASK) + ADDR0_COUNT;
+ if (b_next > a2)
+ {
+ b_next = a2;
+ }
+
+ bm2 = bm2_lookup_or_insert_exclusive(bm, b1);
+ tl_assert(bm2);
+
+ if ((bm2->addr << ADDR0_BITS) < a1)
+ b_start = a1;
+ else
+ if ((bm2->addr << ADDR0_BITS) < a2)
+ b_start = (bm2->addr << ADDR0_BITS);
+ else
+ break;
+
+ if ((bm2->addr << ADDR0_BITS) + ADDR0_COUNT < a2)
+ b_end = (bm2->addr << ADDR0_BITS) + ADDR0_COUNT;
+ else
+ b_end = a2;
+
+ tl_assert(a1 <= b_start && b_start < b_end && b_end && b_end <= a2);
+ tl_assert((b_start & ADDR0_MASK) <= ((b_end - 1) & ADDR0_MASK));
+
+ if (b_end - b_start == ADDR0_COUNT)
+ {
+ unsigned k;
+
+ for (k = 0; k < BITMAP1_UWORD_COUNT; k++)
+ {
+ bm2->bm1.bm0_w[k] = ~(UWord)0;
+ }
+ }
+ else
+ {
+ for (b0 = b_start & ADDR0_MASK; b0 <= ((b_end - 1) & ADDR0_MASK); b0++)
+ {
+ bm0_set(bm2->bm1.bm0_w, b0);
+ }
+ }
+ }
}
void DRD_(bm_access_store_1)(struct bitmap* const bm, const Addr a1)
@@ -255,9 +319,7 @@
Bool DRD_(bm_has)(struct bitmap* const bm, const Addr a1, const Addr a2,
const BmAccessTypeT access_type)
{
-#ifdef ENABLE_DRD_CONSISTENCY_CHECKS
tl_assert(access_type == eLoad || access_type == eStore);
-#endif
if (access_type == eLoad)
return DRD_(bm_has_any_load)(bm, a1, a2);
@@ -460,8 +522,8 @@
#if 0
if (a2 - a1 >= ADDR0_COUNT)
- VG_(message)(Vg_DebugMsg, "bm_clear(bm = %p, a1 = 0x%lx, a2 = 0x%lx, delta = 0x%lx",
- bm, a1, a2, a2 - a1);
+ VG_(message)(Vg_DebugMsg, "bm_clear(bm = %p, a1 = 0x%lx, a2 = 0x%lx,"
+ " delta = 0x%lx", bm, a1, a2, a2 - a1);
#endif
for (b = a1; b < a2; b = b_next)
@@ -542,8 +604,8 @@
#if 0
if (a2 - a1 >= ADDR0_COUNT)
- VG_(message)(Vg_DebugMsg, "bm_clear_load(bm = %p, a1 = 0x%lx, a2 = 0x%lx, delta = 0x%lx",
- bm, a1, a2, a2 - a1);
+ VG_(message)(Vg_DebugMsg, "bm_clear_load(bm = %p, a1 = 0x%lx, a2 = 0x%lx,"
+ " delta = 0x%lx", bm, a1, a2, a2 - a1);
#endif
for (b = a1; b < a2; b = b_next)
@@ -628,8 +690,8 @@
#if 0
if (a2 - a1 >= ADDR0_COUNT)
- VG_(message)(Vg_DebugMsg, "bm_clear_store(bm = %p, a1 = 0x%lx, a2 = 0x%lx, delta = 0x%lx",
- bm, a1, a2, a2 - a1);
+ VG_(message)(Vg_DebugMsg, "bm_clear_store(bm = %p, a1 = 0x%lx, a2 = 0x%lx,"
+ " delta = 0x%lx", bm, a1, a2, a2 - a1);
#endif
for (b = a1; b < a2; b = b_next)
@@ -646,7 +708,7 @@
b_next = (b & ~ADDR0_MASK) + ADDR0_COUNT;
if (b_next > a2)
{
- b_next = a2;
+ b_next = a2;
}
if (p2 == 0)
@@ -660,15 +722,15 @@
#endif
if (UWORD_LSB(c))
{
- Addr c_next = UWORD_MSB(c) + BITS_PER_UWORD;
- if (c_next > b_next)
- c_next = b_next;
+ Addr c_next = UWORD_MSB(c) + BITS_PER_UWORD;
+ if (c_next > b_next)
+ c_next = b_next;
#ifdef ENABLE_DRD_CONSISTENCY_CHECKS
- tl_assert(a1 <= b && b <= c && c < c_next && c_next <= b_next
- && b_next <= a2);
+ tl_assert(a1 <= b && b <= c && c < c_next && c_next <= b_next
+ && b_next <= a2);
#endif
- bm0_clear_range(p2->bm1.bm0_w, c & ADDR0_MASK, c_next - c);
- c = c_next;
+ bm0_clear_range(p2->bm1.bm0_w, c & ADDR0_MASK, c_next - c);
+ c = c_next;
}
/* If some UWords have to be cleared entirely, do this now. */
#ifdef ENABLE_DRD_CONSISTENCY_CHECKS
@@ -676,19 +738,19 @@
#endif
if (UWORD_LSB(c) == 0)
{
- const Addr c_next = UWORD_MSB(b_next);
+ const Addr c_next = UWORD_MSB(b_next);
#ifdef ENABLE_DRD_CONSISTENCY_CHECKS
- tl_assert(UWORD_LSB(c) == 0);
- tl_assert(UWORD_LSB(c_next) == 0);
- tl_assert(a1 <= b && b <= c && c <= c_next && c_next <= b_next
- && b_next <= a2);
+ tl_assert(UWORD_LSB(c) == 0);
+ tl_assert(UWORD_LSB(c_next) == 0);
+ tl_assert(a1 <= b && b <= c && c <= c_next && c_next <= b_next
+ && b_next <= a2);
#endif
- if (c_next > c)
- {
- UWord idx = (c & ADDR0_MASK) >> BITS_PER_BITS_PER_UWORD;
- VG_(memset)(&p2->bm1.bm0_w[idx], 0, (c_next - c) / 8);
- c = c_next;
- }
+ if (c_next > c)
+ {
+ UWord idx = (c & ADDR0_MASK) >> BITS_PER_BITS_PER_UWORD;
+ VG_(memset)(&p2->bm1.bm0_w[idx], 0, (c_next - c) / 8);
+ c = c_next;
+ }
}
/* If the last address in the bitmap that must be cleared does not */
/* fall on an UWord boundary, clear the last addresses. */
@@ -886,15 +948,23 @@
VG_(message)(Vg_DebugMsg, "bm_equal: at 0x%lx", bm2l->addr << ADDR0_BITS);
#endif
- bm2r_ref = VG_(OSetGen_Next)(rhs->oset);
- if (bm2r_ref == 0)
+ do
{
+ bm2r_ref = VG_(OSetGen_Next)(rhs->oset);
+ if (bm2r_ref == 0)
+ {
#if 0
- VG_(message)(Vg_DebugMsg, "bm_equal: no match found");
+ VG_(message)(Vg_DebugMsg, "bm_equal: no match found");
#endif
- return False;
+ return False;
+ }
+ bm2r = bm2r_ref->bm2;
+ tl_assert(bm2r);
}
- bm2r = bm2r_ref->bm2;
+ while (! DRD_(bm_has_any_access)(rhs,
+ bm2r->addr << ADDR0_BITS,
+ (bm2r->addr + 1) << ADDR0_BITS));
+
tl_assert(bm2r);
tl_assert(DRD_(bm_has_any_access)(rhs,
bm2r->addr << ADDR0_BITS,
@@ -911,7 +981,13 @@
return False;
}
}
- bm2r = VG_(OSetGen_Next)(rhs->oset);
+
+ do
+ {
+ bm2r = VG_(OSetGen_Next)(rhs->oset);
+ } while (bm2r && ! DRD_(bm_has_any_access)(rhs,
+ bm2r->addr << ADDR0_BITS,
+ (bm2r->addr + 1) << ADDR0_BITS));
if (bm2r)
{
tl_assert(DRD_(bm_has_any_access)(rhs,
Modified: branches/DARWIN/drd/drd_bitmap.h
===================================================================
--- branches/DARWIN/drd/drd_bitmap.h 2009-04-26 22:18:44 UTC (rev 9640)
+++ branches/DARWIN/drd/drd_bitmap.h 2009-04-26 22:23:20 UTC (rev 9641)
@@ -136,13 +136,20 @@
const Addr a1, const SizeT size)
{
#ifdef ENABLE_DRD_CONSISTENCY_CHECKS
- tl_assert(a1 < ADDR0_COUNT);
- tl_assert(size >= 0);
+ tl_assert(a1 <= ADDR0_COUNT);
tl_assert(a1 + size <= ADDR0_COUNT);
tl_assert(size == 0 || UWORD_MSB(a1) == UWORD_MSB(a1 + size - 1));
#endif
- bm0[a1 >> BITS_PER_BITS_PER_UWORD]
- &= ~((((UWord)1 << size) - 1) << UWORD_LSB(a1));
+ /*
+ * Note: although the expression below yields a correct result even if
+ * size == 0, do not touch bm0[] if size == 0 because this might otherwise
+ * cause an access of memory just past the end of the bm0[] array.
+ */
+ if (size > 0)
+ {
+ bm0[a1 >> BITS_PER_BITS_PER_UWORD]
+ &= ~((((UWord)1 << size) - 1) << UWORD_LSB(a1));
+ }
}
static __inline__ UWord bm0_is_set(const UWord* bm0, const Addr a)
Modified: branches/DARWIN/drd/scripts/measurement-functions
===================================================================
--- branches/DARWIN/drd/scripts/measurement-functions 2009-04-26 22:18:44 UTC (rev 9640)
+++ branches/DARWIN/drd/scripts/measurement-functions 2009-04-26 22:23:20 UTC (rev 9641)
@@ -37,8 +37,9 @@
fi
}
-## Read a stream of numbers from stdin (one per line), and print the average
-# and standard deviation.
+## Read zero or more lines from stdin, and print the average and standard
+# deviation per column. n is the number of lines, m the number of columns.
+# Each line must have the same number of columns.
function avgstddev {
awk '{n++;m=NF;for(i=1;i<=NF;i++){sum[i]+=$i;sumsq[i]+=$i*$i}}END{for(i=1;i<=m;i++){d=sumsq[i]/n-sum[i]*sum[i]/n/n;printf "%.2f %.2f ",sum[i]/n,(d>=0.0001?sqrt(d):0.01)}}'
}
@@ -54,6 +55,11 @@
return 1
fi
+ if ! { dump-acct -h 2>&1 | grep -q -w format; }; then
+ echo "Error: the installed version of dump-acct is not recent enough." >&2
+ return 1
+ fi
+
if [ -e /var/log/account/pacct ]; then
pacct=/var/log/account/pacct
elif [ -e /var/account/pacct ]; then
@@ -65,7 +71,8 @@
/usr/sbin/dump-acct "${pacct}" | \
grep -- "^$(basename "$1").*|v3|" | \
cut -f8 -d'|' | \
- tail -n 1
+ tail -n 1 | \
+ { read vsz; echo ${vsz:-0}; }
}
## Query the virtual memory size for the last invocation of command $1 from
Modified: branches/DARWIN/drd/scripts/run-splash2
===================================================================
--- branches/DARWIN/drd/scripts/run-splash2 2009-04-26 22:18:44 UTC (rev 9640)
+++ branches/DARWIN/drd/scripts/run-splash2 2009-04-26 22:23:20 UTC (rev 9641)
@@ -10,51 +10,67 @@
local tmp avg1 stddev1 avg2 stddev2 avg4 stddev4 p
tmp="/tmp/test-timing.$$"
+
rm -f "${tmp}"
-
p=1
test_output="${1}-p${p}.out" measure_runtime "$@" -p${psep}${p} "${test_args}" | avgstddev > "$tmp"
- read avg1 stddev1 vsz1 vszdev1 < "$tmp"
+ read avg1 stddev1 vsz1 vszdev1 rest < "$tmp"
echo "Average time: ${avg1} +/- ${stddev1} seconds." \
" VSZ: ${vsz1} +/- ${vszdev1} KB"
+ if [ "${rest}" != "" ]; then
+ echo "Internal error ($rest)"
+ exit 1
+ fi
+
+ rm -f "${tmp}"
p=2
test_output="${1}-p${p}.out" measure_runtime "$@" -p${psep}${p} "${test_args}" | avgstddev > "$tmp"
- read avg2 stddev2 vsz2 vszdev2 < "$tmp"
+ read avg2 stddev2 vsz2 vszdev2 rest < "$tmp"
echo "Average time: ${avg2} +/- ${stddev2} seconds." \
" VSZ: ${vsz2} +/- ${vszdev2} KB"
+ if [ "${rest}" != "" ]; then
+ echo "Internal error ($rest)"
+ exit 1
+ fi
+
+ rm -f "${tmp}"
p=4
test_output="${1}-p${p}.out" measure_runtime "$@" -p${psep}${p} "${test_args}" | avgstddev > "$tmp"
- read avg4 stddev4 vsz4 vszdev4 < "$tmp"
+ read avg4 stddev4 vsz4 vszdev4 rest < "$tmp"
echo "Average time: ${avg4} +/- ${stddev4} seconds." \
" VSZ: ${vsz4} +/- ${vszdev4} KB"
+ rm -f "$tmp"
+ if [ "${rest}" != "" ]; then
+ echo "Internal error ($rest)"
+ exit 1
+ fi
+
p=1
test_output="/dev/null" \
- print_runtime_ratio ${avg1} ${stddev1} ${vsz1} ${vszdev1} $VG --tool=none "$@" -p${psep}${p} "${test_args}"
+ print_runtime_ratio "${avg1}" "${stddev1}" "${vsz1}" "${vszdev1}" "$VG" --tool=none "$@" -p${psep}${p} "${test_args}"
p=4
test_output="/dev/null" \
- print_runtime_ratio ${avg4} ${stddev4} ${vsz4} ${vszdev4} $VG --tool=none "$@" -p${psep}${p} "${test_args}"
+ print_runtime_ratio "${avg4}" "${stddev4}" "${vsz4}" "${vszdev4}" "$VG" --tool=none "$@" -p${psep}${p} "${test_args}"
p=4
test_output="${1}-drd-with-stack-var-4.out" \
- print_runtime_ratio ${avg4} ${stddev4} ${vsz4} ${vszdev4} \
- $VG --tool=drd --check-stack-var=yes "$@" -p${psep}${p} "${test_args}"
+ print_runtime_ratio "${avg4}" "${stddev4}" "${vsz4}" "${vszdev4}" \
+ "$VG" --tool=drd --check-stack-var=yes "$@" -p${psep}${p} "${test_args}"
p=4
test_output="${1}-drd-without-stack-var-4.out" \
- print_runtime_ratio ${avg4} ${stddev4} ${vsz4} ${vszdev4} \
- $VG --tool=drd --check-stack-var=no "$@" -p${psep}${p} "${test_args}"
+ print_runtime_ratio "${avg4}" "${stddev4}" "${vsz4}" "${vszdev4}" \
+ "$VG" --tool=drd --check-stack-var=no "$@" -p${psep}${p} "${test_args}"
p=4
test_output="${1}-helgrind-4.out" \
- print_runtime_ratio ${avg4} ${stddev4} ${vsz4} ${vszdev4} $VG --tool=helgrind "$@" -p${psep}${p} "${test_args}"
+ print_runtime_ratio "${avg4}" "${stddev4}" "${vsz4}" "${vszdev4}" "$VG" --tool=helgrind "$@" -p${psep}${p} "${test_args}"
echo ''
-
- rm -f "$tmp"
}
@@ -118,19 +134,19 @@
# Results: native native native none none DRD DRD HG ITC ITC
# -p1 -p2 -p4 -p1 -p4 -p4 -p4+f -p4 -p4 -p4+f
# .........................................................................................................................
-# Cholesky 0.09 11880 0.07 21888 0.65 41883 15.2 5.08 3.9 2.15 17 2.41 13 2.60 50 5.86 239 82
-# FFT 0.03 6560 0.02 15101 0.02 32176 10.7 8.36 17.0 2.48 92 2.88 113 3.13 156 5.43 90 41
-# LU, contiguous 0.07 3968 0.05 12176 0.06 28584 12.4 13.17 14.8 2.70 89 2.95 80 3.24 135 5.68 428 128
-# Ocean, contiguous 0.19 23208 0.18 31744 0.13 48888 4.8 3.45 7.6 2.17 59 2.58 50 2.75 77 4.01 90 28
-# Radix 0.20 15008 0.11 23200 0.11 39592 13.1 4.22 23.6 2.23 59 2.67 54 2.87 282 6.23 222 56
-# Raytrace 0.66 206976 0.47 215168 0.47 232235 8.2 1.23 11.5 1.21 262 1.54 101 1.57 291 3.57 172 53
-# Water-n2 0.19 10560 0.09 26944 0.10 59704 11.4 5.65 22.0 1.83 3194 2.92 467 2.99 108 3.49 189 39
-# Water-sp 0.21 4312 0.10 13400 0.10 29496 9.8 12.20 20.7 2.63 254 3.14 64 3.42 99 5.13 183 34
+# Cholesky 0.09 11880 0.07 21888 0.65 41883 13.2 4.86 2.5 2.08 19 2.34 13 2.53 29 6.04 239 82
+# FFT 0.03 6560 0.02 15101 0.02 32176 21.0 7.92 20.5 2.41 118 2.81 53 3.06 120 5.42 90 41
+# LU, contiguous 0.07 3968 0.05 12176 0.06 28584 14.8 12.29 21.0 2.62 124 2.87 74 3.16 157 5.53 428 128
+# Ocean, contiguous 0.19 23208 0.18 31744 0.13 48888 6.7 3.75 10.6 2.09 69 2.52 43 2.71 264 5.95 90 28
+# Radix 0.20 15008 0.11 23200 0.11 39592 13.1 4.06 22.6 2.17 56 2.61 41 2.82 111 6.11 222 56
+# Raytrace 0.66 206976 0.47 215168 0.47 232235 8.4 1.22 10.8 1.20 272 1.53 88 1.56 211 3.79 172 53
+# Water-n2 0.19 10560 0.09 26944 0.10 59704 12.9 5.40 24.0 1.79 3793 2.92 621 2.95 109 3.54 189 39
+# Water-sp 0.21 4312 0.10 13400 0.10 29496 10.2 11.41 22.0 2.52 279 3.03 55 5.55 97 4.76 183 34
# .........................................................................................................................
-# geometric mean 0.41 13360 0.09 26319 0.12 48476 10.2 5.37 13.2 2.12 134 2.58 75 2.76 128 4.81 180 51
+# geometric mean 0.14 13360 0.09 26319 0.12 48476 11.9 5.21 14.0 2.06 154 2.53 64 2.88 117 5.05 180 51
# .........................................................................................................................
# Hardware: dual-core Intel Core2 Duo E6750, 2.66 GHz, 4 MB L2 cache, 2 GB RAM.
-# Software: openSUSE 11.0 (64-bit edition), runlevel 3, gcc 4.3.1, 32 bit executables, valgrind trunk r8795.
+# Software: openSUSE 11.0 (64-bit edition), runlevel 3, gcc 4.3.1, 32 bit executables, valgrind trunk r9629.
###########################################################################################################################
####
Property changes on: branches/DARWIN/drd/tests
___________________________________________________________________
Name: svn:ignore
- *.stderr.diff*
*.stderr.out
*.stdout.diff*
*.stdout.out
.deps
atomic_var
bar_bad
bar_trivial
boost_thread
circular_buffer
drd_bitmap_test
fp_race
hg01_all_ok
hg02_deadlock
hg03_inherit
hg04_race
hg05_race2
hg06_readshared
hold_lock
linuxthreads_det
Makefile
Makefile.in
matinv
memory_allocation
monitor_example
new_delete
omp_matinv
omp_prime
omp_printf
pth_barrier
pth_barrier_race
pth_barrier_reinit
pth_broadcast
pth_cancel_locked
pth_cond_race
pth_create_chain
pth_detached
pth_detached_sem
pth_inconsistent_cond_wait
pth_process_shared_mutex
pth_spinlock
qt4_mutex
qt4_rwlock
qt4_semaphore
recursive_mutex
rwlock_race
rwlock_test
sem_as_mutex
sigalrm
tc01_simple_race
tc02_simple_tls
tc03_re_excl
tc04_free_lock
tc05_simple_race
tc06_two_races
tc07_hbl1
tc08_hbl2
tc09_bad_unlock
tc10_rec_lock
tc11_XCHG
tc12_rwl_trivial
tc13_laog1
tc15_laog_lockdel
tc16_byterace
tc17_sembar
tc18_semabuse
tc19_shadowmem
tc20_verifywrap
tc21_pthonce
tc22_exit_w_lock
tc23_bogus_condwait
tc24_nonzero_sem
trylock
vg_regtest.tmp*
+ *.stderr.diff*
*.stderr.out
*.stdout.diff*
*.stdout.out
.deps
atomic_var
bar_bad
bar_trivial
boost_thread
circular_buffer
drd_bitmap_test
fp_race
hg01_all_ok
hg02_deadlock
hg03_inherit
hg04_race
hg05_race2
hg06_readshared
hold_lock
linuxthreads_det
Makefile
Makefile.in
matinv
memory_allocation
monitor_example
new_delete
omp_matinv
omp_prime
omp_printf
pth_barrier
pth_barrier_race
pth_barrier_reinit
pth_broadcast
pth_cancel_locked
pth_cond_race
pth_create_chain
pth_create_glibc_2_0
pth_detached
pth_detached_sem
pth_inconsistent_cond_wait
pth_process_shared_mutex
pth_spinlock
qt4_mutex
qt4_rwlock
qt4_semaphore
recursive_mutex
rwlock_race
rwlock_test
sem_as_mutex
sigalrm
tc01_simple_race
tc02_simple_tls
tc03_re_excl
tc04_free_lock
tc05_simple_race
tc06_two_races
tc07_hbl1
tc08_hbl2
tc09_bad_unlock
tc10_rec_lock
tc11_XCHG
tc12_rwl_trivial
tc13_laog1
tc15_laog_lockdel
tc16_byterace
tc17_sembar
tc18_semabuse
tc19_shadowmem
tc20_verifywrap
tc21_pthonce
tc22_exit_w_lock
tc23_bogus_condwait
tc24_nonzero_sem
trylock
vg_regtest.tmp*
Modified: branches/DARWIN/drd/tests/Makefile.am
===================================================================
--- branches/DARWIN/drd/tests/Makefile.am 2009-04-26 22:18:44 UTC (rev 9640)
+++ branches/DARWIN/drd/tests/Makefile.am 2009-04-26 22:23:20 UTC (rev 9641)
@@ -98,6 +98,8 @@
pth_create_chain.stderr.exp \
pth_create_chain.stderr.exp-ppc \
pth_create_chain.vgtest \
+ pth_create_glibc_2_0.stderr.exp \
+ pth_create_glibc_2_0.vgtest \
pth_detached.stderr.exp \
pth_detached.stdout.exp \
pth_detached.vgtest \
@@ -234,6 +236,10 @@
check_PROGRAMS += matinv pth_barrier pth_barrier_race pth_barrier_reinit
endif
+if HAVE_PTHREAD_CREATE_GLIBC_2_0
+check_PROGRAMS += pth_create_glibc_2_0
+endif
+
if HAVE_PTHREAD_SPINLOCK
check_PROGRAMS += pth_spinlock
endif
Copied: branches/DARWIN/drd/tests/pth_create_glibc_2_0.c (from rev 9639, trunk/drd/tests/pth_create_glibc_2_0.c)
===================================================================
--- branches/DARWIN/drd/tests/pth_create_glibc_2_0.c (rev 0)
+++ branches/DARWIN/drd/tests/pth_create_glibc_2_0.c 2009-04-26 22:23:20 UTC (rev 9641)
@@ -0,0 +1,34 @@
+/* Test program that invokes pthread_create@GLIBC_2.0(). */
+
+
+#include <pthread.h>
+#include <stdio.h>
+
+
+extern int pthread_create_glibc_2_0(pthread_t*, const pthread_attr_t*,
+ void *(*)(void*), void*);
+
+__asm__(".symver pthread_create_glibc_2_0, pthread_create@GLIBC_2.0");
+
+
+static void* thread_func(void *arg)
+{
+ fprintf(stderr, "The thread.\n");
+ return 0;
+}
+
+int main(int argc, char** argv)
+{
+ int result;
+ pthread_t thr;
+
+ result = (*pthread_create_glibc_2_0)(&thr, 0, thread_func, 0);
+ if (result != 0)
+ {
+ fprintf(stderr, "pthread_create() failed.\n");
+ return 1;
+ }
+ pthread_join(thr, 0);
+ fprintf(stderr, "Finished.\n");
+ return 0;
+}
Copied: branches/DARWIN/drd/tests/pth_create_glibc_2_0.stderr.exp (from rev 9639, trunk/drd/tests/pth_create_glibc_2_0.stderr.exp)
===================================================================
--- branches/DARWIN/drd/tests/pth_create_glibc_2_0.stderr.exp (rev 0)
+++ branches/DARWIN/drd/tests/pth_create_glibc_2_0.stderr.exp 2009-04-26 22:23:20 UTC (rev 9641)
@@ -0,0 +1,5 @@
+
+The thread.
+Finished.
+
+ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
Copied: branches/DARWIN/drd/tests/pth_create_glibc_2_0.vgtest (from rev 9639, trunk/drd/tests/pth_create_glibc_2_0.vgtest)
===================================================================
--- branches/DARWIN/drd/tests/pth_create_glibc_2_0.vgtest (rev 0)
+++ branches/DARWIN/drd/tests/pth_create_glibc_2_0.vgtest 2009-04-26 22:23:20 UTC (rev 9641)
@@ -0,0 +1,3 @@
+prereq: test -e pth_create_glibc_2_0 && ./supported_libpthread
+vgopts: --var-info=yes --check-stack-var=yes
+prog: pth_create_glibc_2_0
Modified: branches/DARWIN/drd/tests/tc09_bad_unlock.stderr.exp-glibc2.8
===================================================================
--- branches/DARWIN/drd/tests/tc09_bad_unlock.stderr.exp-glibc2.8 2009-04-26 22:18:44 UTC (rev 9640)
+++ branches/DARWIN/drd/tests/tc09_bad_unlock.stderr.exp-glibc2.8 2009-04-26 22:23:20 UTC (rev 9641)
@@ -29,6 +29,10 @@
Destroying locked mutex: mutex 0x........, recursion count 1, owner 1.
at 0x........: nearly_main (tc09_bad_unlock.c:45)
by 0x........: (below main)
+mutex 0x........ was first observed at:
+ at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
+ by 0x........: nearly_main (tc09_bad_unlock.c:31)
+ by 0x........: main (tc09_bad_unlock.c:49)
---------------------
Mutex not locked by calling thread: mutex 0x........, recursion count 0, owner 1.
@@ -61,5 +65,9 @@
Destroying locked mutex: mutex 0x........, recursion count 1, owner 1.
at 0x........: nearly_main (tc09_bad_unlock.c:45)
by 0x........: (below main)
+mutex 0x........ was first observed at:
+ at 0x........: pthread_mutex_init (drd_pthread_intercepts.c:?)
+ by 0x........: nearly_main (tc09_bad_unlock.c:31)
+ by 0x........: main (tc09_bad_unlock.c:50)
ERROR SUMMARY: 8 errors from 8 contexts (suppressed: 0 from 0)
Modified: branches/DARWIN/drd/tests/tc19_shadowmem.stderr.exp-32bit
===================================================================
--- branches/DARWIN/drd/tests/tc19_shadowmem.stderr.exp-32bit 2009-04-26 22:18:44 UTC (rev 9640)
+++ branches/DARWIN/drd/tests/tc19_shadowmem.stderr.exp-32bit 2009-04-26 22:23:20 UTC (rev 9641)
@@ -3255,10 +3255,6 @@
Address 0x........ is at offset 0 from 0x......... Allocation context:
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (tc19_shadowmem.c:144)
-Other segment start (thread x/x)
- (thread finished, call stack no longer available)
-Other segment end (thread x/x)
- (thread finished, call stack no longer available)
Conflicting store by thread x/x at 0x........ size 4
at 0x........: child64 (tc19_shadowmem.c:105)
@@ -3280,10 +3276,6 @@
Address 0x........ is at offset 1 from 0x......... Allocation context:
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (tc19_shadowmem.c:144)
-Other segment start (thread x/x)
- (thread finished, call stack no longer available)
-Other segment end (thread x/x)
- (thread finished, call stack no longer available)
Conflicting store by thread x/x at 0x........ size 4
at 0x........: child64 (tc19_shadowmem.c:105)
@@ -3305,10 +3297,6 @@
Address 0x........ is at offset 2 from 0x......... Allocation context:
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (tc19_shadowmem.c:144)
-Other segment start (thread x/x)
- (thread finished, call stack no longer available)
-Other segment end (thread x/x)
- (thread finished, call stack no longer available)
Conflicting store by thread x/x at 0x........ size 4
at 0x........: child64 (tc19_shadowmem.c:105)
@@ -3330,10 +3318,6 @@
Address 0x........ is at offset 3 from 0x......... Allocation context:
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (tc19_shadowmem.c:144)
-Other segment start (thread x/x)
- (thread finished, call stack no longer available)
-Other segment end (thread x/x)
- (thread finished, call stack no longer available)
Conflicting store by thread x/x at 0x........ size 4
at 0x........: child64 (tc19_shadowmem.c:105)
@@ -3355,10 +3339,6 @@
Address 0x........ is at offset 4 from 0x......... Allocation context:
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (tc19_shadowmem.c:144)
-Other segment start (thread x/x)
- (thread finished, call stack no longer available)
-Other segment end (thread x/x)
- (thread finished, call stack no longer available)
Conflicting store by thread x/x at 0x........ size 4
at 0x........: child64 (tc19_shadowmem.c:105)
@@ -3380,10 +3360,6 @@
Address 0x........ is at offset 5 from 0x......... Allocation context:
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (tc19_shadowmem.c:144)
-Other segment start (thread x/x)
- (thread finished, call stack no longer available)
-Other segment end (thread x/x)
- (thread finished, call stack no longer available)
Conflicting store by thread x/x at 0x........ size 4
at 0x........: child64 (tc19_shadowmem.c:105)
@@ -3405,10 +3381,6 @@
Address 0x........ is at offset 6 from 0x......... Allocation context:
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (tc19_shadowmem.c:144)
-Other segment start (thread x/x)
- (thread finished, call stack no longer available)
-Other segment end (thread x/x)
- (thread finished, call stack no longer available)
Conflicting store by thread x/x at 0x........ size 4
at 0x........: child64 (tc19_shadowmem.c:105)
@@ -3430,10 +3402,6 @@
Address 0x........ is at offset 7 from 0x......... Allocation context:
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (tc19_shadowmem.c:144)
-Other segment start (thread x/x)
- (thread finished, call stack no longer available)
-Other segment end (thread x/x)
- (thread finished, call stack no longer available)
Conflicting store by thread x/x at 0x........ size 4
at 0x........: child64 (tc19_shadowmem.c:105)
@@ -3455,10 +3423,6 @@
Address 0x........ is at offset 8 from 0x......... Allocation context:
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (tc19_shadowmem.c:144)
-Other segment start (thread x/x)
- (thread finished, call stack no longer available)
-Other segment end (thread x/x)
- (thread finished, call stack no longer available)
Conflicting store by thread x/x at 0x........ size 4
at 0x........: child64 (tc19_shadowmem.c:105)
@@ -3480,10 +3444,6 @@
Address 0x........ is at offset 9 from 0x......... Allocation context:
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (tc19_shadowmem.c:144)
-Other segment start (thread x/x)
- (thread finished, call stack no longer available)
-Other segment end (thread x/x)
- (thread finished, call stack no longer available)
Conflicting store by thread x/x at 0x........ size 4
at 0x........: child64 (tc19_shadowmem.c:105)
@@ -3505,10 +3465,6 @@
Address 0x........ is at offset 10 from 0x......... Allocation context:
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (tc19_shadowmem.c:144)
-Other segment start (thread x/x)
- (thread finished, call stack no longer available)
-Other segment end (thread x/x)
- (thread finished, call stack no longer available)
Conflicting store by thread x/x at 0x........ size 4
at 0x........: child64 (tc19_shadowmem.c:105)
@@ -3530,10 +3486,6 @@
Address 0x........ is at offset 11 from 0x......... Allocation context:
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (tc19_shadowmem.c:144)
-Other segment start (thread x/x)
- (thread finished, call stack no longer available)
-Other segment end (thread x/x)
- (thread finished, call stack no longer available)
Conflicting store by thread x/x at 0x........ size 4
at 0x........: child64 (tc19_shadowmem.c:105)
@@ -3555,10 +3507,6 @@
Address 0x........ is at offset 12 from 0x......... Allocation context:
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (tc19_shadowmem.c:144)
-Other segment start (thread x/x)
- (thread finished, call stack no longer available)
-Other segment end (thread x/x)
- (thread finished, call stack no longer available)
Conflicting store by thread x/x at 0x........ size 4
at 0x........: child64 (tc19_shadowmem.c:105)
@@ -3580,10 +3528,6 @@
Address 0x........ is at offset 13 from 0x......... Allocation context:
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (tc19_shadowmem.c:144)
-Other segment start (thread x/x)
- (thread finished, call stack no longer available)
-Other segment end (thread x/x)
- (thread finished, call stack no longer available)
Conflicting store by thread x/x at 0x........ size 4
at 0x........: child64 (tc19_shadowmem.c:105)
@@ -3605,10 +3549,6 @@
Address 0x........ is at offset 14 from 0x......... Allocation context:
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (tc19_shadowmem.c:144)
-Other segment start (thread x/x)
- (thread finished, call stack no longer available)
-Other segment end (thread x/x)
- (thread finished, call stack no longer available)
Conflicting store by thread x/x at 0x........ size 4
at 0x........: child64 (tc19_shadowmem.c:105)
@@ -3630,10 +3570,6 @@
Address 0x........ is at offset 15 from 0x......... Allocation context:
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (tc19_shadowmem.c:144)
-Other segment start (thread x/x)
- (thread finished, call stack no longer available)
-Other segment end (thread x/x)
- (thread finished, call stack no longer available)
Conflicting store by thread x/x at 0x........ size 4
at 0x........: child64 (tc19_shadowmem.c:105)
@@ -3655,10 +3591,6 @@
Address 0x........ is at offset 16 from 0x......... Allocation context:
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (tc19_shadowmem.c:144)
-Other segment start (thread x/x)
- (thread finished, call stack no longer available)
-Other segment end (thread x/x)
- (thread finished, call stack no longer available)
Conflicting store by thread x/x at 0x........ size 4
at 0x........: child64 (tc19_shadowmem.c:105)
@@ -3680,10 +3612,6 @@
Address 0x........ is at offset 17 from 0x......... Allocation context:
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (tc19_shadowmem.c:144)
-Other segment start (thread x/x)
- (thread finished, call stack no longer available)
-Other segment end (thread x/x)
- (thread finished, call stack no longer available)
Conflicting store by thread x/x at 0x........ size 4
at 0x........: child64 (tc19_shadowmem.c:105)
@@ -3705,10 +3633,6 @@
Address 0x........ is at offset 18 from 0x......... Allocation context:
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (tc19_shadowmem.c:144)
-Other segment start (thread x/x)
- (thread finished, call stack no longer available)
-Other segment end (thread x/x)
- (thread finished, call stack no longer available)
Conflicting store by thread x/x at 0x........ size 4
at 0x........: child64 (tc19_shadowmem.c:105)
@@ -3730,10 +3654,6 @@
Address 0x........ is at offset 19 from 0x......... Allocation context:
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (tc19_shadowmem.c:144)
-Other segment start (thread x/x)
- (thread finished, call stack no longer available)
-Other segment end (thread x/x)
- (thread finished, call stack no longer available)
Conflicting store by thread x/x at 0x........ size 4
at 0x........: child64 (tc19_shadowmem.c:105)
@@ -3755,10 +3675,6 @@
Address 0x........ is at offset 20 from 0x......... Allocation context:
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (tc19_shadowmem.c:144)
-Other segment start (thread x/x)
- (thread finished, call stack no longer available)
-Other segment end (thread x/x)
- (thread finished, call stack no longer available)
Conflicting store by thread x/x at 0x........ size 4
at 0x........: child64 (tc19_shadowmem.c:105)
@@ -3780,10 +3696,6 @@
Address 0x........ is at offset 21 from 0x......... Allocation context:
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (tc19_shadowmem.c:144)
-Other segment start (thread x/x)
- (thread finished, call stack no longer available)
-Other segment end (thread x/x)
- (thread finished, call stack no longer available)
Conflicting store by thread x/x at 0x........ size 4
at 0x........: child64 (tc19_shadowmem.c:105)
@@ -3805,10 +3717,6 @@
Address 0x........ is at offset 22 from 0x......... Allocation context:
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (tc19_shadowmem.c:144)
-Other segment start (thread x/x)
- (thread finished, call stack no longer available)
-Other segment end (thread x/x)
- (thread finished, call stack no longer available)
Conflicting store by thread x/x at 0x........ size 4
at 0x........: child64 (tc19_shadowmem.c:105)
@@ -3830,10 +3738,6 @@
Address 0x........ is at offset 23 from 0x......... Allocation context:
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (tc19_shadowmem.c:144)
-Other segment start (thread x/x)
- (thread finished, call stack no longer available)
-Other segment end (thread x/x)
- (thread finished, call stack no longer available)
Conflicting store by thread x/x at 0x........ size 4
at 0x........: child64 (tc19_shadowmem.c:105)
@@ -3855,10 +3759,6 @@
Address 0x........ is at offset 24 from 0x......... Allocation context:
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (tc19_shadowmem.c:144)
-Other segment start (thread x/x)
- (thread finished, call stack no longer available)
-Other segment end (thread x/x)
- (thread finished, call stack no longer available)
Conflicting store by thread x/x at 0x........ size 4
at 0x........: child64 (tc19_shadowmem.c:105)
@@ -3880,10 +3780,6 @@
Address 0x........ is at offset 25 from 0x......... Allocation context:
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (tc19_shadowmem.c:144)
-Other segment start (thread x/x)
- (thread finished, call stack no longer available)
-Other segment end (thread x/x)
- (thread finished, call stack no longer available)
Conflicting store by thread x/x at 0x........ size 4
at 0x........: child64 (tc19_shadowmem.c:105)
@@ -3905,10 +3801,6 @@
Address 0x........ is at offset 26 from 0x......... Allocation context:
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (tc19_shadowmem.c:144)
-Other segment start (thread x/x)
- (thread finished, call stack no longer available)
-Other segment end (thread x/x)
- (thread finished, call stack no longer available)
Conflicting store by thread x/x at 0x........ size 4
at 0x........: child64 (tc19_shadowmem.c:105)
@@ -3930,10 +3822,6 @@
Address 0x........ is at offset 27 from 0x......... Allocation context:
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (tc19_shadowmem.c:144)
-Other segment start (thread x/x)
- (thread finished, call stack no longer available)
-Other segment end (thread x/x)
- (thread finished, call stack no longer available)
Conflicting store by thread x/x at 0x........ size 4
at 0x........: child64 (tc19_shadowmem.c:105)
@@ -3955,10 +3843,6 @@
Address 0x........ is at offset 28 from 0x......... Allocation context:
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (tc19_shadowmem.c:144)
-Other segment start (thread x/x)
- (thread finished, call stack no longer available)
-Other segment end (thread x/x)
- (thread finished, call stack no longer available)
Conflicting store by thread x/x at 0x........ size 4
at 0x........: child64 (tc19_shadowmem.c:105)
@@ -3980,10 +3864,6 @@
Address 0x........ is at offset 29 from 0x......... Allocation context:
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (tc19_shadowmem.c:144)
-Other segment start (thread x/x)
- (thread finished, call stack no longer available)
-Other segment end (thread x/x)
- (thread finished, call stack no longer available)
Conflicting store by thread x/x at 0x........ size 4
at 0x........: child64 (tc19_shadowmem.c:105)
@@ -4005,10 +3885,6 @@
Address 0x........ is at offset 30 from 0x......... Allocation context:
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (tc19_shadowmem.c:144)
-Other segment start (thread x/x)
- (thread finished, call stack no longer available)
-Other segment end (thread x/x)
- (thread finished, call stack no longer available)
Conflicting store by thread x/x at 0x........ size 4
at 0x........: child64 (tc19_shadowmem.c:105)
@@ -4030,10 +3906,6 @@
Address 0x........ is at offset 31 from 0x......... Allocation context:
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (tc19_shadowmem.c:144)
-Other segment start (thread x/x)
- (thread finished, call stack no longer available)
-Other segment end (thread x/x)
- (thread finished, call stack no longer available)
Conflicting store by thread x/x at 0x........ size 4
at 0x........: child64 (tc19_shadowmem.c:105)
@@ -4055,10 +3927,6 @@
Address 0x........ is at offset 32 from 0x......... Allocation context:
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (tc19_shadowmem.c:144)
-Other segment start (thread x/x)
- (thread finished, call stack no longer available)
-Other segment end (thread x/x)
- (thread finished, call stack no longer available)
Conflicting store by thread x/x at 0x........ size 4
at 0x........: child64 (tc19_shadowmem.c:105)
@@ -4080,10 +3948,6 @@
Address 0x........ is at offset 33 from 0x......... Allocation context:
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (tc19_shadowmem.c:144)
-Other segment start (thread x/x)
- (thread finished, call stack no longer available)
-Other segment end (thread x/x)
- (thread finished, call stack no longer available)
Conflicting store by thread x/x at 0x........ size 4
at 0x........: child64 (tc19_shadowmem.c:105)
@@ -4105,10 +3969,6 @@
Address 0x........ is at offset 34 from 0x......... Allocation context:
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (tc19_shadowmem.c:144)
-Other segment start (thread x/x)
- (thread finished, call stack no longer available)
-Other segment end (thread x/x)
- (thread finished, call stack no longer available)
Conflicting store by thread x/x at 0x........ size 4
at 0x........: child64 (tc19_shadowmem.c:105)
@@ -4130,10 +3990,6 @@
Address 0x........ is at offset 35 from 0x......... Allocation context:
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (tc19_shadowmem.c:144)
-Other segment start (thread x/x)
- (thread finished, call stack no longer available)
-Other segment end (thread x/x)
- (thread finished, call stack no longer available)
Conflicting store by thread x/x at 0x........ size 4
at 0x........: child64 (tc19_shadowmem.c:105)
@@ -4155,10 +4011,6 @@
Address 0x........ is at offset 36 from 0x......... Allocation context:
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (tc19_shadowmem.c:144)
-Other segment start (thread x/x)
- (thread finished, call stack no longer available)
-Other segment end (thread x/x)
- (thread finished, call stack no longer available)
Conflicting store by thread x/x at 0x........ size 4
at 0x........: child64 (tc19_shadowmem.c:105)
@@ -4180,10 +4032,6 @@
Address 0x........ is at offset 37 from 0x......... Allocation context:
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (tc19_shadowmem.c:144)
-Other segment start (thread x/x)
- (thread finished, call stack no longer available)
-Other segment end (thread x/x)
- (thread finished, call stack no longer available)
Conflicting store by thread x/x at 0x........ size 4
at 0x........: child64 (tc19_shadowmem.c:105)
@@ -4205,10 +4053,6 @@
Address 0x........ is at offset 38 from 0x......... Allocation context:
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (tc19_shadowmem.c:144)
-Other segment start (thread x/x)
- (thread finished, call stack no longer available)
-Other segment end (thread x/x)
- (thread finished, call stack no longer available)
Conflicting store by thread x/x at 0x........ size 4
at 0x........: child64 (tc19_shadowmem.c:105)
@@ -4230,10 +4074,6 @@
Address 0x........ is at offset 39 from 0x......... Allocation context:
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (tc19_shadowmem.c:144)
-Other segment start (thread x/x)
- (thread finished, call stack no longer available)
-Other segment end (thread x/x)
- (thread finished, call stack no longer available)
Conflicting store by thread x/x at 0x........ size 4
at 0x........: child64 (tc19_shadowmem.c:105)
@@ -4255,10 +4095,6 @@
Address 0x........ is at offset 40 from 0x......... Allocation context:
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (tc19_shadowmem.c:144)
-Other segment start (thread x/x)
- (thread finished, call stack no longer available)
-Other segment end (thread x/x)
- (thread finished, call stack no longer available)
Conflicting store by thread x/x at 0x........ size 4
at 0x........: child64 (tc19_shadowmem.c:105)
@@ -4280,10 +4116,6 @@
Address 0x........ is at offset 41 from 0x......... Allocation context:
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (tc19_shadowmem.c:144)
-Other segment start (thread x/x)
- (thread finished, call stack no longer available)
-Other segment end (thread x/x)
- (thread finished, call stack no longer available)
Conflicting store by thread x/x at 0x........ size 4
at 0x........: child64 (tc19_shadowmem.c:105)
@@ -4305,10 +4137,6 @@
Address 0x........ is at offset 42 from 0x......... Allocation context:
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (tc19_shadowmem.c:144)
-Other segment start (thread x/x)
- (thread finished, call stack no longer available)
-Other segment end (thread x/x)
- (thread finished, call stack no longer available)
Conflicting store by thread x/x at 0x........ size 4
at 0x........: child64 (tc19_shadowmem.c:105)
@@ -4330,10 +4158,6 @@
Address 0x........ is at offset 43 from 0x......... Allocation context:
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (tc19_shadowmem.c:144)
-Other segment start (thread x/x)
- (thread finished, call stack no longer available)
-Other segment end (thread x/x)
- (thread finished, call stack no longer available)
Conflicting store by thread x/x at 0x........ size 4
at 0x........: child64 (tc19_shadowmem.c:105)
@@ -4355,10 +4179,6 @@
Address 0x........ is at offset 44 from 0x......... Allocation context:
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (tc19_shadowmem.c:144)
-Other segment start (thread x/x)
- (thread finished, call stack no longer available)
-Other segment end (thread x/x)
- (thread finished, call stack no longer available)
Conflicting store by thread x/x at 0x........ size 4
at 0x........: child64 (tc19_shadowmem.c:105)
@@ -4380,10 +4200,6 @@
Address 0x........ is at offset 45 from 0x......... Allocation context:
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (tc19_shadowmem.c:144)
-Other segment start (thread x/x)
- (thread finished, call stack no longer available)
-Other segment end (thread x/x)
- (thread finished, call stack no longer available)
Conflicting store by thread x/x at 0x........ size 4
at 0x........: child64 (tc19_shadowmem.c:105)
@@ -4405,10 +4221,6 @@
Address 0x........ is at offset 46 from 0x......... Allocation context:
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (tc19_shadowmem.c:144)
-Other segment start (thread x/x)
- (thread finished, call stack no longer available)
-Other segment end (thread x/x)
- (thread finished, call stack no longer available)
Conflicting store by thread x/x at 0x........ size 4
at 0x........: child64 (tc19_shadowmem.c:105)
@@ -4430,10 +4242,6 @@
Address 0x........ is at offset 47 from 0x......... Allocation context:
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (tc19_shadowmem.c:144)
-Other segment start (thread x/x)
- (thread finished, call stack no longer available)
-Other segment end (thread x/x)
- (thread finished, call stack no longer available)
Conflicting store by thread x/x at 0x........ size 4
at 0x........: child64 (tc19_shadowmem.c:105)
@@ -4455,10 +4263,6 @@
Address 0x........ is at offset 48 from 0x......... Allocation context:
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (tc19_shadowmem.c:144)
-Other segment start (thread x/x)
- (thread finished, call stack no longer available)
-Other segment end (thread x/x)
- (thread finished, call stack no longer available)
Conflicting store by thread x/x at 0x........ size 4
at 0x........: child64 (tc19_shadowmem.c:105)
@@ -4480,10 +4284,6 @@
Address 0x........ is at offset 49 from 0x......... Allocation context:
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (tc19_shadowmem.c:144)
-Other segment start (thread x/x)
- (thread finished, call stack no longer available)
-Other segment end (thread x/x)
- (thread finished, call stack no longer available)
Conflicting store by thread x/x at 0x........ size 4
at 0x........: child64 (tc19_shadowmem.c:105)
@@ -4505,10 +4305,6 @@
Address 0x........ is at offset 50 from 0x......... Allocation context:
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (tc19_shadowmem.c:144)
-Other segment start (thread x/x)
- (thread finished, call stack no longer available)
-Other segment end (thread x/x)
- (thread finished, call stack no longer available)
Conflicting store by thread x/x at 0x........ size 4
at 0x........: child64 (tc19_shadowmem.c:105)
@@ -4530,10 +4326,6 @@
Address 0x........ is at offset 51 from 0x......... Allocation context:
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (tc19_shadowmem.c:144)
-Other segment start (thread x/x)
- (thread finished, call stack no longer available)
-Other segment end (thread x/x)
- (thread finished, call stack no longer available)
Conflicting store by thread x/x at 0x........ size 4
at 0x........: child64 (tc19_shadowmem.c:105)
@@ -4555,10 +4347,6 @@
Address 0x........ is at offset 52 from 0x......... Allocation context:
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (tc19_shadowmem.c:144)
-Other segment start (thread x/x)
- (thread finished, call stack no longer available)
-Other segment end (thread x/x)
- (thread finished, call stack no longer available)
Conflicting store by thread x/x at 0x........ size 4
at 0x........: child64 (tc19_shadowmem.c:105)
@@ -4580,10 +4368,6 @@
Address 0x........ is at offset 53 from 0x......... Allocation context:
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (tc19_shadowmem.c:144)
-Other segment start (thread x/x)
- (thread finished, call stack no longer available)
-Other segment end (thread x/x)
- (thread finished, call stack no longer available)
Conflicting store by thread x/x at 0x........ size 4
at 0x........: child64 (tc19_shadowmem.c:105)
@@ -4605,10 +4389,6 @@
Address 0x........ is at offset 54 from 0x......... Allocation context:
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (tc19_shadowmem.c:144)
-Other segment start (thread x/x)
- (thread finished, call stack no longer available)
-Other segment end (thread x/x)
- (thread finished, call stack no longer available)
Conflicting store by thread x/x at 0x........ size 4
at 0x........: child64 (tc19_shadowmem.c:105)
@@ -4630,10 +4410,6 @@
Address 0x........ is at offset 55 from 0x......... Allocation context:
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (tc19_shadowmem.c:144)
-Other segment start (thread x/x)
- (thread finished, call stack no longer available)
-Other segment end (thread x/x)
- (thread finished, call stack no longer available)
Conflicting store by thread x/x at 0x........ size 4
at 0x........: child64 (tc19_shadowmem.c:105)
@@ -4655,10 +4431,6 @@
Address 0x........ is at offset 56 from 0x......... Allocation context:
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (tc19_shadowmem.c:144)
-Other segment start (thread x/x)
- (thread finished, call stack no longer available)
-Other segment end (thread x/x)
- (thread finished, call stack no longer available)
Conflicting store by thread x/x at 0x........ size 4
at 0x........: child64 (tc19_shadowmem.c:105)
@@ -4680,10 +4452,6 @@
Address 0x........ is at offset 57 from 0x......... Allocation context:
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (tc19_shadowmem.c:144)
-Other segment start (thread x/x)
- (thread finished, call stack no longer available)
-Other segment end (thread x/x)
- (thread finished, call stack no longer available)
Conflicting store by thread x/x at 0x........ size 4
at 0x........: child64 (tc19_shadowmem.c:105)
@@ -4705,10 +4473,6 @@
Address 0x........ is at offset 58 from 0x......... Allocation context:
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (tc19_shadowmem.c:144)
-Other segment start (thread x/x)
- (thread finished, call stack no longer available)
-Other segment end (thread x/x)
- (thread finished, call stack no longer available)
Conflicting store by thread x/x at 0x........ size 4
at 0x........: child64 (tc19_shadowmem.c:105)
@@ -4730,10 +4494,6 @@
Address 0x........ is at offset 59 from 0x......... Allocation context:
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (tc19_shadowmem.c:144)
-Other segment start (thread x/x)
- (thread finished, call stack no longer available)
-Other segment end (thread x/x)
- (thread finished, call stack no longer available)
Conflicting store by thread x/x at 0x........ size 4
at 0x........: child64 (tc19_shadowmem.c:105)
@@ -4755,10 +4515,6 @@
Address 0x........ is at offset 60 from 0x......... Allocation context:
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (tc19_shadowmem.c:144)
-Other segment start (thread x/x)
- (thread finished, call stack no longer available)
-Other segment end (thread x/x)
- (thread finished, call stack no longer available)
Conflicting store by thread x/x at 0x........ size 4
at 0x........: child64 (tc19_shadowmem.c:105)
@@ -4780,10 +4536,6 @@
Address 0x........ is at offset 61 from 0x......... Allocation context:
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (tc19_shadowmem.c:144)
-Other segment start (thread x/x)
- (thread finished, call stack no longer available)
-Other segment end (thread x/x)
- (thread finished, call stack no longer available)
Conflicting store by thread x/x at 0x........ size 4
at 0x........: child64 (tc19_shadowmem.c:105)
@@ -4805,10 +4557,6 @@
Address 0x........ is at offset 62 from 0x......... Allocation context:
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (tc19_shadowmem.c:144)
-Other segment start (thread x/x)
- (thread finished, call stack no longer available)
-Other segment end (thread x/x)
- (thread finished, call stack no longer available)
Conflicting store by thread x/x at 0x........ size 4
at 0x........: child64 (tc19_shadowmem.c:105)
@@ -4830,10 +4578,6 @@
Address 0x........ is at offset 63 from 0x......... Allocation context:
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (tc19_shadowmem.c:144)
-Other segment start (thread x/x)
- (thread finished, call stack no longer available)
-Other segment end (thread x/x)
- (thread finished, call stack no longer available)
Conflicting store by thread x/x at 0x........ size 4
at 0x........: child64 (tc19_shadowmem.c:105)
@@ -4855,10 +4599,6 @@
Address 0x........ is at offset 64 from 0x......... Allocation context:
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (tc19_shadowmem.c:144)
-Other segment start (thread x/x)
- (thread finished, call stack no longer available)
-Other segment end (thread x/x)
- (thread finished, call stack no longer available)
Conflicting store by thread x/x at 0x........ size 4
at 0x........: child64 (tc19_shadowmem.c:105)
@@ -4880,10 +4620,6 @@
Address 0x........ is at offset 65 from 0x......... Allocation context:
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (tc19_shadowmem.c:144)
-Other segment start (thread x/x)
- (thread finished, call stack no longer available)
-Other segment end (thread x/x)
- (thread finished, call stack no longer available)
Conflicting store by thread x/x at 0x........ size 4
at 0x........: child64 (tc19_shadowmem.c:105)
@@ -4905,10 +4641,6 @@
Address 0x........ is at offset 66 from 0x......... Allocation context:
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (tc19_shadowmem.c:144)
-Other segment start (thread x/x)
- (thread finished, call stack no longer available)
-Other segment end (thread x/x)
- (thread finished, call stack no longer available)
Conflicting store by thread x/x at 0x........ size 4
at 0x........: child64 (tc19_shadowmem.c:105)
@@ -4930,10 +4662,6 @@
Address 0x........ is at offset 67 from 0x......... Allocation context:
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (tc19_shadowmem.c:144)
-Other segment start (thread x/x)
- (thread finished, call stack no longer available)
-Other segment end (thread x/x)
- (thread finished, call stack no longer available)
Conflicting store by thread x/x at 0x........ size 4
at 0x........: child64 (tc19_shadowmem.c:105)
@@ -4955,10 +4683,6 @@
Address 0x........ is at offset 68 from 0x......... Allocation context:
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: main (tc19_shadowmem.c:144)
-Other segment start (thread x/x)
- (thread finished, call stack no longer available)
-Other segment end (thread x/x)
- (thread finished, call stack no longer available)
Conflicting store by thread x/x at 0x........ size 4
at 0x........: child64 (tc19_shadowmem.c:105)
@@ -4980,10 +4704,6 @@
Address 0x........ is at offset 69 from 0x......... Allocation context:
at 0x.....
[truncated message content] |