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
(4) |
|
2
(5) |
3
(3) |
4
(3) |
5
(7) |
6
(7) |
7
(9) |
8
(10) |
|
9
(12) |
10
(26) |
11
(9) |
12
(6) |
13
(7) |
14
(15) |
15
(25) |
|
16
(20) |
17
(32) |
18
(11) |
19
(19) |
20
(22) |
21
(6) |
22
(8) |
|
23
(16) |
24
(25) |
25
(11) |
26
(16) |
27
(12) |
28
(15) |
29
(11) |
|
30
(5) |
31
(8) |
|
|
|
|
|
|
From: Eyal L. <ey...@ey...> - 2005-01-16 21:42:55
|
[original was too big - compress it]
[now the zip file was rejected - try tar]
========================
Jeremy Fitzhardinge wrote:
> On Sat, 2005-01-15 at 22:56 +1100, Eyal Lebedinsky wrote:
>
>>Jeremy Fitzhardinge wrote:
>>[trim]
>>
>>>So the real question is why there's an assertion failure?
>>>
>>>Are you positive that your processes are not crashing like this outside
>>>of Valgrind?
>>
>>Yes, it works just fine. The crash happens when the server is starting, and the
>>plain run has no problems running about 300 regression tests (some rather elaborate).
>>
>>To make it simple, I am attaching a small program that demonstrates the problem.
>>I posted it to the list a while ago, but it never hurts to do it again.
>>
>>This should make it easier to diagnose and (hopefully) fix.
>
> Unfortunately this works fine for me. Could you send me:
> * the full output of a failing run
zz33.log
> * uname -a and glibc version
$ uname -a
Linux e7 2.6.10-ac9 #1 SMP Fri Jan 14 08:56:38 EST 2005 i686 GNU/Linux
This was tested with other kernel versions, same results.
$ gcc --version
gcc (GCC) 3.3.5 (Debian 1:3.3.5-5)
Copyright (C) 2003 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
$ ldd zz33
libpthread.so.0 => /lib/tls/libpthread.so.0 (0xb7fc7000)
libc.so.6 => /lib/tls/libc.so.6 (0xb7e92000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0xb7fea000)
$ ls -l /lib/tls/libc-2.3.2.so /lib/tls/libpthread.so.0
-rw-r--r-- 1 root root 1253924 Dec 27 13:41 /lib/tls/libc-2.3.2.so
lrwxrwxrwx 1 root root 18 Jan 5 10:54 /lib/tls/libpthread.so.0 -> libpthread-0.60.so
> * distro?
Debian testing
> * strace -f output too
The vanilla run is zz33-strace-raw.log
The valgrind run is zz33-strace-vg.log
> Thanks.
>
> Oh, is there a bug filed on this?
No
--
Eyal Lebedinsky (ey...@ey...) <http://samba.org/eyal/>
If attaching .zip rename to .dat
|
|
From: Jeremy F. <je...@go...> - 2005-01-16 17:11:17
|
CVS commit by fitzhardinge:
Allocate the same-sized (internal, Valgrind) stack for the initial thread
as all the other threads, rather than using the growable stack the kernel
gave us. This change does not affect the behaviour of the client stack
at all.
M +10 -2 core.h 1.65
M +2 -2 stage1.c 1.32
M +1 -1 ume.h 1.17
M +18 -1 vg_main.c 1.237
M +0 -13 vg_scheduler.c 1.211
M +0 -10 linux/core_os.c 1.6
M +1 -0 x86/Makefile.am 1.21
M +3 -3 x86/jmp_with_stack.c 1.3
M +41 -4 x86-linux/syscalls.c 1.14
--- valgrind/coregrind/core.h #1.64:1.65
@@ -1717,9 +1717,17 @@ extern void VGA_(os_state_clear)(ThreadS
extern void VGA_(os_state_init)(ThreadState *);
-// Run a thread from beginning to end. Does not return.
+// Run a thread from beginning to end. Does not return if tid == VG_(master_tid).
void VGA_(thread_wrapper)(ThreadId tid);
+// Like VGA_(thread_wrapper), but it allocates a stack before calling
+// to VGA_(thread_wrapper) on that stack, as if it had been set up by
+// clone()
+void VGA_(main_thread_wrapper)(ThreadId tid) __attribute__ ((__noreturn__));
+
+// Return how many bytes of a thread's Valgrind stack are unused
+Int VGA_(stack_unused)(ThreadId tid);
+
// Terminate the process. Does not return.
-void VGA_(terminate)(ThreadId tid, VgSchedReturnCode src);
+void VGA_(terminate)(ThreadId tid, VgSchedReturnCode src) __attribute__((__noreturn__));
// wait until all other threads are dead
--- valgrind/coregrind/stage1.c #1.31:1.32
@@ -298,5 +298,5 @@ static void main2(void)
}
- jmp_with_stack(info.init_eip, (Addr)esp);
+ jmp_with_stack((void (*)(void))info.init_eip, (Addr)esp);
}
@@ -320,5 +320,5 @@ int main(int argc, char** argv)
/* move onto another stack so we can play with the main one */
- jmp_with_stack((Addr)main2, (Addr)stack + sizeof(stack));
+ jmp_with_stack(main2, (Addr)stack + sizeof(stack));
}
--- valgrind/coregrind/ume.h #1.16:1.17
@@ -48,5 +48,5 @@ void foreach_map(int (*fn)(char *start,
// Jump to a new 'ip' with the stack 'sp'.
-void jmp_with_stack(Addr ip, Addr sp) __attribute__((noreturn));
+void jmp_with_stack(void (*eip)(void), Addr sp) __attribute__((noreturn));
/*------------------------------------------------------------*/
--- valgrind/coregrind/vg_main.c #1.236:1.237
@@ -2411,4 +2411,6 @@ static void build_segment_map_callback (
void VG_(sanity_check_general) ( Bool force_expensive )
{
+ ThreadId tid;
+
VGP_PUSHCC(VgpCoreCheapSanity);
@@ -2452,6 +2454,21 @@ void VG_(sanity_check_general) ( Bool fo
}
+ /* Check that Segments and /proc/self/maps match up */
vg_assert(VG_(sanity_check_memory)());
+ /* Look for stack overruns. Visit all threads. */
+ for(tid = 1; tid < VG_N_THREADS; tid++) {
+ Int remains;
+
+ if (VG_(threads)[tid].status == VgTs_Empty ||
+ VG_(threads)[tid].status == VgTs_Zombie)
+ continue;
+
+ remains = VGA_(stack_unused)(tid);
+ if (remains < VKI_PAGE_SIZE)
+ VG_(message)(Vg_DebugMsg, "WARNING: Thread %d is within %d bytes of running out of stack!",
+ tid, remains);
+ }
+
/*
if ((sanity_fast_count % 500) == 0) VG_(mallocSanityCheckAll)();
@@ -2841,5 +2858,5 @@ int main(int argc, char **argv, char **e
vg_assert(VG_(master_tid) == 1);
- VGA_(thread_wrapper)(1);
+ VGA_(main_thread_wrapper)(1);
abort();
--- valgrind/coregrind/vg_scheduler.c #1.210:1.211
@@ -1142,5 +1142,4 @@ void scheduler_sanity ( ThreadId tid )
{
Bool bad = False;
- UInt *esp;
if (!VG_(is_running_thread)(tid)) {
@@ -1157,16 +1156,4 @@ void scheduler_sanity ( ThreadId tid )
bad = True;
}
-
- /* Check to see if we're running out of stack. Not much use
- really, since this is the outer part of the call tree. We
- should really fill the stack with a marker pattern and look for
- the low-water mark. */
- esp = (UInt *)&tid;
- if (esp < VG_(threads)[tid].os_state.stack + (VKI_PAGE_SIZE/sizeof(*esp)))
- VG_(message)(Vg_DebugMsg,
- "WARNING: Thread %d is within %d bytes of running out of stack!",
- VKI_PAGE_SIZE);
-
- /* Can't do much about checking client thread stack space */
}
--- valgrind/coregrind/linux/core_os.c #1.5:1.6
@@ -30,14 +30,4 @@ void VGA_(thread_wrapper)(ThreadId tid)
tid, &tid);
- if (tid == 1) {
- /* Thread 1 has its stack on the main process stack, and so
- is expandable. Do this so that backtraces are printed
- properly.
- XXX Perhaps it should have a private stack too?
- */
- tst->os_state.stack = (UInt *)VG_(valgrind_last) - VG_STACK_SIZE_W;
- tst->os_state.stacksize = VG_STACK_SIZE_W;
- }
-
VG_TRACK ( post_thread_create, tst->os_state.parent, tid );
--- valgrind/coregrind/x86/Makefile.am #1.20:1.21
@@ -23,4 +23,5 @@
helpers.S \
dispatch.S \
+ jmp_with_stack.c \
signal.c \
state.c
--- valgrind/coregrind/x86/jmp_with_stack.c #1.2:1.3
@@ -32,8 +32,8 @@
after exec; it therefore also clears all the other registers.
*/
-void jmp_with_stack(Addr eip, Addr esp)
+void jmp_with_stack(void (*eip)(void), Addr esp)
{
asm volatile ("movl %1, %%esp;" /* set esp */
- "pushl %%eax;" /* push esp */
+ "pushl %%eax;" /* push eip */
"xorl %%eax,%%eax;" /* clear registers */
"xorl %%ebx,%%ebx;"
--- valgrind/coregrind/x86-linux/syscalls.c #1.13:1.14
@@ -30,4 +30,5 @@
#include "core.h"
+#include "ume.h" /* for jmp_with_stack */
/* These are addresses within VGA_(client_syscall). See syscall.S for details. */
@@ -139,4 +140,6 @@ Bool VGA_(interrupted_syscall)(arch_thre
They're allocated lazily, but never freed.
*/
+#define FILL 0xdeadbeef
+
static UInt *allocstack(ThreadId tid)
{
@@ -159,9 +162,11 @@ static UInt *allocstack(ThreadId tid)
}
- esp = tst->os_state.stack + tst->os_state.stacksize;
+ for(esp = tst->os_state.stack; esp < (tst->os_state.stack + tst->os_state.stacksize); esp++)
+ *esp = FILL;
+ /* esp is left at top of stack */
if (0)
- VG_(printf)("stack for tid %d at %p; esp=%p\n",
- tid, tst->os_state.stack,
+ VG_(printf)("stack for tid %d at %p (%x); esp=%p\n",
+ tid, tst->os_state.stack, *tst->os_state.stack,
esp);
@@ -169,4 +174,36 @@ static UInt *allocstack(ThreadId tid)
}
+/* Return how many bytes of this stack have not been used */
+Int VGA_(stack_unused)(ThreadId tid)
+{
+ ThreadState *tst = VG_(get_ThreadState)(tid);
+ UInt *p;
+
+ for (p = tst->os_state.stack;
+ p && (p < (tst->os_state.stack + tst->os_state.stacksize));
+ p++)
+ if (*p != FILL)
+ break;
+
+ if (0)
+ VG_(printf)("p=%p %x tst->os_state.stack=%p\n", p, *p, tst->os_state.stack);
+
+ return (p - tst->os_state.stack) * sizeof(*p);
+}
+
+/*
+ Allocate a stack for the main thread, and call VGA_(thread_wrapper)
+ on that stack.
+ */
+void VGA_(main_thread_wrapper)(ThreadId tid)
+{
+ UInt *esp = allocstack(tid);
+
+ vg_assert(tid == VG_(master_tid));
+
+ *--esp = tid; /* set arg */
+ *--esp = 0; /* bogus return address */
+ jmp_with_stack((void (*)(void))VGA_(thread_wrapper), (Addr)esp);
+}
static Int start_thread(void *arg)
|
|
From: Naveen K. <g_n...@ya...> - 2005-01-16 15:07:58
|
--- Jeremy Fitzhardinge <je...@go...> wrote: > On Sat, 2005-01-15 at 21:38 -0800, Naveen Kumar > wrote: > > Fixed it. I changed the interpreter for stage2 to > > libc.so instead of ld.so. All executables by > default > > use ld.so and they work fine but the gcc exe > itself > > uses libc for some reason. So I decided to give > that a > > try and it worked. Dont know why hey stage2 is > > starting. Now I get a > > Excellent! > > > The address 0x601DFB80 is the stage2 elf brkbase. > Due > > to this(brk-ENOMEM) any malloc calls or other > calls > > that depend on it fail. Any pointers ??? > > stage1.c deliberately sets the RLIMIT_DATA limit to > 0 so that all brk > calls fail. glibc's malloc() falls back to using > mmap, which is what we > want because brk() will put stuff in the wrong > place, but we've padded > the address space so that mmap goes in the right > place. Perhaps you > could try overriding malloc &c with versions that > use mmap, or perhaps > there's another malloc library which comes with > Solaris which does this > (or maybe a mode switch for libc malloc). > > BTW, what address-space layout are you using? > > J What address-space layout ? You mean what kickstart_base etc ? G __________________________________ Do you Yahoo!? All your favorites on one personal page Try My Yahoo! http://my.yahoo.com |
|
From: Tom H. <th...@cy...> - 2005-01-16 12:56:56
|
CVS commit by thughes:
Add some more cases for the clone suppressions.
M +21 -0 glibc-2.3.supp 1.19
--- valgrind/glibc-2.3.supp #1.18:1.19
@@ -282,4 +282,25 @@
clone(parent_tidptr)
fun:clone
+ fun:pthread_create
+}
+{
+ LinuxThread clone use (child_tidptr)
+ Memcheck:Param
+ clone(child_tidptr)
+ fun:clone
+ fun:pthread_create
+}
+{
+ LinuxThread clone use (tlsinfo)
+ Memcheck:Param
+ clone(tlsinfo)
+ fun:clone
+ fun:pthread_create
+}
+{
+ LinuxThread clone use (parent_tidptr)
+ Memcheck:Param
+ clone(parent_tidptr)
+ fun:clone
fun:pthread_create@@GLIBC_2.1
}
|
|
From: Tom H. <th...@cy...> - 2005-01-16 12:37:53
|
CVS commit by thughes:
Removed stack_guard_size from the thread state as it is no longer used.
M +0 -4 core.h 1.64
M +0 -1 vg_scheduler.c 1.210
M +0 -2 x86-linux/syscalls.c 1.13
--- valgrind/coregrind/core.h #1.63:1.64
@@ -675,8 +675,4 @@ struct _ThreadState {
Addr stack_base;
- /* The allocated size of this thread's stack's guard area (permanently
- zero if this is ThreadId == 0, since we didn't allocate its stack) */
- UInt stack_guard_size;
-
/* Address of the highest legitimate word in this stack. This is
used for error messages only -- not critical for execution
--- valgrind/coregrind/vg_scheduler.c #1.209:1.210
@@ -621,5 +621,4 @@ void VG_(scheduler_init) ( void )
VG_(threads)[i].stack_size = 0;
VG_(threads)[i].stack_base = (Addr)NULL;
- VG_(threads)[i].stack_guard_size = 0;
VG_(threads)[i].stack_highest_word = (Addr)NULL;
--- valgrind/coregrind/x86-linux/syscalls.c #1.12:1.13
@@ -276,5 +276,4 @@ static Int do_clone(ThreadId ptid,
ctst->stack_base = seg->addr;
ctst->stack_size = (Addr)PGROUNDUP(esp) - seg->addr;
- ctst->stack_guard_size = 0;
if (debug)
@@ -286,5 +285,4 @@ static Int do_clone(ThreadId ptid,
ctst->stack_base = 0;
ctst->stack_size = 0;
- ctst->stack_guard_size = 0;
}
|
|
From: Tom H. <th...@cy...> - 2005-01-16 12:01:09
|
CVS commit by thughes:
Fix sigkill test results - older systems don't block 32 or 33 and
newer systems block both.
A sigkill.stderr.exp2 1.1
M +1 -1 Makefile.am 1.26
M +2 -2 sigkill.stderr.exp 1.7
--- valgrind/corecheck/tests/Makefile.am #1.25:1.26
@@ -31,5 +31,5 @@
pth_once.stderr.exp pth_once.stdout.exp pth_once.vgtest \
pth_rwlock.stderr.exp pth_rwlock.vgtest \
- sigkill.stderr.exp sigkill.vgtest \
+ sigkill.stderr.exp sigkill.stderr.exp2 sigkill.vgtest \
res_search.stderr.exp res_search.stdout.exp res_search.vgtest \
vgprintf.stderr.exp vgprintf.stdout.exp vgprintf.vgtest
--- valgrind/corecheck/tests/sigkill.stderr.exp #1.6:1.7
@@ -97,6 +97,6 @@
getting signal 31: Success
-setting signal 32: Invalid argument
-getting signal 32: Invalid argument
+setting signal 32: Success
+getting signal 32: Success
setting signal 33: Success
|
|
From: Tom H. <th...@cy...> - 2005-01-16 11:30:37
|
CVS commit by thughes: Fix up exec-sigmask results - my tests show that RH72-RH9 don't suppress any signals and FC3 is supressing 32 and 33 presumably for internal use. M +0 -1 exec-sigmask.stdout.exp 1.3 M +2 -1 exec-sigmask.stdout.exp2 1.2 --- valgrind/none/tests/exec-sigmask.stdout.exp #1.2:1.3 @@ -1 +0,0 @@ -full: signal 32 missing from mask --- valgrind/none/tests/exec-sigmask.stdout.exp2 #1.1:1.2 @@ -1 +1,2 @@ -signal 32 missing from mask +full: signal 32 missing from mask +full: signal 33 missing from mask |
|
From: Tom H. <th...@cy...> - 2005-01-16 11:15:51
|
CVS commit by thughes: Removed filter_int reference from makefile. M +1 -1 Makefile.am 1.4 --- valgrind/none/tests/x86/Makefile.am #1.3:1.4 @@ -1,3 +1,3 @@ -noinst_SCRIPTS = filter_cpuid filter_int filter_stderr gen_insn_test.pl +noinst_SCRIPTS = filter_cpuid filter_stderr gen_insn_test.pl CLEANFILES = $(addsuffix .c,$(INSN_TESTS)) |
|
From: Tom H. <th...@cy...> - 2005-01-16 11:14:55
|
CVS commit by thughes:
Fix address anonymisation properly this time - the last patch took it
away from the instruction sequences reports but those can change as well
because we always report four bytes but it may only be the first few that
we have generated.
M +1 -1 blockfault.stderr.exp 1.3
M +1 -1 faultstatus.stderr.exp 1.3
M +1 -1 filter_stderr 1.6
M +1 -2 x86/filter_cpuid 1.2
M +1 -1 x86/int.stderr.exp 1.3
M +0 -1 x86/int.vgtest 1.4
R x86/filter_int 1.2
--- valgrind/none/tests/blockfault.stderr.exp #1.2:1.3
@@ -2,5 +2,5 @@
Process terminating with default action of signal 11 (SIGSEGV)
- Access not within mapped region at address 0x4D2
+ Access not within mapped region at address 0x........
at 0x........: main (blockfault.c:28)
--- valgrind/none/tests/faultstatus.stderr.exp #1.2:1.3
@@ -3,5 +3,5 @@
Test 1: PASS 2
Test 2: PASS 3
-Test 3: disInstr: unhandled instruction bytes: 0xF 0xB 0xC9 0xC3
+Test 3: disInstr: unhandled instruction bytes: 0x........ 0x........ 0x........ 0x........
at 0x........: test4 (faultstatus.c:108)
PASS 4
--- valgrind/none/tests/filter_stderr #1.5:1.6
@@ -6,3 +6,3 @@
# Anonymise addresses
-sed "s/at 0x[0-9A-Fa-f]*:/at 0x........:/g"
+$dir/../../tests/filter_addresses
--- valgrind/none/tests/x86/filter_cpuid #1.1:1.2
@@ -3,4 +3,3 @@
dir=`dirname $0`
-$dir/filter_stderr | $dir/../../../tests/filter_addresses
-
+$dir/filter_stderr
--- valgrind/none/tests/x86/int.stderr.exp #1.2:1.3
@@ -1,4 +1,4 @@
-disInstr: unhandled instruction bytes: 0xCD 0x81 0x83 0xEC
+disInstr: unhandled instruction bytes: 0x........ 0x........ 0x........ 0x........
at 0x........: main (int.c:5)
--- valgrind/none/tests/x86/int.vgtest #1.3:1.4
@@ -1,3 +1,2 @@
prog: int
-stderr_filter: filter_int
cleanup: rm vgcore.pid*
|
|
From: Tom H. <th...@cy...> - 2005-01-16 11:05:09
|
CVS commit by thughes:
Anonymise fault addresses as they can change between different machines.
M +1 -0 .cvsignore 1.24
M +1 -1 blockfault.stderr.exp 1.2
M +1 -1 faultstatus.stderr.exp 1.2
M +4 -1 filter_stderr 1.5
M +1 -1 x86/filter_int 1.2
M +1 -1 x86/int.stderr.exp 1.2
--- valgrind/none/tests/.cvsignore #1.23:1.24
@@ -10,4 +10,5 @@
exec-sigmask
execve
+faultstatus
fcntl_setown
floored
--- valgrind/none/tests/blockfault.stderr.exp #1.1:1.2
@@ -3,4 +3,4 @@
Process terminating with default action of signal 11 (SIGSEGV)
Access not within mapped region at address 0x4D2
- at 0x804852D: main (blockfault.c:28)
+ at 0x........: main (blockfault.c:28)
--- valgrind/none/tests/faultstatus.stderr.exp #1.1:1.2
@@ -4,5 +4,5 @@
Test 2: PASS 3
Test 3: disInstr: unhandled instruction bytes: 0xF 0xB 0xC9 0xC3
- at 0x8048970: test4 (faultstatus.c:108)
+ at 0x........: test4 (faultstatus.c:108)
PASS 4
Test 4: PASS 5
--- valgrind/none/tests/filter_stderr #1.4:1.5
@@ -3,3 +3,6 @@
dir=`dirname $0`
-$dir/../../tests/filter_stderr_basic
+$dir/../../tests/filter_stderr_basic |
+
+# Anonymise addresses
+sed "s/at 0x[0-9A-Fa-f]*:/at 0x........:/g"
--- valgrind/none/tests/x86/filter_int #1.1:1.2
@@ -3,4 +3,4 @@
dir=`dirname $0`
-$dir/filter_stderr | $dir/../../../tests/filter_addresses
+$dir/filter_stderr | sed "s/at address 0x[0-9A-Fa-f]*/at address 0x......../g"
--- valgrind/none/tests/x86/int.stderr.exp #1.1:1.2
@@ -1,4 +1,4 @@
-disInstr: unhandled instruction bytes: 0x........ 0x........ 0x........ 0x........
+disInstr: unhandled instruction bytes: 0xCD 0x81 0x83 0xEC
at 0x........: main (int.c:5)
|
|
From: Tom H. <th...@cy...> - 2005-01-16 10:52:49
|
CVS commit by thughes:
Add a couple more is_smp_system related suppressions.
M +19 -0 glibc-2.3.supp 1.18
--- valgrind/glibc-2.3.supp #1.17:1.18
@@ -264,4 +264,12 @@
fun:strstr
fun:pthread_initialize
+ obj:/lib/i686/libpthread-0.10.so
+ obj:/lib/i686/libpthread-0.10.so
+}
+{
+ Unterminated strstr string in is_smp_system() (LinuxThreads)
+ Memcheck:Cond
+ fun:strstr
+ fun:pthread_initialize
obj:/lib/libpthread-0.10.so
obj:/lib/libpthread-0.10.so
@@ -319,2 +327,13 @@
}
+##----------------------------------------------------------------------##
+## glibc-2.3.4 on FC3
+## Assumes that sysctl returns \0-terminated strings in is_smp_system
+{
+ Unterminated strstr string in is_smp_system() (NPTL)
+ Memcheck:Cond
+ fun:strstr
+ fun:__pthread_initialize_minimal_internal
+ obj:/lib/tls/libpthread-2.3.4.so
+ obj:/lib/tls/libpthread-2.3.4.so
+}
|
|
From: Jeremy F. <je...@go...> - 2005-01-16 08:58:27
|
On Sat, 2005-01-15 at 21:38 -0800, Naveen Kumar wrote: > Fixed it. I changed the interpreter for stage2 to > libc.so instead of ld.so. All executables by default > use ld.so and they work fine but the gcc exe itself > uses libc for some reason. So I decided to give that a > try and it worked. Dont know why hey stage2 is > starting. Now I get a Excellent! > The address 0x601DFB80 is the stage2 elf brkbase. Due > to this(brk-ENOMEM) any malloc calls or other calls > that depend on it fail. Any pointers ??? stage1.c deliberately sets the RLIMIT_DATA limit to 0 so that all brk calls fail. glibc's malloc() falls back to using mmap, which is what we want because brk() will put stuff in the wrong place, but we've padded the address space so that mmap goes in the right place. Perhaps you could try overriding malloc &c with versions that use mmap, or perhaps there's another malloc library which comes with Solaris which does this (or maybe a mode switch for libc malloc). BTW, what address-space layout are you using? J |
|
From: Naveen K. <g_n...@ya...> - 2005-01-16 05:38:22
|
Fixed it. I changed the interpreter for stage2 to
libc.so instead of ld.so. All executables by default
use ld.so and they work fine but the gcc exe itself
uses libc for some reason. So I decided to give that a
try and it worked. Dont know why hey stage2 is
starting. Now I get a
valgrind: Missing --tool option
Can't open /export/home/msat/my_local//lib/valgrind:
Not enough space (installation problem?)
valgrind: Use --help for more information.
The opendir is failing. A 'truss valgrind' showed this
......
open64("/export/home/msat/my_local//lib/valgrind",
O_RDONLY|O_NDELAY) = 7
fcntl(7, F_SETFD, 0x00000001) = 0
fstat64(7, 0x080479D4) = 0
brk(0x601DFB80) Err#12
ENOMEM
close(7) = 0
brk(0x601DFB80) Err#12
ENOMEM
..........
The address 0x601DFB80 is the stage2 elf brkbase. Due
to this(brk-ENOMEM) any malloc calls or other calls
that depend on it fail. Any pointers ???
Thanks
Naveen
--- Jeremy Fitzhardinge <je...@go...> wrote:
> On Fri, 2005-01-14 at 12:45 -0800, Naveen Kumar
> wrote:
> > -Wl,--export-dynamic to -static for stage2_LDFLAGS
> in
> > coregrind/Makefile.in
>
> You probably still need the -Wl,--export-dynamic,
> because that allows
> loaded .so files to see the public symbols. I'm
> guessing the reason
> you're still getting an ld.so reference is because
> of -ldl, which is
> necessary so that Valgrind can load a tool .so file.
> You might want to
> do a temporary hack and statically link nulgrind
> with stage2, and remove
> all the dlopen calls (hm, that could get fiddley
> with all the dlsym
> calls in there), and -ldl.
>
> > I compiled a simple hello world prog with the
> -static
> > option and it worked. In the above case it doesn't
> > seem to. This is the full command line
> >
> > gcc -D__SunOS__ -Winline -Wall -Wshadow -O
> > -fno-omit-frame-pointer
> -mpreferred-stack-boundary=2
> > -g -DELFSZ=32 -lsocket /usr/lib/libposix4.so -o
> > stage2 -static -Wl,-e,_ume_entry -g
> > -Wl,-defsym,kickstart_base=0x60000000
> > -Wl,-T,x86/stage2.lds -Wl,-version-script
> > ./valgrind.vs ume.o ume_entry.o ume_go.o
> > vg_scheduler.o vg_default.o vg_demangle.o
> > vg_dispatch.o vg_errcontext.o vg_execontext.o
> > vg_from_ucode.o vg_hashtable.o vg_helpers.o
> > vg_instrument.o vg_main.o vg_malloc2.o vg_memory.o
> > vg_messages.o vg_mylibc.o vg_needs.o
> vg_procselfmaps.o
> > vg_proxylwp.o vg_dummy_profile.o vg_signals.o
> > vg_symtab2.o vg_dwarf.o vg_stabs.o vg_skiplist.o
> > vg_symtypes.o vg_syscalls.o vg_syscall.o
> vg_to_ucode.o
> > vg_toolint.o vg_translate.o vg_transtab.o vg_ldt.o
> > vg_cpuid.o demangle/cp-demangle.o
> demangle/cplus-dem.o
> > demangle/dyn-string.o demangle/safe-ctype.o
>
> What version are you using? Are you tracking CVS?
> There doesn't seem
> to be enough in that link line; I would expect to
> see solaris/libos.a
> and x86-solaris/libplatform.a there.
>
> > There was a problem with the AUXV which made the
> > dynamic linker to crash. Basically the AUXV wasn't
> > positioned correctly. The culprit was in fix_auxv
> >
> > auxv -= delta/sizeof(*auxv);
> >
> > what happens if delta isn't a multiple of
> > sizeof(*auxv) ?
>
> I think Paul had the same problem with the PPC port.
> It does look
> wrong. Does "auxv -= new_entries" work?
>
> > I am going to see if I can
> > obtain the Solaris sources. Then this should make
> the
> > work easier.
>
> Yep.
>
> J
>
>
>
>
-------------------------------------------------------
> The SF.Net email is sponsored by: Beat the
> post-holiday blues
> Get a FREE limited edition SourceForge.net t-shirt
> from ThinkGeek.
> It's fun and FREE -- well,
> almost....http://www.thinkgeek.com/sfshirt
> _______________________________________________
> Valgrind-developers mailing list
> Val...@li...
>
https://lists.sourceforge.net/lists/listinfo/valgrind-developers
>
__________________________________
Do you Yahoo!?
Yahoo! Mail - Easier than ever with enhanced search. Learn more.
http://info.mail.yahoo.com/mail_250
|
|
From: Tom H. <to...@co...> - 2005-01-16 03:24:28
|
Nightly build on dunsmere ( Fedora Core 3 ) started at 2005-01-16 03:20:04 GMT Checking out source tree ... done Configuring ... done Building ... done Running regression tests ... done Last 20 lines of log.verbose follow helgrind/tests/readshared (stderr) helgrind/tests/x86/insn_cmov (stderr) massif/tests/toobig-allocs (stderr) massif/tests/true_html (stderr) massif/tests/true_text (stderr) memcheck/tests/badjump (stderr) memcheck/tests/brk (stderr) memcheck/tests/pth_once (stderr) memcheck/tests/scalar (stderr) memcheck/tests/scalar_supp (stderr) memcheck/tests/threadederrno (stderr) memcheck/tests/vgtest_ume (stderr) none/tests/blockfault (stderr) none/tests/exec-sigmask (stdout) none/tests/faultstatus (stderr) none/tests/munmap_exe (stderr) none/tests/sigcontext (stderr) none/tests/yield (stdout) make: *** [regtest] Error 1 |
|
From: Tom H. <th...@cy...> - 2005-01-16 03:20:51
|
Nightly build on audi ( Red Hat 9 ) started at 2005-01-16 03:15:02 GMT Checking out source tree ... done Configuring ... done Building ... done Running regression tests ... done Last 20 lines of log.verbose follow helgrind/tests/race (stderr) helgrind/tests/race2 (stderr) helgrind/tests/readshared (stderr) massif/tests/toobig-allocs (stderr) massif/tests/true_html (stderr) massif/tests/true_text (stderr) memcheck/tests/badpoll (stderr) memcheck/tests/buflen_check (stderr) memcheck/tests/execve (stderr) memcheck/tests/execve2 (stderr) memcheck/tests/scalar (stderr) memcheck/tests/scalar_exit_group (stderr) memcheck/tests/scalar_supp (stderr) memcheck/tests/writev (stderr) none/tests/blockfault (stderr) none/tests/exec-sigmask (stdout) none/tests/faultstatus (stderr) none/tests/yield (stdout) make: *** [regtest] Error 1 |
|
From: Tom H. <th...@cy...> - 2005-01-16 03:14:34
|
Nightly build on ginetta ( Red Hat 8.0 ) started at 2005-01-16 03:10:01 GMT Checking out source tree ... done Configuring ... done Building ... done Running regression tests ... done Last 20 lines of log.verbose follow == 196 tests, 15 stderr failures, 2 stdout failures ================= corecheck/tests/sigkill (stderr) helgrind/tests/allok (stderr) helgrind/tests/deadlock (stderr) helgrind/tests/inherit (stderr) helgrind/tests/race (stderr) helgrind/tests/race2 (stderr) helgrind/tests/readshared (stderr) massif/tests/toobig-allocs (stderr) massif/tests/true_html (stderr) massif/tests/true_text (stderr) memcheck/tests/pth_once (stderr) memcheck/tests/scalar (stderr) memcheck/tests/threadederrno (stderr) none/tests/blockfault (stderr) none/tests/exec-sigmask (stdout) none/tests/faultstatus (stderr) none/tests/yield (stdout) make: *** [regtest] Error 1 |
|
From: Tom H. <th...@cy...> - 2005-01-16 03:08:52
|
Nightly build on alvis ( Red Hat 7.3 ) started at 2005-01-16 03:05:01 GMT Checking out source tree ... done Configuring ... done Building ... done Running regression tests ... done Last 20 lines of log.verbose follow corecheck/tests/sigkill (stderr) helgrind/tests/allok (stderr) helgrind/tests/deadlock (stderr) helgrind/tests/inherit (stderr) helgrind/tests/race (stderr) helgrind/tests/race2 (stderr) helgrind/tests/readshared (stderr) massif/tests/toobig-allocs (stderr) massif/tests/true_html (stderr) massif/tests/true_text (stderr) memcheck/tests/pth_once (stderr) memcheck/tests/scalar (stderr) memcheck/tests/threadederrno (stderr) memcheck/tests/vgtest_ume (stderr) none/tests/blockfault (stderr) none/tests/exec-sigmask (stdout) none/tests/faultstatus (stderr) none/tests/yield (stdout) make: *** [regtest] Error 1 |
|
From: Jeremy F. <je...@go...> - 2005-01-16 02:00:29
|
CVS commit by fitzhardinge:
It seems some systems place main()'s arguments quite a way down the
stack, so that finding valgrind_last by rounding &argc up to the next
64k boundary doesn't necesarily find the top of the stack's segment.
This doesn't matter too much, so this change loosens the tests for
finding Valgrind's segments by looking for any segment which starts before
VG_(valgrind_last) rather than ending before (or at) VG_(valgrind_last).
M +2 -2 vg_main.c 1.236
--- valgrind/coregrind/vg_main.c #1.235:1.236
@@ -2318,5 +2318,5 @@ static void build_valgrind_map_callback
start allocating more memory (note: heap is OK, it's just mmap
which is the problem here). */
- if (start >= VG_(client_end) && (start+size-1) <= VG_(valgrind_last)) {
+ if (start >= VG_(client_end) && start < VG_(valgrind_last)) {
if (0)
VG_(printf)("init1: %p-%p prot %s\n",
@@ -2364,5 +2364,5 @@ static void build_segment_map_callback (
flags |= SF_FILE;
- if (start >= VG_(client_end) && (start+size-1) <= VG_(valgrind_last)) {
+ if (start >= VG_(client_end) && start < VG_(valgrind_last)) {
Segment *s = VG_(find_segment)(start);
|
|
From: Jeremy F. <je...@go...> - 2005-01-16 01:42:02
|
CVS commit by fitzhardinge:
Add a test to make sure that the siginfo for a fault signal looks good.
A faultstatus.c 1.1 [no copyright]
A faultstatus.stderr.exp 1.1
A faultstatus.vgtest 1.1
M +3 -1 Makefile.am 1.57
--- valgrind/none/tests/Makefile.am #1.56:1.57
@@ -22,4 +22,5 @@
exec-sigmask.stdout.exp2 exec-sigmask.stderr.exp \
execve.vgtest execve.stdout.exp execve.stderr.exp \
+ faultstatus.vgtest faultstatus.stderr.exp \
fcntl_setown.vgtest fcntl_setown.stdout.exp fcntl_setown.stderr.exp \
floored.stderr.exp floored.stdout.exp \
@@ -60,5 +61,5 @@
check_PROGRAMS = \
args bitfield1 blockfault closeall coolo_strlen \
- discard exec-sigmask execve fcntl_setown floored fork \
+ discard exec-sigmask execve faultstatus fcntl_setown floored fork \
fucomip getseg \
munmap_exe map_unaligned map_unmap mq mremap rcrl readline1 \
@@ -82,4 +83,5 @@
exec_sigmask_SOURCES = exec-sigmask.c
execve_SOURCES = execve.c
+faultstatus_SOURCES = faultstatus.c
fcntl_setown_SOURCES = fcntl_setown.c
fork_SOURCES = fork.c
|
|
From: Jeremy F. <je...@go...> - 2005-01-16 01:13:41
|
On Sat, 2005-01-15 at 22:56 +1100, Eyal Lebedinsky wrote:
> Jeremy Fitzhardinge wrote:
> [trim]
> > So the real question is why there's an assertion failure?
> >
> > Are you positive that your processes are not crashing like this outside
> > of Valgrind?
>
> Yes, it works just fine. The crash happens when the server is starting, and the
> plain run has no problems running about 300 regression tests (some rather elaborate).
>
> To make it simple, I am attaching a small program that demonstrates the problem.
> I posted it to the list a while ago, but it never hurts to do it again.
>
> This should make it easier to diagnose and (hopefully) fix.
Unfortunately this works fine for me. Could you send me:
* the full output of a failing run
* uname -a and glibc version
* distro?
* strace -f output too
Thanks.
Oh, is there a bug filed on this?
J
|