You can subscribe to this list here.
| 2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
(122) |
Nov
(152) |
Dec
(69) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2003 |
Jan
(6) |
Feb
(25) |
Mar
(73) |
Apr
(82) |
May
(24) |
Jun
(25) |
Jul
(10) |
Aug
(11) |
Sep
(10) |
Oct
(54) |
Nov
(203) |
Dec
(182) |
| 2004 |
Jan
(307) |
Feb
(305) |
Mar
(430) |
Apr
(312) |
May
(187) |
Jun
(342) |
Jul
(487) |
Aug
(637) |
Sep
(336) |
Oct
(373) |
Nov
(441) |
Dec
(210) |
| 2005 |
Jan
(385) |
Feb
(480) |
Mar
(636) |
Apr
(544) |
May
(679) |
Jun
(625) |
Jul
(810) |
Aug
(838) |
Sep
(634) |
Oct
(521) |
Nov
(965) |
Dec
(543) |
| 2006 |
Jan
(494) |
Feb
(431) |
Mar
(546) |
Apr
(411) |
May
(406) |
Jun
(322) |
Jul
(256) |
Aug
(401) |
Sep
(345) |
Oct
(542) |
Nov
(308) |
Dec
(481) |
| 2007 |
Jan
(427) |
Feb
(326) |
Mar
(367) |
Apr
(255) |
May
(244) |
Jun
(204) |
Jul
(223) |
Aug
(231) |
Sep
(354) |
Oct
(374) |
Nov
(497) |
Dec
(362) |
| 2008 |
Jan
(322) |
Feb
(482) |
Mar
(658) |
Apr
(422) |
May
(476) |
Jun
(396) |
Jul
(455) |
Aug
(267) |
Sep
(280) |
Oct
(253) |
Nov
(232) |
Dec
(304) |
| 2009 |
Jan
(486) |
Feb
(470) |
Mar
(458) |
Apr
(423) |
May
(696) |
Jun
(461) |
Jul
(551) |
Aug
(575) |
Sep
(134) |
Oct
(110) |
Nov
(157) |
Dec
(102) |
| 2010 |
Jan
(226) |
Feb
(86) |
Mar
(147) |
Apr
(117) |
May
(107) |
Jun
(203) |
Jul
(193) |
Aug
(238) |
Sep
(300) |
Oct
(246) |
Nov
(23) |
Dec
(75) |
| 2011 |
Jan
(133) |
Feb
(195) |
Mar
(315) |
Apr
(200) |
May
(267) |
Jun
(293) |
Jul
(353) |
Aug
(237) |
Sep
(278) |
Oct
(611) |
Nov
(274) |
Dec
(260) |
| 2012 |
Jan
(303) |
Feb
(391) |
Mar
(417) |
Apr
(441) |
May
(488) |
Jun
(655) |
Jul
(590) |
Aug
(610) |
Sep
(526) |
Oct
(478) |
Nov
(359) |
Dec
(372) |
| 2013 |
Jan
(467) |
Feb
(226) |
Mar
(391) |
Apr
(281) |
May
(299) |
Jun
(252) |
Jul
(311) |
Aug
(352) |
Sep
(481) |
Oct
(571) |
Nov
(222) |
Dec
(231) |
| 2014 |
Jan
(185) |
Feb
(329) |
Mar
(245) |
Apr
(238) |
May
(281) |
Jun
(399) |
Jul
(382) |
Aug
(500) |
Sep
(579) |
Oct
(435) |
Nov
(487) |
Dec
(256) |
| 2015 |
Jan
(338) |
Feb
(357) |
Mar
(330) |
Apr
(294) |
May
(191) |
Jun
(108) |
Jul
(142) |
Aug
(261) |
Sep
(190) |
Oct
(54) |
Nov
(83) |
Dec
(22) |
| 2016 |
Jan
(49) |
Feb
(89) |
Mar
(33) |
Apr
(50) |
May
(27) |
Jun
(34) |
Jul
(53) |
Aug
(53) |
Sep
(98) |
Oct
(206) |
Nov
(93) |
Dec
(53) |
| 2017 |
Jan
(65) |
Feb
(82) |
Mar
(102) |
Apr
(86) |
May
(187) |
Jun
(67) |
Jul
(23) |
Aug
(93) |
Sep
(65) |
Oct
(45) |
Nov
(35) |
Dec
(17) |
| 2018 |
Jan
(26) |
Feb
(35) |
Mar
(38) |
Apr
(32) |
May
(8) |
Jun
(43) |
Jul
(27) |
Aug
(30) |
Sep
(43) |
Oct
(42) |
Nov
(38) |
Dec
(67) |
| 2019 |
Jan
(32) |
Feb
(37) |
Mar
(53) |
Apr
(64) |
May
(49) |
Jun
(18) |
Jul
(14) |
Aug
(53) |
Sep
(25) |
Oct
(30) |
Nov
(49) |
Dec
(31) |
| 2020 |
Jan
(87) |
Feb
(45) |
Mar
(37) |
Apr
(51) |
May
(99) |
Jun
(36) |
Jul
(11) |
Aug
(14) |
Sep
(20) |
Oct
(24) |
Nov
(40) |
Dec
(23) |
| 2021 |
Jan
(14) |
Feb
(53) |
Mar
(85) |
Apr
(15) |
May
(19) |
Jun
(3) |
Jul
(14) |
Aug
(1) |
Sep
(57) |
Oct
(73) |
Nov
(56) |
Dec
(22) |
| 2022 |
Jan
(3) |
Feb
(22) |
Mar
(6) |
Apr
(55) |
May
(46) |
Jun
(39) |
Jul
(15) |
Aug
(9) |
Sep
(11) |
Oct
(34) |
Nov
(20) |
Dec
(36) |
| 2023 |
Jan
(79) |
Feb
(41) |
Mar
(99) |
Apr
(169) |
May
(48) |
Jun
(16) |
Jul
(16) |
Aug
(57) |
Sep
(19) |
Oct
|
Nov
|
Dec
|
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
|
|
|
|
|
|
1
(13) |
2
(15) |
|
3
(16) |
4
(42) |
5
(9) |
6
(20) |
7
(22) |
8
(24) |
9
(12) |
|
10
(24) |
11
(11) |
12
(2) |
13
(13) |
14
(8) |
15
|
16
(16) |
|
17
(24) |
18
(36) |
19
(100) |
20
(94) |
21
(50) |
22
(39) |
23
(10) |
|
24
(14) |
25
(19) |
26
(2) |
27
(6) |
28
(17) |
29
(9) |
30
(8) |
|
31
(21) |
|
|
|
|
|
|
|
From: Nicholas N. <n.n...@gm...> - 2009-05-04 23:45:55
|
On Tue, May 5, 2009 at 1:48 AM, Filipe Cabecinhas <fi...@gm...> wrote: > Hi, > > As you may know, in Darwin, the main() function receives a fourth argument: > int main(int argc, char **argv, char **envp, char **apple); I didn't! Weird. Thanks for the patch, I've committed it. I created a none/tests/darwin/ directory as you suggested to hold the test program. Nick |
|
From: <sv...@va...> - 2009-05-04 23:44:19
|
Author: njn
Date: 2009-05-05 00:44:12 +0100 (Tue, 05 May 2009)
New Revision: 9773
Log:
Handle the secret 4th 'apple' argument to main. Based on a patch from
Filipe Cabecinhas.
Added:
branches/DARWIN/none/tests/darwin/
branches/DARWIN/none/tests/darwin/Makefile.am
branches/DARWIN/none/tests/darwin/apple-main-arg.c
branches/DARWIN/none/tests/darwin/apple-main-arg.stderr.exp
branches/DARWIN/none/tests/darwin/apple-main-arg.vgtest
branches/DARWIN/none/tests/darwin/filter_stderr
Modified:
branches/DARWIN/configure.in
branches/DARWIN/coregrind/launcher-darwin.c
branches/DARWIN/coregrind/vg_preloaded.c
branches/DARWIN/none/tests/Makefile.am
Modified: branches/DARWIN/configure.in
===================================================================
--- branches/DARWIN/configure.in 2009-05-04 07:29:48 UTC (rev 9772)
+++ branches/DARWIN/configure.in 2009-05-04 23:44:12 UTC (rev 9773)
@@ -1874,6 +1874,7 @@
none/tests/ppc64/Makefile
none/tests/x86/Makefile
none/tests/linux/Makefile
+ none/tests/darwin/Makefile
none/tests/x86-linux/Makefile
none/docs/Makefile
exp-omega/Makefile
Modified: branches/DARWIN/coregrind/launcher-darwin.c
===================================================================
--- branches/DARWIN/coregrind/launcher-darwin.c 2009-05-04 07:29:48 UTC (rev 9772)
+++ branches/DARWIN/coregrind/launcher-darwin.c 2009-05-04 23:44:12 UTC (rev 9773)
@@ -371,9 +371,11 @@
/* tediously augment the env: VALGRIND_STARTUP_PWD_%PID_XYZZY=current_working_dir */
asprintf(&set_cwd, "VALGRIND_STARTUP_PWD_%u_XYZZY=%s", getppid(), cwd);
+ // Note that Apple binaries get a secret fourth arg, "char* apple", which
+ // contains the executable path. Don't forget about it.
for (j = 0; envp[j]; j++)
;
- new_env = malloc((j+3) * sizeof(char*));
+ new_env = malloc((j+4) * sizeof(char*));
if (new_env == NULL)
barf("malloc of new_env failed.");
for (i = 0; i < j; i++)
@@ -381,6 +383,7 @@
new_env[i++] = new_line;
new_env[i++] = set_cwd;
new_env[i++] = NULL;
+ new_env[i ] = envp[i-2]; // the 'apple' arg == the executable_path
assert(i == j+3);
/* tediously edit env: hide dyld options from valgrind's captive dyld */
Modified: branches/DARWIN/coregrind/vg_preloaded.c
===================================================================
--- branches/DARWIN/coregrind/vg_preloaded.c 2009-05-04 07:29:48 UTC (rev 9772)
+++ branches/DARWIN/coregrind/vg_preloaded.c 2009-05-04 23:44:12 UTC (rev 9773)
@@ -107,7 +107,10 @@
to++;
}
}
- *to = *from;
+ *(to++) = *(from++);
+ /* fix the 4th "char* apple" pointer (aka. executable path pointer) */
+ *(to++) = *(from++);
+ *to = NULL;
}
static void vg_cleanup_env(void) __attribute__((constructor));
Modified: branches/DARWIN/none/tests/Makefile.am
===================================================================
--- branches/DARWIN/none/tests/Makefile.am 2009-05-04 07:29:48 UTC (rev 9772)
+++ branches/DARWIN/none/tests/Makefile.am 2009-05-04 23:44:12 UTC (rev 9773)
@@ -21,6 +21,9 @@
if VGCONF_OS_IS_LINUX
SUBDIRS += linux
endif
+if VGCONF_OS_IS_DARWIN
+SUBDIRS += darwin
+endif
# Platform-specific tests
if VGCONF_PLATFORMS_INCLUDE_X86_LINUX
Added: branches/DARWIN/none/tests/darwin/Makefile.am
===================================================================
--- branches/DARWIN/none/tests/darwin/Makefile.am (rev 0)
+++ branches/DARWIN/none/tests/darwin/Makefile.am 2009-05-04 23:44:12 UTC (rev 9773)
@@ -0,0 +1,15 @@
+
+include $(top_srcdir)/Makefile.tool-tests.am
+
+noinst_SCRIPTS = filter_stderr
+
+EXTRA_DIST = $(noinst_SCRIPTS) \
+ apple-main-arg.stderr.exp apple-main-arg.vgtest
+
+check_PROGRAMS = \
+ apple-main-arg
+
+
+AM_CFLAGS += $(AM_FLAG_M3264_PRI)
+AM_CXXFLAGS += $(AM_FLAG_M3264_PRI)
+
Added: branches/DARWIN/none/tests/darwin/apple-main-arg.c
===================================================================
--- branches/DARWIN/none/tests/darwin/apple-main-arg.c (rev 0)
+++ branches/DARWIN/none/tests/darwin/apple-main-arg.c 2009-05-04 23:44:12 UTC (rev 9773)
@@ -0,0 +1,32 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <assert.h>
+#include <unistd.h>
+#include <sys/syslimits.h>
+
+// On Darwin there's this secret fourth argument, 'apple', which is a pointer
+// to a string that contains the executable path, like argv[0], but unlike
+// argv[0] it can't be changed using exec().
+
+int main(int argc, char *argv[], char *envp[], char *apple[])
+{
+ char *pargv = calloc((PATH_MAX+1), sizeof(char)),
+ *pappl = calloc((PATH_MAX+1), sizeof(char));
+ int i;
+
+ for (i = 0; envp[i]; i++)
+ ;
+
+ // envp[i]==NULL; envp[i+1]==apple[0]==executable_path
+ assert(envp[i+1] == apple[0]);
+
+ // Make sure realpath(argv[0]) == realpath(apple[0]). (realpath resolves
+ // symlinks.)
+ realpath(argv[0], pargv);
+ realpath(apple[0], pappl);
+ assert(0 == strcmp(pargv, pappl));
+
+ return 0;
+}
+
Added: branches/DARWIN/none/tests/darwin/apple-main-arg.stderr.exp
===================================================================
Added: branches/DARWIN/none/tests/darwin/apple-main-arg.vgtest
===================================================================
--- branches/DARWIN/none/tests/darwin/apple-main-arg.vgtest (rev 0)
+++ branches/DARWIN/none/tests/darwin/apple-main-arg.vgtest 2009-05-04 23:44:12 UTC (rev 9773)
@@ -0,0 +1,2 @@
+prog: apple-main-arg
+vgopts: -q
Added: branches/DARWIN/none/tests/darwin/filter_stderr
===================================================================
--- branches/DARWIN/none/tests/darwin/filter_stderr (rev 0)
+++ branches/DARWIN/none/tests/darwin/filter_stderr 2009-05-04 23:44:12 UTC (rev 9773)
@@ -0,0 +1,3 @@
+#! /bin/sh
+
+../filter_stderr
Property changes on: branches/DARWIN/none/tests/darwin/filter_stderr
___________________________________________________________________
Name: svn:executable
+ *
|
|
From: Nicholas N. <n.n...@gm...> - 2009-05-04 22:30:52
|
On Tue, May 5, 2009 at 5:03 AM, Konstantin Serebryany <kon...@gm...> wrote: > > When copying structures of size 5, g++ (4.3.1) generates memcpy(dst, src, 5). > It may happen that src==dst (see example below). > src==dst is not allowed by the standard, but this code is not written > by humans and the compiler knows it is correct > (I asume that glibc will not explode with src==dst) > > Memcheck reports a warning. > > Even if this is a bug in gcc (is it?) we still need to workaround it > in memcheck. > Comments? These ones are always tricky, where the language spec doesn't match what happens in practice. This case is particularly annoying because we can't distinguish between a user-inserted memcpy() and a GCC-generated one. It's arguably that GCC shouldn't generate such code -- you say you assume glibc will not explode in this case, but that is an assumption. So I don't know what to do. Maybe Julian will have some ideas. Nick |
|
From: Konstantin S. <kon...@gm...> - 2009-05-04 19:04:05
|
Hi Memcheckers! [I didn't find this in FAQ...] When copying structures of size 5, g++ (4.3.1) generates memcpy(dst, src, 5). It may happen that src==dst (see example below). src==dst is not allowed by the standard, but this code is not written by humans and the compiler knows it is correct (I asume that glibc will not explode with src==dst) Memcheck reports a warning. A similar problem was discussed here: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32667 But that reproducer does not work any more. Even if this is a bug in gcc (is it?) we still need to workaround it in memcheck. Comments? Thanks, --kcc % cat swap5.cc #include <algorithm> #include <string.h> struct Foo { int e4; char e1; Foo() { e4 = 0; e1 = 0; } }; int main(int argc, char **argv) { Foo x[20]; // swap calls memcpy with dst==src. std::swap(x[1], x[argc]); return x[1].e4; } % g++ -g swap5.cc && ~/valgrind/trunk/Inst/bin/valgrind -q ./a.out ==12052== Source and destination overlap in memcpy(0x7FF0006B8, 0x7FF0006B8, 5) ==12052== at 0x4C1E22A: memcpy (mc_replace_strmem.c:380) ==12052== by 0x4006BC: void std::swap<Foo>(Foo&, Foo&) (stl_move.h:86) ==12052== by 0x40066B: main (swap5.cc:12) % |
|
From: Nicholas N. <n.n...@gm...> - 2009-05-04 17:34:02
|
Nightly build on ocean32 ( Ubuntu 9.04, Intel x86-64 (32-bit only) ) started at 2009-05-05 03:00:01 EST
Results differ from 24 hours ago
Checking out valgrind source tree ... done
Configuring valgrind ... done
Building valgrind ... done
Running regression tests ... failed
Regression test results follow
== 448 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)
=================================================
== Results from 24 hours ago ==
=================================================
Checking out valgrind source tree ... done
Configuring valgrind ... done
Building valgrind ... done
Running regression tests ... failed
Regression test results follow
== 447 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)
=================================================
== Difference between 24 hours ago and now ==
=================================================
*** old.short Tue May 5 03:18:00 2009
--- new.short Tue May 5 03:33:49 2009
***************
*** 8,10 ****
! == 447 tests, 7 stderr failures, 2 stdout failures, 0 post failures ==
memcheck/tests/linux/stack_switch (stderr)
--- 8,10 ----
! == 448 tests, 7 stderr failures, 2 stdout failures, 0 post failures ==
memcheck/tests/linux/stack_switch (stderr)
=================================================
./valgrind/memcheck/tests/linux/stack_switch.stderr.diff
=================================================
--- stack_switch.stderr.exp 2009-05-05 03:20:02.000000000 +1000
+++ stack_switch.stderr.out 2009-05-05 03:31:48.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-05-05 03:20:14.000000000 +1000
+++ origin1-yes.stderr.out 2009-05-05 03:32:06.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-05-05 03:20:14.000000000 +1000
+++ origin5-bz2.stderr.out 2009-05-05 03:32:11.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-05-05 03:20:14.000000000 +1000
+++ origin5-bz2.stderr.out 2009-05-05 03:32:11.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-05-05 03:20:14.000000000 +1000
+++ origin5-bz2.stderr.out 2009-05-05 03:32:11.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-05-05 03:22:04.000000000 +1000
+++ mremap2.stdout.out 2009-05-05 03:33:16.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-05-05 03:22:04.000000000 +1000
+++ mremap2.stdout.out 2009-05-05 03:33:16.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-05-05 03:22:04.000000000 +1000
+++ mremap2.stdout.out 2009-05-05 03:33:16.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-05-05 03:22:16.000000000 +1000
+++ shell.stderr.out 2009-05-05 03:33:32.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-05-05 03:22:16.000000000 +1000
+++ shell.stderr.out 2009-05-05 03:33:32.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-05-05 03:22:16.000000000 +1000
+++ shell.stdout.out 2009-05-05 03:33:32.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-05-05 03:22:16.000000000 +1000
+++ shell_valid1.stderr.out 2009-05-05 03:33:32.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-05-05 03:22:16.000000000 +1000
+++ shell_valid2.stderr.out 2009-05-05 03:33:32.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-05-05 03:22:16.000000000 +1000
+++ shell_valid3.stderr.out 2009-05-05 03:33:32.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-05-04 16:41:37
|
Nightly build on ocean ( Ubuntu 9.04, Intel x86-64 ) started at 2009-05-05 02:00:01 EST Results differ from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 485 tests, 0 stderr failures, 1 stdout failure, 0 post failures == none/tests/linux/mremap2 (stdout) ================================================= == Results from 24 hours ago == ================================================= Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 484 tests, 1 stderr failure, 1 stdout failure, 0 post failures == memcheck/tests/file_locking (stderr) none/tests/linux/mremap2 (stdout) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Tue May 5 02:18:42 2009 --- new.short Tue May 5 02:41:20 2009 *************** *** 8,11 **** ! == 484 tests, 1 stderr failure, 1 stdout failure, 0 post failures == ! memcheck/tests/file_locking (stderr) none/tests/linux/mremap2 (stdout) --- 8,10 ---- ! == 485 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-05-05 02:25:18.000000000 +1000 +++ mremap2.stdout.out 2009-05-05 02:40:48.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-05-05 02:25:18.000000000 +1000 +++ mremap2.stdout.out 2009-05-05 02:40:48.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-05-05 02:25:18.000000000 +1000 +++ mremap2.stdout.out 2009-05-05 02:40:48.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: Filipe C. <fi...@gm...> - 2009-05-04 15:48:53
|
Hi, As you may know, in Darwin, the main() function receives a fourth argument: int main(int argc, char **argv, char **envp, char **apple); the fourth argument is a pointer to a string that contains the executable path (which can't be changed using exec(), like argv[0]). Valgrind, while launching a darwin application, would copy it, as it should, but then overwrite it while augmenting the environment (and lose it while deleting environment variables, in vg_preload.c). This patch keeps track of that string until the program starts executing. If you start a program and then unsetenv(something), then you may have two NULL pointers between the last env variable and the "apple" array. Attached is a patch and a test which fails in the current trunk. I can convert it to a *.vgtest, but I hesitated as I didn't know where to put it (there's no none/tests/darwin... should I create it?) Regards, Filipe |
|
From: <sv...@va...> - 2009-05-04 07:29:51
|
Author: njn
Date: 2009-05-04 08:29:48 +0100 (Mon, 04 May 2009)
New Revision: 9772
Log:
Record more removd debugstub code.
Added:
branches/DARWIN/docs/internals/debugstub_removed_at_r9711.diff
Added: branches/DARWIN/docs/internals/debugstub_removed_at_r9711.diff
===================================================================
--- branches/DARWIN/docs/internals/debugstub_removed_at_r9711.diff (rev 0)
+++ branches/DARWIN/docs/internals/debugstub_removed_at_r9711.diff 2009-05-04 07:29:48 UTC (rev 9772)
@@ -0,0 +1,41 @@
+Index: coregrind/m_main.c
+===================================================================
+--- coregrind/m_main.c (revision 9749)
++++ coregrind/m_main.c (working copy)
+@@ -388,8 +388,6 @@
+
+ else if VG_BOOL_CLO(arg, "--xml", VG_(clo_xml)) {}
+ else if VG_BOOL_CLO(arg, "--db-attach", VG_(clo_db_attach)) {}
+- else if VG_BOOL_CLO(arg, "--db-listen", VG_(clo_db_listen)) {}
+- else if VG_INT_CLO (arg, "--db-listen-port", VG_(clo_db_listen_port)) {}
+ else if VG_BOOL_CLO(arg, "--demangle", VG_(clo_demangle)) {}
+ else if VG_BOOL_CLO(arg, "--error-limit", VG_(clo_error_limit)) {}
+ else if VG_INT_CLO (arg, "--error-exitcode", VG_(clo_error_exitcode)) {}
+Index: coregrind/m_options.c
+===================================================================
+--- coregrind/m_options.c (revision 9748)
++++ coregrind/m_options.c (working copy)
+@@ -48,8 +48,6 @@
+ Int VG_(clo_error_exitcode) = 0;
+ Bool VG_(clo_db_attach) = False;
+ Char* VG_(clo_db_command) = GDB_PATH " -nw -q '%f' %p";
+-Bool VG_(clo_db_listen) = True;
+-Int VG_(clo_db_listen_port) = 2159;
+ Int VG_(clo_gen_suppressions) = 0;
+ Int VG_(clo_sanity_level) = 1;
+ Int VG_(clo_verbosity) = 1;
+Index: coregrind/pub_core_options.h
+===================================================================
+--- coregrind/pub_core_options.h (revision 9748)
++++ coregrind/pub_core_options.h (working copy)
+@@ -52,10 +52,6 @@
+ extern Bool VG_(clo_db_attach);
+ /* The debugger command? default: whatever gdb ./configure found */
+ extern Char* VG_(clo_db_command);
+-/* Listen for a remote debugger? default: YES (GrP fixme no?) */
+-extern Bool VG_(clo_db_listen); // DDD: undocumented
+-/* TCP port to listen for remote debugger default: 2159 (gdb-remote) */
+-extern Int VG_(clo_db_listen_port); // DDD: undocumented
+ /* Generating a suppression for each error? default: 0 (NO)
+ Other values: 1 (yes, but ask user), 2 (yes, don't ask user) */
+ extern Int VG_(clo_gen_suppressions);
|
|
From: <sv...@va...> - 2009-05-04 07:28:34
|
Author: njn
Date: 2009-05-04 08:28:31 +0100 (Mon, 04 May 2009)
New Revision: 9771
Log:
Remove some more dead debugstub code.
Modified:
branches/DARWIN/coregrind/m_main.c
branches/DARWIN/coregrind/m_options.c
branches/DARWIN/coregrind/pub_core_options.h
Modified: branches/DARWIN/coregrind/m_main.c
===================================================================
--- branches/DARWIN/coregrind/m_main.c 2009-05-04 07:24:26 UTC (rev 9770)
+++ branches/DARWIN/coregrind/m_main.c 2009-05-04 07:28:31 UTC (rev 9771)
@@ -388,8 +388,6 @@
else if VG_BOOL_CLO(arg, "--xml", VG_(clo_xml)) {}
else if VG_BOOL_CLO(arg, "--db-attach", VG_(clo_db_attach)) {}
- else if VG_BOOL_CLO(arg, "--db-listen", VG_(clo_db_listen)) {}
- else if VG_INT_CLO (arg, "--db-listen-port", VG_(clo_db_listen_port)) {}
else if VG_BOOL_CLO(arg, "--demangle", VG_(clo_demangle)) {}
else if VG_BOOL_CLO(arg, "--error-limit", VG_(clo_error_limit)) {}
else if VG_INT_CLO (arg, "--error-exitcode", VG_(clo_error_exitcode)) {}
Modified: branches/DARWIN/coregrind/m_options.c
===================================================================
--- branches/DARWIN/coregrind/m_options.c 2009-05-04 07:24:26 UTC (rev 9770)
+++ branches/DARWIN/coregrind/m_options.c 2009-05-04 07:28:31 UTC (rev 9771)
@@ -48,8 +48,6 @@
Int VG_(clo_error_exitcode) = 0;
Bool VG_(clo_db_attach) = False;
Char* VG_(clo_db_command) = GDB_PATH " -nw -q '%f' %p";
-Bool VG_(clo_db_listen) = True;
-Int VG_(clo_db_listen_port) = 2159;
Int VG_(clo_gen_suppressions) = 0;
Int VG_(clo_sanity_level) = 1;
Int VG_(clo_verbosity) = 1;
Modified: branches/DARWIN/coregrind/pub_core_options.h
===================================================================
--- branches/DARWIN/coregrind/pub_core_options.h 2009-05-04 07:24:26 UTC (rev 9770)
+++ branches/DARWIN/coregrind/pub_core_options.h 2009-05-04 07:28:31 UTC (rev 9771)
@@ -52,10 +52,6 @@
extern Bool VG_(clo_db_attach);
/* The debugger command? default: whatever gdb ./configure found */
extern Char* VG_(clo_db_command);
-/* Listen for a remote debugger? default: YES (GrP fixme no?) */
-extern Bool VG_(clo_db_listen); // DDD: undocumented
-/* TCP port to listen for remote debugger default: 2159 (gdb-remote) */
-extern Int VG_(clo_db_listen_port); // DDD: undocumented
/* Generating a suppression for each error? default: 0 (NO)
Other values: 1 (yes, but ask user), 2 (yes, don't ask user) */
extern Int VG_(clo_gen_suppressions);
|
|
From: <sv...@va...> - 2009-05-04 07:24:30
|
Author: njn Date: 2009-05-04 08:24:26 +0100 (Mon, 04 May 2009) New Revision: 9770 Log: Remove a dead declaration. Modified: branches/DARWIN/coregrind/pub_core_debuginfo.h Modified: branches/DARWIN/coregrind/pub_core_debuginfo.h =================================================================== --- branches/DARWIN/coregrind/pub_core_debuginfo.h 2009-05-04 07:22:57 UTC (rev 9769) +++ branches/DARWIN/coregrind/pub_core_debuginfo.h 2009-05-04 07:24:26 UTC (rev 9770) @@ -135,9 +135,6 @@ extern Bool VG_(lookup_symbol_SLOW)(UChar* sopatt, UChar* name, Addr* pEnt, Addr* pToc); -/* GrP fixme replace with lookup_symbol_SLOW ? */ -extern -Addr VG_(dlsym)(Char *fnname); #endif // __PUB_CORE_DEBUGINFO_H /*--------------------------------------------------------------------*/ |
|
From: <sv...@va...> - 2009-05-04 07:23:05
|
Author: njn Date: 2009-05-04 08:22:57 +0100 (Mon, 04 May 2009) New Revision: 9769 Log: Remove an unnecessary comment. Modified: branches/DARWIN/coregrind/m_syswrap/priv_types_n_macros.h Modified: branches/DARWIN/coregrind/m_syswrap/priv_types_n_macros.h =================================================================== --- branches/DARWIN/coregrind/m_syswrap/priv_types_n_macros.h 2009-05-04 07:21:23 UTC (rev 9768) +++ branches/DARWIN/coregrind/m_syswrap/priv_types_n_macros.h 2009-05-04 07:22:57 UTC (rev 9769) @@ -503,7 +503,6 @@ #endif -// GrP can't think of a cleaner way to do this #if SYSCALL_PARAMS_IN_REGISTERS == 8 # define PRA1(s,t,a) PRRAn(1,s,t,a) # define PRA2(s,t,a) PRRAn(2,s,t,a) |
|
From: <sv...@va...> - 2009-05-04 07:21:36
|
Author: njn
Date: 2009-05-04 08:21:23 +0100 (Mon, 04 May 2009)
New Revision: 9768
Log:
Factor out some code.
Modified:
branches/DARWIN/coregrind/m_initimg/initimg-darwin.c
branches/DARWIN/coregrind/m_initimg/initimg-linux.c
branches/DARWIN/coregrind/m_initimg/initimg-pathscan.c
branches/DARWIN/coregrind/m_initimg/priv_initimg_pathscan.h
branches/DARWIN/coregrind/pub_core_initimg.h
Modified: branches/DARWIN/coregrind/m_initimg/initimg-darwin.c
===================================================================
--- branches/DARWIN/coregrind/m_initimg/initimg-darwin.c 2009-05-04 07:05:34 UTC (rev 9767)
+++ branches/DARWIN/coregrind/m_initimg/initimg-darwin.c 2009-05-04 07:21:23 UTC (rev 9768)
@@ -64,7 +64,7 @@
SysRes res;
vg_assert( VG_(args_the_exename) != NULL);
- exe_name = VG_(find_executable)( VG_(args_the_exename) );
+ exe_name = ML_(find_executable)( VG_(args_the_exename) );
if (!exe_name) {
VG_(printf)("valgrind: %s: command not found\n", VG_(args_the_exename));
Modified: branches/DARWIN/coregrind/m_initimg/initimg-linux.c
===================================================================
--- branches/DARWIN/coregrind/m_initimg/initimg-linux.c 2009-05-04 07:05:34 UTC (rev 9767)
+++ branches/DARWIN/coregrind/m_initimg/initimg-linux.c 2009-05-04 07:21:23 UTC (rev 9768)
@@ -47,6 +47,7 @@
#include "pub_core_syscall.h"
#include "pub_core_tooliface.h" /* VG_TRACK */
#include "pub_core_threadstate.h" /* ThreadArchState */
+#include "priv_initimg_pathscan.h"
#include "pub_core_initimg.h" /* self */
/* --- !!! --- EXTERNAL HEADERS start --- !!! --- */
@@ -136,25 +137,7 @@
}
}
-// Returns NULL if it wasn't found.
-static HChar* find_executable ( HChar* exec )
-{
- vg_assert(NULL != exec);
- if (VG_(strchr)(exec, '/')) {
- // Has a '/' - use the name as is
- VG_(strncpy)( executable_name_out, exec, VKI_PATH_MAX-1 );
- } else {
- // No '/' - we need to search the path
- HChar* path;
- VG_(strncpy)( executable_name_in, exec, VKI_PATH_MAX-1 );
- VG_(memset) ( executable_name_out, 0, VKI_PATH_MAX );
- path = VG_(getenv)("PATH");
- scan_colsep(path, match_executable);
- }
- return VG_STREQ(executable_name_out, "") ? NULL : executable_name_out;
-}
-
/*====================================================================*/
/*=== Loading the client ===*/
/*====================================================================*/
@@ -170,7 +153,7 @@
SysRes res;
vg_assert( VG_(args_the_exename) != NULL);
- exe_name = find_executable( VG_(args_the_exename) );
+ exe_name = ML_(find_executable)( VG_(args_the_exename) );
if (!exe_name) {
VG_(printf)("valgrind: %s: command not found\n", VG_(args_the_exename));
Modified: branches/DARWIN/coregrind/m_initimg/initimg-pathscan.c
===================================================================
--- branches/DARWIN/coregrind/m_initimg/initimg-pathscan.c 2009-05-04 07:05:34 UTC (rev 9767)
+++ branches/DARWIN/coregrind/m_initimg/initimg-pathscan.c 2009-05-04 07:21:23 UTC (rev 9768)
@@ -47,7 +47,9 @@
#include "pub_core_threadstate.h" /* ThreadArchState */
#include "pub_core_initimg.h" /* self */
+#include "priv_initimg_pathscan.h"
+
/*====================================================================*/
/*=== Find executable ===*/
/*====================================================================*/
@@ -128,7 +130,7 @@
}
// Returns NULL if it wasn't found.
-HChar* VG_(find_executable) ( HChar* exec )
+HChar* ML_(find_executable) ( HChar* exec )
{
vg_assert(NULL != exec);
if (VG_(strchr)(exec, '/')) {
Modified: branches/DARWIN/coregrind/m_initimg/priv_initimg_pathscan.h
===================================================================
--- branches/DARWIN/coregrind/m_initimg/priv_initimg_pathscan.h 2009-05-04 07:05:34 UTC (rev 9767)
+++ branches/DARWIN/coregrind/m_initimg/priv_initimg_pathscan.h 2009-05-04 07:21:23 UTC (rev 9768)
@@ -32,7 +32,6 @@
#ifndef __PRIV_INITIMG_PATHSCAN_H
#define __PRIV_INITIMG_PATHSCAN_
-// GrP fixme ML_() ?
-extern HChar* VG_(find_executable) ( HChar* exec );
+extern HChar* ML_(find_executable) ( HChar* exec );
#endif
Modified: branches/DARWIN/coregrind/pub_core_initimg.h
===================================================================
--- branches/DARWIN/coregrind/pub_core_initimg.h 2009-05-04 07:05:34 UTC (rev 9767)
+++ branches/DARWIN/coregrind/pub_core_initimg.h 2009-05-04 07:21:23 UTC (rev 9768)
@@ -60,10 +60,6 @@
extern
void VG_(ii_finalise_image)( IIFinaliseImageInfo );
-/* Search for the named executable in PATH, and return its full path. */
-extern
-HChar* VG_(find_executable) ( HChar* exec );
-
/* Note that both IICreateImageInfo and IIFinaliseImageInfo are
OS-specific. We now go on to give instantiations of them
for supported OSes. */
|
|
From: <sv...@va...> - 2009-05-04 07:05:42
|
Author: njn
Date: 2009-05-04 08:05:34 +0100 (Mon, 04 May 2009)
New Revision: 9767
Log:
Remove an unnecessary comment, and conditionally compiled some
Darwin-specific code.
Modified:
branches/DARWIN/Makefile.flags.am
branches/DARWIN/coregrind/m_translate.c
Modified: branches/DARWIN/Makefile.flags.am
===================================================================
--- branches/DARWIN/Makefile.flags.am 2009-05-04 06:55:05 UTC (rev 9766)
+++ branches/DARWIN/Makefile.flags.am 2009-05-04 07:05:34 UTC (rev 9767)
@@ -104,7 +104,6 @@
-DVGP_amd64_darwin=1
AM_CFLAGS_AMD64_DARWIN = $(WERROR) -arch x86_64 $(AM_CFLAGS_BASE) \
-mmacosx-version-min=10.5 -fno-stack-protector
-# GrP fixme -O0 for debugging goes here
AM_CCASFLAGS_AMD64_DARWIN = $(AM_CPPFLAGS_AMD64_DARWIN) -arch x86_64 -g
# Flags for the primary target. These must be used to build the
Modified: branches/DARWIN/coregrind/m_translate.c
===================================================================
--- branches/DARWIN/coregrind/m_translate.c 2009-05-04 06:55:05 UTC (rev 9766)
+++ branches/DARWIN/coregrind/m_translate.c 2009-05-04 07:05:34 UTC (rev 9767)
@@ -711,12 +711,14 @@
static Bool self_check_required ( NSegment const* seg, ThreadId tid )
{
+#if defined(VGO_darwin)
// GrP fixme hack - dyld i386 IMPORT gets rewritten
// to really do this correctly, we'd need to flush the
// translation cache whenever a segment became +WX
if (seg->hasX && seg->hasW) {
return True;
}
+#endif
switch (VG_(clo_smc_check)) {
case Vg_SmcNone: return False;
case Vg_SmcAll: return True;
|
|
From: <sv...@va...> - 2009-05-04 06:55:09
|
Author: njn
Date: 2009-05-04 07:55:05 +0100 (Mon, 04 May 2009)
New Revision: 9766
Log:
Merge r9764 (comments about signals) from the trunk.
Modified:
branches/DARWIN/coregrind/m_signals.c
Modified: branches/DARWIN/coregrind/m_signals.c
===================================================================
--- branches/DARWIN/coregrind/m_signals.c 2009-05-04 06:54:23 UTC (rev 9765)
+++ branches/DARWIN/coregrind/m_signals.c 2009-05-04 06:55:05 UTC (rev 9766)
@@ -42,7 +42,7 @@
client process stack, it is extended in the same way the kernel
would, and the fault is never reported to the client program.
- 2. Asynchronous varients of the above signals: If the kernel tries
+ 2. Asynchronous variants of the above signals: If the kernel tries
to deliver a sync signal while it is blocked, it just kills the
process. Therefore, we can't block those signals if we want to be
able to report on bugs in Valgrind. This means that we're also
@@ -79,6 +79,124 @@
always unblocked).
*/
+/*
+ Some more details...
+
+ First off, we take note of the client's requests (via sys_sigaction
+ and sys_sigprocmask) to set the signal state (handlers for each
+ signal, which are process-wide, + a mask for each signal, which is
+ per-thread). This info is duly recorded in the SCSS (static Client
+ signal state) in m_signals.c, and if the client later queries what
+ the state is, we merely fish the relevant info out of SCSS and give
+ it back.
+
+ However, we set the real signal state in the kernel to something
+ entirely different. This is recorded in SKSS, the static Kernel
+ signal state. What's nice (to the extent that anything is nice w.r.t
+ signals) is that there's a pure function to calculate SKSS from SCSS,
+ calculate_SKSS_from_SCSS. So when the client changes SCSS then we
+ recompute the associated SKSS and apply any changes from the previous
+ SKSS through to the kernel.
+
+ Now, that said, the general scheme we have now is, that regardless of
+ what the client puts into the SCSS (viz, asks for), what we would
+ like to do is as follows:
+
+ (1) run code on the virtual CPU with all signals blocked
+
+ (2) at convenient moments for us (that is, when the VCPU stops, and
+ control is back with the scheduler), ask the kernel "do you have
+ any signals for me?" and if it does, collect up the info, and
+ deliver them to the client (by building sigframes).
+
+ And that's almost what we do. The signal polling is done by
+ VG_(poll_signals), which calls through to VG_(sigtimedwait_zero) to
+ do the dirty work. (of which more later).
+
+ By polling signals, rather than catching them, we get to deal with
+ them only at convenient moments, rather than having to recover from
+ taking a signal while generated code is running.
+
+ Now unfortunately .. the above scheme only works for so-called async
+ signals. An async signal is one which isn't associated with any
+ particular instruction, eg Control-C (SIGINT). For those, it doesn't
+ matter if we don't deliver the signal to the client immediately; it
+ only matters that we deliver it eventually. Hence polling is OK.
+
+ But the other group -- sync signals -- are all related by the fact
+ that they are various ways for the host CPU to fail to execute an
+ instruction: SIGILL, SIGSEGV, SIGFPU. And they can't be deferred,
+ because obviously if a host instruction can't execute, well then we
+ have to immediately do Plan B, whatever that is.
+
+ So the next approximation of what happens is:
+
+ (1) run code on vcpu with all async signals blocked
+
+ (2) at convenient moments (when NOT running the vcpu), poll for async
+ signals.
+
+ (1) and (2) together imply that if the host does deliver a signal to
+ async_signalhandler while the VCPU is running, something's
+ seriously wrong.
+
+ (3) when running code on vcpu, don't block sync signals. Instead
+ register sync_signalhandler and catch any such via that. Of
+ course, that means an ugly recovery path if we do -- the
+ sync_signalhandler has to longjump, exiting out of the generated
+ code, and the assembly-dispatcher thingy that runs it, and gets
+ caught in m_scheduler, which then tells m_signals to deliver the
+ signal.
+
+ Now naturally (ha ha) even that might be tolerable, but there's
+ something worse: dealing with signals delivered to threads in
+ syscalls.
+
+ Obviously from the above, SKSS's signal mask (viz, what we really run
+ with) is way different from SCSS's signal mask (viz, what the client
+ thread thought it asked for). (eg) It may well be that the client
+ did not block control-C, so that it just expects to drop dead if it
+ receives ^C whilst blocked in a syscall, but by default we are
+ running with all async signals blocked, and so that signal could be
+ arbitrarily delayed, or perhaps even lost (not sure).
+
+ So what we have to do, when doing any syscall which SfMayBlock, is to
+ quickly switch in the SCSS-specified signal mask just before the
+ syscall, and switch it back just afterwards, and hope that we don't
+ get caught up in some wierd race condition. This is the primary
+ purpose of the ultra-magical pieces of assembly code in
+ coregrind/m_syswrap/syscall-<plat>.S
+
+ -----------
+
+ The ways in which V can come to hear of signals that need to be
+ forwarded to the client as are follows:
+
+ sync signals: can arrive at any time whatsoever. These are caught
+ by sync_signalhandler
+
+ async signals:
+
+ if running generated code
+ then these are blocked, so we don't expect to catch them in
+ async_signalhandler
+
+ else
+ if thread is blocked in a syscall marked SfMayBlock
+ then signals may be delivered to async_sighandler, since we
+ temporarily unblocked them for the duration of the syscall,
+ by using the real (SCSS) mask for this thread
+
+ else we're doing misc housekeeping activities (eg, making a translation,
+ washing our hair, etc). As in the normal case, these signals are
+ blocked, but we can and do poll for them using VG_(poll_signals).
+
+ Now, re VG_(poll_signals), it polls the kernel by doing
+ VG_(sigtimedwait_zero). This is trivial on Linux, since it's just a
+ syscall. But on Darwin and AIX, we have to cobble together the
+ functionality in a tedious, longwinded and probably error-prone way.
+ */
+
#include "pub_core_basics.h"
#include "pub_core_vki.h"
#include "pub_core_vkiscnums.h"
|
|
From: <sv...@va...> - 2009-05-04 06:54:36
|
Author: njn
Date: 2009-05-04 07:54:23 +0100 (Mon, 04 May 2009)
New Revision: 9765
Log:
Remove some debugging code.
Modified:
branches/DARWIN/coregrind/m_transtab.c
branches/DARWIN/coregrind/pub_core_transtab.h
branches/DARWIN/memcheck/mc_errors.c
Modified: branches/DARWIN/coregrind/m_transtab.c
===================================================================
--- branches/DARWIN/coregrind/m_transtab.c 2009-05-04 06:54:04 UTC (rev 9764)
+++ branches/DARWIN/coregrind/m_transtab.c 2009-05-04 06:54:23 UTC (rev 9765)
@@ -1629,38 +1629,6 @@
return score_total;
}
-
-// GrP for debugging use
-void VG_(untranslate)(ULong *host_ip)
-{
- Int sno, i, v;
-
- for (sno = 0; sno < N_SECTORS; sno++) {
- if (sectors[sno].tc == NULL)
- continue; // empty sector
- if (host_ip < sectors[sno].tc || host_ip >= sectors[sno].tc_next)
- continue; // host_ip not in this sector
-
- for (i = 0; i < N_TTES_PER_SECTOR; i++) {
- TTEntry *tt = §ors[sno].tt[i];
- if (tt->status != InUse)
- continue;
- if (host_ip < tt->tcptr || host_ip >= tt->tcptr+tt->tc_szQ)
- continue;
-
- VG_(printf)("host %p..%p -> guest",
- tt->tcptr, tt->tcptr+tt->tc_szQ);
- for (v = 0; v < tt->vge.n_used; v++) {
- VG_(printf)("%s %#lx..%#lx",
- v==0 ? "" : ",",
- (Addr)tt->vge.base[v],
- (Addr)tt->vge.base[v]+tt->vge.len[v]);
- }
- VG_(printf)("\n");
- }
- }
-}
-
/*--------------------------------------------------------------------*/
/*--- end ---*/
/*--------------------------------------------------------------------*/
Modified: branches/DARWIN/coregrind/pub_core_transtab.h
===================================================================
--- branches/DARWIN/coregrind/pub_core_transtab.h 2009-05-04 06:54:04 UTC (rev 9764)
+++ branches/DARWIN/coregrind/pub_core_transtab.h 2009-05-04 06:54:23 UTC (rev 9765)
@@ -97,10 +97,6 @@
extern ULong VG_(get_BB_profile) ( BBProfEntry tops[], UInt n_tops );
-// Prints some translation table details for the given host IP. For
-// debugging.
-void VG_(untranslate) ( ULong *host_ip );
-
#endif // __PUB_CORE_TRANSTAB_H
/*--------------------------------------------------------------------*/
Modified: branches/DARWIN/memcheck/mc_errors.c
===================================================================
--- branches/DARWIN/memcheck/mc_errors.c 2009-05-04 06:54:04 UTC (rev 9764)
+++ branches/DARWIN/memcheck/mc_errors.c 2009-05-04 06:54:23 UTC (rev 9765)
@@ -1361,17 +1361,6 @@
}
-// GrP for debugging
-__attribute__((unused))
-static void mc_describe_address(Addr addr)
-{
- AddrInfo ai = {0};
-
- describe_addr(addr, &ai);
- mc_pp_AddrInfo(addr, &ai, True);
-}
-
-
/*--------------------------------------------------------------------*/
/*--- end mc_errors.c ---*/
/*--------------------------------------------------------------------*/
|
|
From: <sv...@va...> - 2009-05-04 06:54:08
|
Author: njn
Date: 2009-05-04 07:54:04 +0100 (Mon, 04 May 2009)
New Revision: 9764
Log:
Add some comments about signals, from Julian.
Modified:
trunk/coregrind/m_signals.c
Modified: trunk/coregrind/m_signals.c
===================================================================
--- trunk/coregrind/m_signals.c 2009-05-04 06:46:31 UTC (rev 9763)
+++ trunk/coregrind/m_signals.c 2009-05-04 06:54:04 UTC (rev 9764)
@@ -42,7 +42,7 @@
client process stack, it is extended in the same way the kernel
would, and the fault is never reported to the client program.
- 2. Asynchronous varients of the above signals: If the kernel tries
+ 2. Asynchronous variants of the above signals: If the kernel tries
to deliver a sync signal while it is blocked, it just kills the
process. Therefore, we can't block those signals if we want to be
able to report on bugs in Valgrind. This means that we're also
@@ -79,6 +79,124 @@
always unblocked).
*/
+/*
+ Some more details...
+
+ First off, we take note of the client's requests (via sys_sigaction
+ and sys_sigprocmask) to set the signal state (handlers for each
+ signal, which are process-wide, + a mask for each signal, which is
+ per-thread). This info is duly recorded in the SCSS (static Client
+ signal state) in m_signals.c, and if the client later queries what
+ the state is, we merely fish the relevant info out of SCSS and give
+ it back.
+
+ However, we set the real signal state in the kernel to something
+ entirely different. This is recorded in SKSS, the static Kernel
+ signal state. What's nice (to the extent that anything is nice w.r.t
+ signals) is that there's a pure function to calculate SKSS from SCSS,
+ calculate_SKSS_from_SCSS. So when the client changes SCSS then we
+ recompute the associated SKSS and apply any changes from the previous
+ SKSS through to the kernel.
+
+ Now, that said, the general scheme we have now is, that regardless of
+ what the client puts into the SCSS (viz, asks for), what we would
+ like to do is as follows:
+
+ (1) run code on the virtual CPU with all signals blocked
+
+ (2) at convenient moments for us (that is, when the VCPU stops, and
+ control is back with the scheduler), ask the kernel "do you have
+ any signals for me?" and if it does, collect up the info, and
+ deliver them to the client (by building sigframes).
+
+ And that's almost what we do. The signal polling is done by
+ VG_(poll_signals), which calls through to VG_(sigtimedwait_zero) to
+ do the dirty work. (of which more later).
+
+ By polling signals, rather than catching them, we get to deal with
+ them only at convenient moments, rather than having to recover from
+ taking a signal while generated code is running.
+
+ Now unfortunately .. the above scheme only works for so-called async
+ signals. An async signal is one which isn't associated with any
+ particular instruction, eg Control-C (SIGINT). For those, it doesn't
+ matter if we don't deliver the signal to the client immediately; it
+ only matters that we deliver it eventually. Hence polling is OK.
+
+ But the other group -- sync signals -- are all related by the fact
+ that they are various ways for the host CPU to fail to execute an
+ instruction: SIGILL, SIGSEGV, SIGFPU. And they can't be deferred,
+ because obviously if a host instruction can't execute, well then we
+ have to immediately do Plan B, whatever that is.
+
+ So the next approximation of what happens is:
+
+ (1) run code on vcpu with all async signals blocked
+
+ (2) at convenient moments (when NOT running the vcpu), poll for async
+ signals.
+
+ (1) and (2) together imply that if the host does deliver a signal to
+ async_signalhandler while the VCPU is running, something's
+ seriously wrong.
+
+ (3) when running code on vcpu, don't block sync signals. Instead
+ register sync_signalhandler and catch any such via that. Of
+ course, that means an ugly recovery path if we do -- the
+ sync_signalhandler has to longjump, exiting out of the generated
+ code, and the assembly-dispatcher thingy that runs it, and gets
+ caught in m_scheduler, which then tells m_signals to deliver the
+ signal.
+
+ Now naturally (ha ha) even that might be tolerable, but there's
+ something worse: dealing with signals delivered to threads in
+ syscalls.
+
+ Obviously from the above, SKSS's signal mask (viz, what we really run
+ with) is way different from SCSS's signal mask (viz, what the client
+ thread thought it asked for). (eg) It may well be that the client
+ did not block control-C, so that it just expects to drop dead if it
+ receives ^C whilst blocked in a syscall, but by default we are
+ running with all async signals blocked, and so that signal could be
+ arbitrarily delayed, or perhaps even lost (not sure).
+
+ So what we have to do, when doing any syscall which SfMayBlock, is to
+ quickly switch in the SCSS-specified signal mask just before the
+ syscall, and switch it back just afterwards, and hope that we don't
+ get caught up in some wierd race condition. This is the primary
+ purpose of the ultra-magical pieces of assembly code in
+ coregrind/m_syswrap/syscall-<plat>.S
+
+ -----------
+
+ The ways in which V can come to hear of signals that need to be
+ forwarded to the client as are follows:
+
+ sync signals: can arrive at any time whatsoever. These are caught
+ by sync_signalhandler
+
+ async signals:
+
+ if running generated code
+ then these are blocked, so we don't expect to catch them in
+ async_signalhandler
+
+ else
+ if thread is blocked in a syscall marked SfMayBlock
+ then signals may be delivered to async_sighandler, since we
+ temporarily unblocked them for the duration of the syscall,
+ by using the real (SCSS) mask for this thread
+
+ else we're doing misc housekeeping activities (eg, making a translation,
+ washing our hair, etc). As in the normal case, these signals are
+ blocked, but we can and do poll for them using VG_(poll_signals).
+
+ Now, re VG_(poll_signals), it polls the kernel by doing
+ VG_(sigtimedwait_zero). This is trivial on Linux, since it's just a
+ syscall. But on Darwin and AIX, we have to cobble together the
+ functionality in a tedious, longwinded and probably error-prone way.
+ */
+
#include "pub_core_basics.h"
#include "pub_core_vki.h"
#include "pub_core_vkiscnums.h"
|
|
From: <sv...@va...> - 2009-05-04 06:46:34
|
Author: njn
Date: 2009-05-04 07:46:31 +0100 (Mon, 04 May 2009)
New Revision: 9763
Log:
Merge r9761 (fix a comment) from the trunk.
Modified:
trunk/memcheck/tests/memalign2.c
Modified: trunk/memcheck/tests/memalign2.c
===================================================================
--- trunk/memcheck/tests/memalign2.c 2009-05-04 06:44:55 UTC (rev 9762)
+++ trunk/memcheck/tests/memalign2.c 2009-05-04 06:46:31 UTC (rev 9763)
@@ -23,10 +23,7 @@
// AIX 5.2 has neither memalign() nor posix_memalign(); do nothing.
# else
- // Nb: assuming VG_MIN_MALLOC_SZB is 8!
- // DDD: (this is no longer true)
- // Should work with both 32-bit and 64-bit pointers, though.
-
+ // Nb: assuming VG_MIN_MALLOC_SZB is 8 or more...
int* p;
int res;
assert(sizeof(long int) == sizeof(void*));
|
|
From: <sv...@va...> - 2009-05-04 06:44:58
|
Author: njn
Date: 2009-05-04 07:44:55 +0100 (Mon, 04 May 2009)
New Revision: 9762
Log:
Sync branch with the trunk.
Modified:
branches/DARWIN/coregrind/m_translate.c
branches/DARWIN/coregrind/m_transtab.c
Modified: branches/DARWIN/coregrind/m_translate.c
===================================================================
--- branches/DARWIN/coregrind/m_translate.c 2009-05-04 06:44:34 UTC (rev 9761)
+++ branches/DARWIN/coregrind/m_translate.c 2009-05-04 06:44:55 UTC (rev 9762)
@@ -661,8 +661,9 @@
/* Vex dumps the final code in here. Then we can copy it off
wherever we like. */
-// GrP fixme 20000 is too small for vecCGSScanConvolveAndIntegrate+268
-#define N_TMPBUF 128000
+/* 60000: should agree with assertion in VG_(add_to_transtab) in
+ m_transtab.c. */
+#define N_TMPBUF 60000
static UChar tmpbuf[N_TMPBUF];
Modified: branches/DARWIN/coregrind/m_transtab.c
===================================================================
--- branches/DARWIN/coregrind/m_transtab.c 2009-05-04 06:44:34 UTC (rev 9761)
+++ branches/DARWIN/coregrind/m_transtab.c 2009-05-04 06:44:55 UTC (rev 9762)
@@ -847,8 +847,10 @@
vg_assert(init_done);
vg_assert(vge->n_used >= 1 && vge->n_used <= 3);
- vg_assert(code_len > 0 && code_len < 128000); // GrP fixme N_TMPBUF from m_translate.c?
+ /* 60000: should agree with N_TMPBUF in m_translate.c. */
+ vg_assert(code_len > 0 && code_len < 60000);
+
if (0)
VG_(printf)("add_to_transtab(entry = 0x%llx, len = %d)\n",
entry, code_len);
|
|
From: <sv...@va...> - 2009-05-04 06:44:37
|
Author: njn
Date: 2009-05-04 07:44:34 +0100 (Mon, 04 May 2009)
New Revision: 9761
Log:
Fix a comment.
Modified:
branches/DARWIN/memcheck/tests/memalign2.c
Modified: branches/DARWIN/memcheck/tests/memalign2.c
===================================================================
--- branches/DARWIN/memcheck/tests/memalign2.c 2009-05-04 06:33:15 UTC (rev 9760)
+++ branches/DARWIN/memcheck/tests/memalign2.c 2009-05-04 06:44:34 UTC (rev 9761)
@@ -26,10 +26,7 @@
// Likewise for Mac OS X.
# else
- // Nb: assuming VG_MIN_MALLOC_SZB is 8!
- // DDD: (this is no longer true)
- // Should work with both 32-bit and 64-bit pointers, though.
-
+ // Nb: assuming VG_MIN_MALLOC_SZB is 8 or more...
int* p;
int res;
assert(sizeof(long int) == sizeof(void*));
|
|
From: <sv...@va...> - 2009-05-04 06:33:21
|
Author: njn
Date: 2009-05-04 07:33:15 +0100 (Mon, 04 May 2009)
New Revision: 9760
Log:
Record more removed debugstub stuff.
Added:
branches/DARWIN/docs/internals/debugstub_removed_at_r9759.diff
Added: branches/DARWIN/docs/internals/debugstub_removed_at_r9759.diff
===================================================================
--- branches/DARWIN/docs/internals/debugstub_removed_at_r9759.diff (rev 0)
+++ branches/DARWIN/docs/internals/debugstub_removed_at_r9759.diff 2009-05-04 06:33:15 UTC (rev 9760)
@@ -0,0 +1,163 @@
+Index: include/pub_tool_libcfile.h
+===================================================================
+--- include/pub_tool_libcfile.h (revision 9748)
++++ include/pub_tool_libcfile.h (working copy)
+@@ -67,7 +67,6 @@
+ extern void VG_(close) ( Int fd );
+ extern Int VG_(read) ( Int fd, void* buf, Int count);
+ extern Int VG_(write) ( Int fd, const void* buf, Int count);
+-extern Int VG_(select) ( Int nfds, void *rfds, void *wfds, void *efds, void *timeout );
+ extern Int VG_(pipe) ( Int fd[2] );
+ extern OffT VG_(lseek) ( Int fd, OffT offset, Int whence );
+
+Index: coregrind/pub_core_libcfile.h
+===================================================================
+--- coregrind/pub_core_libcfile.h (revision 9748)
++++ coregrind/pub_core_libcfile.h (working copy)
+@@ -64,17 +64,12 @@
+ extern UShort VG_(ntohs) ( UShort x );
+
+ extern Int VG_(socket) ( Int domain, Int type, Int protocol );
+-extern Int VG_(bind) ( Int sock, const struct vki_sockaddr *addr, vki_socklen_t len);
+-extern Int VG_(listen) ( Int sock, Int backlog );
+-extern Int VG_(accept) ( Int sock, struct vki_sockaddr *addr, vki_socklen_t *len);
+
+ extern Int VG_(write_socket)( Int sd, void *msg, Int count );
+ extern Int VG_(getsockname) ( Int sd, struct vki_sockaddr *name, Int *namelen );
+ extern Int VG_(getpeername) ( Int sd, struct vki_sockaddr *name, Int *namelen );
+ extern Int VG_(getsockopt) ( Int sd, Int level, Int optname,
+ void *optval, Int *optlen );
+-extern Int VG_(setsockopt) ( Int sd, Int level, Int optname,
+- const void *optval, Int optlen);
+
+ extern Int VG_(access) ( HChar* path, Bool irusr, Bool iwusr, Bool ixusr );
+
+Index: coregrind/m_libcfile.c
+===================================================================
+--- coregrind/m_libcfile.c (revision 9750)
++++ coregrind/m_libcfile.c (working copy)
+@@ -166,29 +166,7 @@
+ return ret;
+ }
+
+-Int VG_(select) ( Int nfds, void *rfds, void *wfds, void *efds, void *timeout)
+-{
+- Int ret;
+-# if defined(VGO_darwin)
+- SysRes res = VG_(do_syscall5)(__NR_select_nocancel, nfds,
+- (Addr)rfds, (Addr)wfds,
+- (Addr)efds, (Addr)timeout);
+-# else
+- SysRes res = VG_(do_syscall5)(__NR_select, nfds,
+- (Addr)rfds, (Addr)wfds,
+- (Addr)efds, (Addr)timeout);
+-# endif
+- if (sr_isError(res)) {
+- ret = - (Int)(Word)sr_Err(res);
+- vg_assert(ret < 0);
+- } else {
+- ret = (Int)(Word)sr_Res(res);
+- vg_assert(ret >= 0);
+- }
+- return ret;
+-}
+
+-
+ Int VG_(pipe) ( Int fd[2] )
+ {
+ # if defined(VGO_linux) || defined(VGO_aix5)
+@@ -852,64 +830,7 @@
+ # endif
+ }
+
+-Int VG_(bind) ( Int sock, const struct vki_sockaddr *addr, vki_socklen_t len)
+-{
+-# if defined(VGO_linux)
+- I_die_here;
+
+-# elif defined(VGO_aix5)
+- I_die_here;
+-
+-# elif defined(VGO_darwin)
+- SysRes res;
+- res = VG_(do_syscall3)(__NR_bind, sock, (UWord)addr, (UWord)len);
+- return sr_isError(res) ? -1 : sr_Res(res);
+-
+-# else
+-# error "Unknown OS"
+-# endif
+-}
+-
+-
+-Int VG_(listen) ( Int sock, Int backlog )
+-{
+-# if defined(VGO_linux)
+- I_die_here;
+-
+-# elif defined(VGO_aix5)
+- I_die_here;
+-
+-# elif defined(VGO_darwin)
+- SysRes res;
+- res = VG_(do_syscall2)(__NR_listen, sock, backlog);
+- return sr_isError(res) ? -1 : sr_Res(res);
+-
+-# else
+-# error "Unknown OS"
+-# endif
+-}
+-
+-
+-// GrP fixme safe_fd?
+-Int VG_(accept) ( Int sock, struct vki_sockaddr *addr, vki_socklen_t *len)
+-{
+-# if defined(VGO_linux)
+- I_die_here;
+-
+-# elif defined(VGO_aix5)
+- I_die_here;
+-
+-# elif defined(VGO_darwin)
+- SysRes res;
+- res = VG_(do_syscall3)(__NR_accept_nocancel, sock, (UWord)addr, (UWord)len);
+- return sr_isError(res) ? -1 : sr_Res(res);
+-
+-# else
+-# error "Unknown OS"
+-# endif
+-}
+-
+-
+ static
+ Int my_connect ( Int sockfd, struct vki_sockaddr_in* serv_addr,
+ Int addrlen )
+@@ -1086,29 +1007,6 @@
+ }
+
+
+-Int VG_(setsockopt) ( Int sd, Int level, Int optname, const void *optval,
+- Int optlen)
+-{
+-# if defined(VGO_linux)
+- I_die_here;
+-
+-# elif defined(VGO_aix5)
+- I_die_here;
+-
+-# elif defined(VGO_darwin)
+- SysRes res;
+-
+- res = VG_(do_syscall5)( __NR_setsockopt,
+- (UWord)sd, (UWord)level, (UWord)optname,
+- (UWord)optval, (UWord)optlen );
+- return sr_isError(res) ? -1 : sr_Res(res);
+-
+-# else
+-# error "Unknown OS"
+-# endif
+-}
+-
+-
+ Char *VG_(basename)(const Char *path)
+ {
+ static Char buf[VKI_PATH_MAX];
|
|
From: <sv...@va...> - 2009-05-04 06:32:31
|
Author: njn
Date: 2009-05-04 07:32:28 +0100 (Mon, 04 May 2009)
New Revision: 9759
Log:
Remove some libc functions that were used by the debug stub.
Modified:
branches/DARWIN/coregrind/m_libcfile.c
branches/DARWIN/coregrind/pub_core_libcfile.h
branches/DARWIN/include/pub_tool_libcfile.h
Modified: branches/DARWIN/coregrind/m_libcfile.c
===================================================================
--- branches/DARWIN/coregrind/m_libcfile.c 2009-05-04 06:28:01 UTC (rev 9758)
+++ branches/DARWIN/coregrind/m_libcfile.c 2009-05-04 06:32:28 UTC (rev 9759)
@@ -166,29 +166,7 @@
return ret;
}
-Int VG_(select) ( Int nfds, void *rfds, void *wfds, void *efds, void *timeout)
-{
- Int ret;
-# if defined(VGO_darwin)
- SysRes res = VG_(do_syscall5)(__NR_select_nocancel, nfds,
- (Addr)rfds, (Addr)wfds,
- (Addr)efds, (Addr)timeout);
-# else
- SysRes res = VG_(do_syscall5)(__NR_select, nfds,
- (Addr)rfds, (Addr)wfds,
- (Addr)efds, (Addr)timeout);
-# endif
- if (sr_isError(res)) {
- ret = - (Int)(Word)sr_Err(res);
- vg_assert(ret < 0);
- } else {
- ret = (Int)(Word)sr_Res(res);
- vg_assert(ret >= 0);
- }
- return ret;
-}
-
Int VG_(pipe) ( Int fd[2] )
{
# if defined(VGO_linux) || defined(VGO_aix5)
@@ -852,64 +830,7 @@
# endif
}
-Int VG_(bind) ( Int sock, const struct vki_sockaddr *addr, vki_socklen_t len)
-{
-# if defined(VGO_linux)
- I_die_here;
-# elif defined(VGO_aix5)
- I_die_here;
-
-# elif defined(VGO_darwin)
- SysRes res;
- res = VG_(do_syscall3)(__NR_bind, sock, (UWord)addr, (UWord)len);
- return sr_isError(res) ? -1 : sr_Res(res);
-
-# else
-# error "Unknown OS"
-# endif
-}
-
-
-Int VG_(listen) ( Int sock, Int backlog )
-{
-# if defined(VGO_linux)
- I_die_here;
-
-# elif defined(VGO_aix5)
- I_die_here;
-
-# elif defined(VGO_darwin)
- SysRes res;
- res = VG_(do_syscall2)(__NR_listen, sock, backlog);
- return sr_isError(res) ? -1 : sr_Res(res);
-
-# else
-# error "Unknown OS"
-# endif
-}
-
-
-// GrP fixme safe_fd?
-Int VG_(accept) ( Int sock, struct vki_sockaddr *addr, vki_socklen_t *len)
-{
-# if defined(VGO_linux)
- I_die_here;
-
-# elif defined(VGO_aix5)
- I_die_here;
-
-# elif defined(VGO_darwin)
- SysRes res;
- res = VG_(do_syscall3)(__NR_accept_nocancel, sock, (UWord)addr, (UWord)len);
- return sr_isError(res) ? -1 : sr_Res(res);
-
-# else
-# error "Unknown OS"
-# endif
-}
-
-
static
Int my_connect ( Int sockfd, struct vki_sockaddr_in* serv_addr,
Int addrlen )
@@ -1086,29 +1007,6 @@
}
-Int VG_(setsockopt) ( Int sd, Int level, Int optname, const void *optval,
- Int optlen)
-{
-# if defined(VGO_linux)
- I_die_here;
-
-# elif defined(VGO_aix5)
- I_die_here;
-
-# elif defined(VGO_darwin)
- SysRes res;
-
- res = VG_(do_syscall5)( __NR_setsockopt,
- (UWord)sd, (UWord)level, (UWord)optname,
- (UWord)optval, (UWord)optlen );
- return sr_isError(res) ? -1 : sr_Res(res);
-
-# else
-# error "Unknown OS"
-# endif
-}
-
-
Char *VG_(basename)(const Char *path)
{
static Char buf[VKI_PATH_MAX];
Modified: branches/DARWIN/coregrind/pub_core_libcfile.h
===================================================================
--- branches/DARWIN/coregrind/pub_core_libcfile.h 2009-05-04 06:28:01 UTC (rev 9758)
+++ branches/DARWIN/coregrind/pub_core_libcfile.h 2009-05-04 06:32:28 UTC (rev 9759)
@@ -64,17 +64,12 @@
extern UShort VG_(ntohs) ( UShort x );
extern Int VG_(socket) ( Int domain, Int type, Int protocol );
-extern Int VG_(bind) ( Int sock, const struct vki_sockaddr *addr, vki_socklen_t len);
-extern Int VG_(listen) ( Int sock, Int backlog );
-extern Int VG_(accept) ( Int sock, struct vki_sockaddr *addr, vki_socklen_t *len);
extern Int VG_(write_socket)( Int sd, void *msg, Int count );
extern Int VG_(getsockname) ( Int sd, struct vki_sockaddr *name, Int *namelen );
extern Int VG_(getpeername) ( Int sd, struct vki_sockaddr *name, Int *namelen );
extern Int VG_(getsockopt) ( Int sd, Int level, Int optname,
void *optval, Int *optlen );
-extern Int VG_(setsockopt) ( Int sd, Int level, Int optname,
- const void *optval, Int optlen);
extern Int VG_(access) ( HChar* path, Bool irusr, Bool iwusr, Bool ixusr );
Modified: branches/DARWIN/include/pub_tool_libcfile.h
===================================================================
--- branches/DARWIN/include/pub_tool_libcfile.h 2009-05-04 06:28:01 UTC (rev 9758)
+++ branches/DARWIN/include/pub_tool_libcfile.h 2009-05-04 06:32:28 UTC (rev 9759)
@@ -67,7 +67,6 @@
extern void VG_(close) ( Int fd );
extern Int VG_(read) ( Int fd, void* buf, Int count);
extern Int VG_(write) ( Int fd, const void* buf, Int count);
-extern Int VG_(select) ( Int nfds, void *rfds, void *wfds, void *efds, void *timeout );
extern Int VG_(pipe) ( Int fd[2] );
extern OffT VG_(lseek) ( Int fd, OffT offset, Int whence );
|
|
From: <sv...@va...> - 2009-05-04 06:28:10
|
Author: njn
Date: 2009-05-04 07:28:01 +0100 (Mon, 04 May 2009)
New Revision: 9758
Log:
Remove some unnecessary code.
Modified:
branches/DARWIN/coregrind/m_debuginfo/readdwarf3.c
Modified: branches/DARWIN/coregrind/m_debuginfo/readdwarf3.c
===================================================================
--- branches/DARWIN/coregrind/m_debuginfo/readdwarf3.c 2009-05-04 06:14:37 UTC (rev 9757)
+++ branches/DARWIN/coregrind/m_debuginfo/readdwarf3.c 2009-05-04 06:28:01 UTC (rev 9758)
@@ -3766,12 +3766,6 @@
if (offset == 0) break;
pubname = get_AsciiZ( &pubnames );
TRACE_D3(" 0x%016llx \"%s\"\n", offset, pubname);
-#if defined(VGO_darwin)
- if (pubname[0] == '*') {
- /* GrP fixme versioned symbols get a leading * - why? */
- pubname++;
- }
-#endif
/* Read the DIE for this pubname */
if (offset > d_i_length) {
|
|
From: <sv...@va...> - 2009-05-04 06:14:42
|
Author: njn
Date: 2009-05-04 07:14:37 +0100 (Mon, 04 May 2009)
New Revision: 9757
Log:
Remove a dead function.
Modified:
branches/DARWIN/coregrind/m_debuginfo/debuginfo.c
Modified: branches/DARWIN/coregrind/m_debuginfo/debuginfo.c
===================================================================
--- branches/DARWIN/coregrind/m_debuginfo/debuginfo.c 2009-05-04 06:12:37 UTC (rev 9756)
+++ branches/DARWIN/coregrind/m_debuginfo/debuginfo.c 2009-05-04 06:14:37 UTC (rev 9757)
@@ -3404,29 +3404,6 @@
}
-
-// DDD: not used?
-Addr VG_(dlsym)(Char *fnname)
-{
- DebugInfo const *si = NULL;
-
- if (!fnname) return 0;
-
- while ((si = VG_(next_seginfo)(si))) {
- Int idx;
- for (idx = 0; idx < si->symtab_used; idx++) {
- if (si->symtab[idx].name) {
- if (0 == VG_(strcmp)(si->symtab[idx].name, fnname)) {
- return si->symtab[idx].addr;
- }
- }
- }
-
- }
-
- return 0;
-}
-
/*--------------------------------------------------------------------*/
/*--- end ---*/
/*--------------------------------------------------------------------*/
|
|
From: <sv...@va...> - 2009-05-04 06:12:39
|
Author: njn
Date: 2009-05-04 07:12:37 +0100 (Mon, 04 May 2009)
New Revision: 9756
Log:
Merge r9754 (#includes tweak) from the DARWIN branch. Also remove a
Darwin-specific code snippet that crept in from a previous commit.
Modified:
trunk/coregrind/m_aspacemgr/aspacemgr-common.c
trunk/coregrind/m_ume/priv_ume.h
trunk/coregrind/pub_core_ume.h
Modified: trunk/coregrind/m_aspacemgr/aspacemgr-common.c
===================================================================
--- trunk/coregrind/m_aspacemgr/aspacemgr-common.c 2009-05-04 06:09:56 UTC (rev 9755)
+++ trunk/coregrind/m_aspacemgr/aspacemgr-common.c 2009-05-04 06:12:37 UTC (rev 9756)
@@ -306,17 +306,6 @@
I_die_here; /* maybe just return False? */
return False;
-#elif defined(VGO_darwin)
- HChar tmp[VKI_MAXPATHLEN+1];
- if (0 == ML_(am_fcntl)(fd, VKI_F_GETPATH, (UWord)tmp)) {
- if (nbuf > 0) {
- VG_(strncpy)( buf, tmp, nbuf < sizeof(tmp) ? nbuf : sizeof(tmp) );
- buf[nbuf-1] = 0;
- }
- if (tmp[0] == '/') return True;
- }
- return False;
-
# else
# error Unknown OS
# endif
Modified: trunk/coregrind/m_ume/priv_ume.h
===================================================================
--- trunk/coregrind/m_ume/priv_ume.h 2009-05-04 06:09:56 UTC (rev 9755)
+++ trunk/coregrind/m_ume/priv_ume.h 2009-05-04 06:12:37 UTC (rev 9756)
@@ -30,17 +30,6 @@
#ifndef __PRIV_UME_H
#define __PRIV_UME_H
-#if defined(VGO_linux)
-# define HAVE_ELF
-# define HAVE_SCRIPT
-
-#elif defined(VGO_aix5)
-// The AIX port doesn't use UME.
-
-#else
-#error unknown architecture
-#endif
-
extern int VG_(do_exec_inner)(const HChar *exe, ExeInfo *info);
#if defined(HAVE_ELF)
Modified: trunk/coregrind/pub_core_ume.h
===================================================================
--- trunk/coregrind/pub_core_ume.h 2009-05-04 06:09:56 UTC (rev 9755)
+++ trunk/coregrind/pub_core_ume.h 2009-05-04 06:12:37 UTC (rev 9756)
@@ -36,6 +36,17 @@
// and exec'ing.
//--------------------------------------------------------------------
+#if defined(VGO_linux)
+# define HAVE_ELF
+# define HAVE_SCRIPT
+
+#elif defined(VGO_aix5)
+// The AIX port doesn't use UME.
+
+#else
+#error unknown architecture
+#endif
+
/*------------------------------------------------------------*/
/*--- Loading files ---*/
/*------------------------------------------------------------*/
|
|
From: <sv...@va...> - 2009-05-04 06:10:03
|
Author: njn Date: 2009-05-04 07:09:56 +0100 (Mon, 04 May 2009) New Revision: 9755 Log: Remove an out-of-date comment. Modified: branches/DARWIN/coregrind/m_debuginfo/debuginfo.c Modified: branches/DARWIN/coregrind/m_debuginfo/debuginfo.c =================================================================== --- branches/DARWIN/coregrind/m_debuginfo/debuginfo.c 2009-05-04 06:09:07 UTC (rev 9754) +++ branches/DARWIN/coregrind/m_debuginfo/debuginfo.c 2009-05-04 06:09:56 UTC (rev 9755) @@ -52,7 +52,6 @@ #include "pub_core_oset.h" #include "pub_core_stacktrace.h" // VG_(get_StackTrace) XXX: circular dependency -// DDD: HAVE_ELF, HAVE_MACHO should be in a pub_*.h file somewhere. #include "pub_core_ume.h" #include "priv_misc.h" /* dinfo_zalloc/free */ #include "priv_d3basics.h" /* ML_(pp_GX) */ |