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: Jeremy F. <je...@go...> - 2005-01-17 23:19:13
|
CVS commit by fitzhardinge:
Check that the compiler supports __thread before trying to use it.
A tls.h 1.1 [no copyright]
M +11 -0 tls.c 1.2
M +4 -0 tls2.c 1.2
M +4 -0 tls2_so.c 1.2
M +5 -1 tls_so.c 1.2
--- valgrind/none/tests/tls.c #1.1:1.2
@@ -4,4 +4,8 @@
#include <time.h>
+#include "tls.h"
+
+#ifdef HAVE_TLS
+
#define COUNT 10
@@ -100,2 +104,9 @@ int main()
return 0;
}
+#else
+int main()
+{
+ printf("FAILED: no compiler support for __thread\n");
+ return 1;
+}
+#endif
--- valgrind/none/tests/tls2.c #1.1:1.2
@@ -1 +1,5 @@
+#include "tls.h"
+
+#ifdef HAVE_TLS
__thread int static_extern;
+#endif
--- valgrind/none/tests/tls2_so.c #1.1:1.2
@@ -1 +1,5 @@
+#include "tls.h"
+
+#ifdef HAVE_TLS
__thread int so_extern;
+#endif
--- valgrind/none/tests/tls_so.c #1.1:1.2
@@ -1,2 +1,5 @@
+#include "tls.h"
+
+#ifdef HAVE_TLS
#include <pthread.h>
@@ -19,2 +22,3 @@ int *test_so_global(void)
return &global;
}
+#endif
|
|
From: Jeremy F. <je...@go...> - 2005-01-17 22:50:25
|
On Tue, 2005-01-18 at 09:12 +1100, Eyal Lebedinsky wrote: > abort.log is a copy+paste off my xterm of the abort I had last night. It just quietly died with SIGSEGV? And then kept doing that once it started? Very odd. J |
|
From: Jeremy F. <je...@go...> - 2005-01-17 22:49:29
|
CVS commit by fitzhardinge: Disable susphello test. Sometimes it just doesn't terminate, even when run natively. The code looks suspect and racy. M +2 -0 susphello.vgtest 1.2 --- valgrind/none/tests/susphello.vgtest #1.1:1.2 @@ -1 +1,3 @@ prog: susphello +# susphello seems broken; sometimes it just doesn't terminate (even natively) +prereq: false |
|
From: Jeremy F. <je...@go...> - 2005-01-17 22:37:38
|
CVS commit by fitzhardinge:
Add tests to check stack-growth happens properly. Also, re-instate TLS
tests, with an appropraite pre-req to check they only run on TLS systems.
A sigstackgrowth.c 1.1 [no copyright]
A sigstackgrowth.stderr.exp 1.1
A sigstackgrowth.stdout.exp 1.1
A sigstackgrowth.vgtest 1.1
A stackgrowth.c 1.1 [no copyright]
A stackgrowth.stderr.exp 1.1
A stackgrowth.stdout.exp 1.1
A stackgrowth.vgtest 1.1
M +16 -10 Makefile.am 1.58
M +1 -0 tls.vgtest 1.3
--- valgrind/none/tests/Makefile.am #1.57:1.58
@@ -52,5 +52,7 @@
shorts.stderr.exp shorts.vgtest \
sigcontext.stdout.exp sigcontext.stderr.exp sigcontext.vgtest \
+ sigstackgrowth.stdout.exp sigstackgrowth.stderr.exp sigstackgrowth.vgtest \
smc1.stderr.exp smc1.stdout.exp smc1.vgtest \
+ stackgrowth.stdout.exp stackgrowth.stderr.exp stackgrowth.vgtest \
syscall-restart1.vgtest syscall-restart1.stdout.exp syscall-restart1.stderr.exp \
syscall-restart2.vgtest syscall-restart2.stdout.exp syscall-restart2.stderr.exp \
@@ -66,6 +68,8 @@
resolv rlimit_nofile sem semlimit sha1_test \
shortpush shorts sigcontext \
+ stackgrowth sigstackgrowth \
smc1 susphello pending pth_blockedsig pth_stackalign \
syscall-restart1 syscall-restart2 system \
+ tls tls.so tls2.so \
coolo_sigaction gxx304 yield
@@ -109,19 +113,21 @@
shorts_SOURCES = shorts.c
sigcontext_SOURCES = sigcontext.c
+sigstackgrowth_SOURCES = sigstackgrowth.c
susphello_SOURCES = susphello.c
susphello_LDADD = -lpthread
+stackgrowth_SOURCES = stackgrowth.c
syscall_restart1_SOURCES = syscall-restart1.c
syscall_restart2_SOURCES = syscall-restart2.c
system_SOURCES = system.c
-#tls_SOURCES = tls.c tls2.c
-#tls_DEPENDENCIES = tls.so
-#tls_LDFLAGS = -Wl,-rpath,$(srcdir)
-#tls_LDADD = tls.so -lpthread
-#tls_so_SOURCES = tls_so.c
-#tls_so_LDADD = tls2.so
-#tls_so_DEPENDENCIES = tls2.so
-#tls_so_LDFLAGS = -Wl,-rpath,$(srcdir) -shared
-#tls2_so_SOURCES = tls2_so.c
-#tls2_so_LDFLAGS = -shared
+tls_SOURCES = tls.c tls2.c
+tls_DEPENDENCIES = tls.so
+tls_LDFLAGS = -Wl,-rpath,$(srcdir)
+tls_LDADD = tls.so -lpthread
+tls_so_SOURCES = tls_so.c
+tls_so_LDADD = tls2.so
+tls_so_DEPENDENCIES = tls2.so
+tls_so_LDFLAGS = -Wl,-rpath,$(srcdir) -shared
+tls2_so_SOURCES = tls2_so.c
+tls2_so_LDFLAGS = -shared
yield_SOURCES = yield.c
yield_CFLAGS = $(AM_CFLAGS) -D__$(VG_ARCH)__
|
|
From: Jeremy F. <je...@go...> - 2005-01-17 22:33:47
|
CVS commit by fitzhardinge:
Allow .vgtest files to have comments and blank lines.
M +3 -1 vg_regtest.in 1.28
--- valgrind/tests/vg_regtest.in #1.27:1.28
@@ -182,5 +182,7 @@
while (my $line = <INPUTFILE>) {
- if ($line =~ /^\s*vgopts:\s*(.*)$/) {
+ if ($line =~ /^\s*#/ || $line =~ /^\s*$/) {
+ next;
+ } elsif ($line =~ /^\s*vgopts:\s*(.*)$/) {
$vgopts = $1;
} elsif ($line =~ /^\s*prog:\s*(.*)$/) {
|
|
From: Jeremy F. <je...@go...> - 2005-01-17 22:33:04
|
CVS commit by fitzhardinge:
Call syscall POST functions when the syscall finishes as a result
of a signal. Mostly they're interrupted, but some syscalls complete
successfully, or at least write memory, when interrupted.
(Unrelated cleanup: remove duplicate VG_(clo_track_fds) tests in
vg_syscalls.c.)
A memcheck/tests/post-syscall.c 1.1 [no copyright]
A memcheck/tests/post-syscall.stderr.exp 1.1
A memcheck/tests/post-syscall.stdout.exp 1.1
A memcheck/tests/post-syscall.vgtest 1.1
M +15 -5 coregrind/core.h 1.67
M +2 -0 coregrind/vg_scheduler.c 1.212
M +6 -2 coregrind/vg_signals.c 1.111
M +90 -61 coregrind/vg_syscalls.c 1.233
M +23 -9 coregrind/x86-linux/syscalls.c 1.16
M +3 -0 memcheck/tests/Makefile.am 1.64
--- valgrind/memcheck/tests/Makefile.am #1.63:1.64
@@ -50,4 +50,5 @@
null_socket.stderr.exp null_socket.vgtest \
overlap.stderr.exp overlap.stdout.exp overlap.vgtest \
+ post-syscall.stderr.exp post-syscall.stderr.out post-syscall.vgtest \
pth_once.stderr.exp pth_once.stdout.exp pth_once.vgtest \
realloc1.stderr.exp realloc1.vgtest \
@@ -87,4 +88,5 @@
nanoleak new_nothrow \
null_socket overlap \
+ post-syscall \
realloc1 realloc2 realloc3 \
scalar scalar_exit_group scalar_fork scalar_supp scalar_vfork \
@@ -138,4 +140,5 @@
null_socket_SOURCES = null_socket.c
overlap_SOURCES = overlap.c
+post_syscall_SOURCES = post-syscall.c
realloc1_SOURCES = realloc1.c
realloc2_SOURCES = realloc2.c
--- valgrind/coregrind/core.h #1.66:1.67
@@ -656,4 +656,12 @@ struct _ThreadState {
struct SigQueue *sig_queue;
+ /* Syscall the Thread is currently running; -1 if none. Should only
+ be set while Thread is in VgTs_WaitSys. */
+ Int syscallno;
+
+ /* A value the Tool wants to pass from its pre-syscall to its
+ post-syscall function. */
+ void *tool_pre_syscall_value;
+
/* Stacks. When a thread slot is freed, we don't deallocate its
stack; we just leave it lying around for the next use of the
@@ -1259,4 +1267,6 @@ extern Char *VG_(resolve_filename)(Int f
extern void VG_(client_syscall) ( ThreadId tid );
+extern void VG_(post_syscall) ( ThreadId tid );
+
extern Bool VG_(is_kerror) ( Word res );
@@ -1827,9 +1837,9 @@ extern void VGA_(client_syscall)(Int sys
/*
Fix up the thread's state because a syscall may have been
- interrupted with a signal. Returns True if a syscall was hit by a
- signal, and the appropriate adjustment has been made to the
- thread's state, or False if not.
+ interrupted with a signal. Returns True if the syscall completed
+ (either interrupted or finished normally), or False if it was
+ restarted (or the signal didn't actually interrupt a syscall).
*/
-extern Bool VGA_(interrupted_syscall)(arch_thread_t *th_regs,
+extern void VGA_(interrupted_syscall)(ThreadId tid,
struct vki_ucontext *uc,
Bool restart);
--- valgrind/coregrind/vg_scheduler.c #1.211:1.212
@@ -557,4 +557,6 @@ void mostly_clear_thread_record ( Thread
VG_(threads)[tid].status = VgTs_Zombie;
+ VG_(threads)[tid].syscallno = -1;
+
VG_(sigemptyset)(&VG_(threads)[tid].sig_mask);
--- valgrind/coregrind/vg_signals.c #1.110:1.111
@@ -951,4 +951,8 @@ static void fill_prpsinfo(const ThreadSt
break;
+ case VgTs_Zombie:
+ prpsinfo->pr_sname = 'Z';
+ break;
+
case VgTs_Empty:
case VgTs_Init:
@@ -1557,6 +1561,6 @@ void vg_async_signalhandler ( Int sigNo,
sigNo, tid, info->si_code);
- /* Update thread state properly if this signal happened in or around a syscall */
- VGA_(interrupted_syscall)(&tst->arch, uc,
+ /* Update thread state properly */
+ VGA_(interrupted_syscall)(tid, uc,
!!(vg_scss.scss_per_sig[sigNo].scss_flags & VKI_SA_RESTART));
--- valgrind/coregrind/vg_syscalls.c #1.232:1.233
@@ -405,4 +405,7 @@ void record_fd_close(Int tid, Int fd)
OpenFd *i = allocated_fds;
+ if (!VG_(clo_track_fds))
+ return;
+
if (fd >= VG_(fd_hard_limit))
return; /* Valgrind internal */
@@ -437,4 +440,7 @@ void VG_(record_fd_open)(Int tid, Int fd
OpenFd *i;
+ if (!VG_(clo_track_fds))
+ return;
+
if (fd >= VG_(fd_hard_limit))
return; /* Valgrind internal */
@@ -636,5 +642,4 @@ void VG_(init_preopened_fds)()
if(fno != f)
- if(VG_(clo_track_fds))
VG_(record_fd_open)(-1, fno, VG_(resolve_filename)(fno));
}
@@ -760,5 +765,4 @@ void check_cmsg_for_fds(Int tid, struct
for (i = 0; i < fdc; i++)
- if(VG_(clo_track_fds))
// XXX: must we check the range on these fds with
// VG_(fd_allowed)()?
@@ -1907,5 +1911,5 @@ PRE(sys_close, 0)
POST(sys_close)
{
- if (VG_(clo_track_fds)) record_fd_close(tid, arg1);
+ record_fd_close(tid, arg1);
}
@@ -1922,5 +1926,4 @@ POST(sys_dup)
set_result( -VKI_EMFILE );
} else {
- if (VG_(clo_track_fds))
VG_(record_fd_open)(tid, SYSRES, VG_(resolve_filename)(SYSRES));
}
@@ -1937,5 +1940,4 @@ PRE(sys_dup2, 0)
POST(sys_dup2)
{
- if (VG_(clo_track_fds))
VG_(record_fd_open)(tid, SYSRES, VG_(resolve_filename)(SYSRES));
}
@@ -1976,5 +1978,4 @@ POST(sys_fcntl)
set_result( -VKI_EMFILE );
} else {
- if (VG_(clo_track_fds))
VG_(record_fd_open)(tid, SYSRES, VG_(resolve_filename)(SYSRES));
}
@@ -2040,5 +2041,4 @@ POST(sys_fcntl64)
set_result( -VKI_EMFILE );
} else {
- if (VG_(clo_track_fds))
VG_(record_fd_open)(tid, SYSRES, VG_(resolve_filename)(SYSRES));
}
@@ -4381,5 +4381,4 @@ POST(sys_open)
set_result( -VKI_EMFILE );
} else {
- if (VG_(clo_track_fds))
VG_(record_fd_open)(tid, SYSRES, VG_(arena_strdup)(VG_AR_CORE, (Char*)arg1));
}
@@ -4427,5 +4426,4 @@ POST(sys_creat)
set_result( -VKI_EMFILE );
} else {
- if (VG_(clo_track_fds))
VG_(record_fd_open)(tid, SYSRES, VG_(arena_strdup)(VG_AR_CORE, (Char*)arg1));
}
@@ -4452,9 +4450,7 @@ POST(sys_pipe)
} else {
POST_MEM_WRITE( arg1, 2*sizeof(int) );
- if (VG_(clo_track_fds)) {
VG_(record_fd_open)(tid, p[0], NULL);
VG_(record_fd_open)(tid, p[1], NULL);
}
- }
}
@@ -4959,9 +4955,7 @@ POST(sys_socketcall)
} else {
POST_MEM_WRITE( ((UWord*)arg2)[3], 2*sizeof(int) );
- if (VG_(clo_track_fds)) {
VG_(record_fd_open)(tid, fd1, NULL);
VG_(record_fd_open)(tid, fd2, NULL);
}
- }
break;
}
@@ -4972,5 +4966,4 @@ POST(sys_socketcall)
set_result( -VKI_EMFILE );
} else {
- if (VG_(clo_track_fds))
VG_(record_fd_open)(tid, SYSRES, NULL);
}
@@ -4998,5 +4991,4 @@ POST(sys_socketcall)
buf_and_len_post_check ( tid, SYSRES, addr_p, addrlen_p,
"socketcall.accept(addrlen_out)" );
- if (VG_(clo_track_fds))
VG_(record_fd_open)(tid, SYSRES, NULL);
}
@@ -5619,5 +5611,4 @@ POST(sys_mq_open)
set_result( -VKI_EMFILE );
} else {
- if (VG_(clo_track_fds))
VG_(record_fd_open)(tid, SYSRES, VG_(arena_strdup)(VG_AR_CORE, (Char*)arg1));
}
@@ -5835,4 +5826,60 @@ static const struct SyscallTableEntry ba
{ &bad_flags, bad_before, NULL };
+static const struct SyscallTableEntry *get_syscall_entry(UInt syscallno)
+{
+ const struct SyscallTableEntry *sys;
+
+ if (syscallno < VGA_(syscall_table_size) &&
+ VGA_(syscall_table)[syscallno].before != NULL)
+ sys = &VGA_(syscall_table)[syscallno];
+ else
+ sys = &bad_sys;
+
+ return sys;
+}
+
+/* Perform post-syscall actions */
+void VG_(post_syscall) (ThreadId tid)
+{
+ const struct SyscallTableEntry *sys;
+ UInt flags;
+ Bool mayBlock;
+ ThreadState *tst = VG_(get_ThreadState)(tid);
+ Int syscallno;
+
+ vg_assert(VG_(is_running_thread)(tid));
+
+ syscallno = tst->syscallno;
+ tst->syscallno = -1;
+
+ vg_assert(syscallno != -1);
+
+ sys = get_syscall_entry(syscallno);
+ flags = *(sys->flags_ptr);
+
+ mayBlock = !!( flags & MayBlock );
+
+
+ if (sys->after != NULL &&
+ ((flags & PostOnFail) != 0 || !VG_(is_kerror)(SYSRES))) {
+ if (0)
+ VG_(printf)("post_syscall: calling sys_after tid=%d syscallno=%d\n",
+ tid, syscallno);
+ (sys->after)(tid, tst);
+ }
+
+ /* Do any post-syscall actions
+
+ NOTE: this is only called if the syscall completed. If the
+ syscall was restarted, then it will call the Tool's
+ pre_syscall again, without calling post_syscall (ie, more
+ pre's than post's) */
+ if (VG_(needs).syscall_wrapper) {
+ VGP_PUSHCC(VgpSkinSysWrap);
+ SK_(post_syscall)(tid, syscallno, tst->tool_pre_syscall_value, SYSRES, mayBlock);
+ VGP_POPCC(VgpSkinSysWrap);
+ }
+}
+
void VG_(client_syscall) ( ThreadId tid )
{
@@ -5840,7 +5887,6 @@ void VG_(client_syscall) ( ThreadId tid
UInt syscallno, flags;
const struct SyscallTableEntry *sys;
- Bool isSpecial = False;
- Bool mayBlock = False;
- void *pre_result = 0;
+ Bool isSpecial;
+ Bool mayBlock;
VGP_PUSHCC(VgpCoreSysWrap);
@@ -5850,6 +5896,4 @@ void VG_(client_syscall) ( ThreadId tid
syscallno = (UInt)SYSNO;
- vg_assert(tst->status == VgTs_Runnable); // should be runnable
-
/* The syscall no is in %eax. For syscalls with <= 6 args,
args 1 .. 6 to the syscall are in %ebx %ecx %edx %esi %edi %ebp.
@@ -5870,12 +5914,8 @@ void VG_(client_syscall) ( ThreadId tid
vg_assert(VG_(is_running_thread)(tid));
+ vg_assert(tst->syscallno == -1);
+ tst->syscallno = syscallno;
- if (syscallno < VGA_(syscall_table_size) &&
- VGA_(syscall_table)[syscallno].before != NULL)
- {
- sys = &VGA_(syscall_table)[syscallno];
- } else {
- sys = &bad_sys;
- }
+ sys = get_syscall_entry(syscallno);
flags = *(sys->flags_ptr);
@@ -5889,5 +5929,5 @@ void VG_(client_syscall) ( ThreadId tid
if (VG_(needs).syscall_wrapper) {
VGP_PUSHCC(VgpSkinSysWrap);
- pre_result = SK_(pre_syscall)(tid, syscallno, mayBlock);
+ tst->tool_pre_syscall_value = SK_(pre_syscall)(tid, syscallno, mayBlock);
VGP_POPCC(VgpSkinSysWrap);
}
@@ -5947,19 +5987,8 @@ void VG_(client_syscall) ( ThreadId tid
SET_SYSCALL_RETVAL(tid, SYSRES);
- if (sys->after != NULL &&
- ((flags & PostOnFail) != 0 || !VG_(is_kerror)(SYSRES)))
- (sys->after)(tst->tid, tst);
-
- /* Do any post-syscall actions
+ VG_(post_syscall)(tid);
- NOTE: this is only called if the syscall completed. If the
- syscall was restarted, then it will call the Tool's
- pre_syscall again, without calling post_syscall (ie, more
- pre's than post's) */
- if (VG_(needs).syscall_wrapper) {
- VGP_PUSHCC(VgpSkinSysWrap);
- SK_(post_syscall)(tid, syscallno, pre_result, SYSRES, /*isBlocking*/True); // did block
- VGP_POPCC(VgpSkinSysWrap);
- }
+ /* VG_(post_syscall) should set this */
+ vg_assert(tst->syscallno == -1);
VGP_POPCC(VgpCoreSysWrap);
--- valgrind/coregrind/x86-linux/syscalls.c #1.15:1.16
@@ -84,12 +84,18 @@ static void restart_syscall(arch_thread_
sigaction says not to), so we only restart if "restart" is True.
- Returns True if the we were somewhere near running a client
- syscall, or False if something else entirely was going on.
+ This will also call VG_(post_syscall)() if the syscall has actually
+ completed (either because it was interrupted, or because it
+ actually finished). It will not call VG_(post_syscall)() if the
+ syscall is set up for restart, which means that the pre-wrapper may
+ get called multiple times.
*/
-Bool VGA_(interrupted_syscall)(arch_thread_t *th_regs,
+void VGA_(interrupted_syscall)(ThreadId tid,
struct vki_ucontext *uc,
Bool restart)
{
- static const Bool debug = False;
+ static const Bool debug = 0;
+
+ ThreadState *tst = VG_(get_ThreadState)(tid);
+ arch_thread_t *th_regs = &tst->arch;
Word eip = UCONTEXT_INSTR_PTR(uc);
@@ -100,7 +106,10 @@ Bool VGA_(interrupted_syscall)(arch_thre
if (eip < VGA_(blksys_setup) || eip >= VGA_(blksys_finished)) {
VG_(printf)(" not in syscall (%p - %p)\n", VGA_(blksys_setup), VGA_(blksys_finished));
- return False;
+ vg_assert(tst->syscallno == -1);
+ return;
}
+ vg_assert(tst->syscallno != -1);
+
if (eip >= VGA_(blksys_setup) && eip < VGA_(blksys_restart)) {
/* syscall hasn't even started; go around again */
@@ -114,6 +123,8 @@ Bool VGA_(interrupted_syscall)(arch_thre
if (restart)
restart_syscall(th_regs);
- else
+ else {
PLATFORM_SYSCALL_RET(*th_regs) = -VKI_EINTR;
+ VG_(post_syscall)(tid);
+ }
} else if (eip >= VGA_(blksys_complete) && eip < VGA_(blksys_committed)) {
/* Syscall complete, but result hasn't been written back yet.
@@ -123,4 +134,5 @@ Bool VGA_(interrupted_syscall)(arch_thre
VG_(printf)(" completed: ret=%d\n", UCONTEXT_SYSCALL_RET(uc));
PLATFORM_SYSCALL_RET(*th_regs) = UCONTEXT_SYSCALL_RET(uc);
+ VG_(post_syscall)(tid);
} else if (eip >= VGA_(blksys_committed) && eip < VGA_(blksys_finished)) {
/* Result committed, but the signal mask has not been restored;
@@ -129,7 +141,9 @@ Bool VGA_(interrupted_syscall)(arch_thre
if (debug)
VG_(printf)(" all done\n");
- }
+ VG_(post_syscall)(tid);
+ } else
+ VG_(core_panic)("?? strange syscall interrupt state?");
- return True;
+ tst->syscallno = -1;
}
|
|
From: Eyal L. <ey...@ey...> - 2005-01-17 22:29:31
|
Jeremy Fitzhardinge wrote: > On Tue, 2005-01-18 at 00:39 +1100, Eyal Lebedinsky wrote: > >>But this is not my real problem. Attached is a program that >>aborts when I use waitpid() in place of wait(). This is my >>current showstopper. > > > Can you send the output of the program aborting? zz34 works for me. I just pulled the latest cvs, it made no difference (it included only some suppressions). However this made me see that I made a minor change in my tree a long time ago, which is required for my tests. # cvs diff include/tool.h.base Index: include/tool.h.base =================================================================== RCS file: /home/kde/valgrind/include/tool.h.base,v retrieving revision 1.19 diff -r1.19 tool.h.base 53c53 < #define VG_N_THREADS 100 --- > #define VG_N_THREADS 500 -- Eyal Lebedinsky (ey...@ey...) <http://samba.org/eyal/> If attaching .zip rename to .dat |
|
From: Eyal L. <ey...@ey...> - 2005-01-17 22:12:38
|
Jeremy Fitzhardinge wrote: > On Tue, 2005-01-18 at 00:39 +1100, Eyal Lebedinsky wrote: > >>But this is not my real problem. Attached is a program that >>aborts when I use waitpid() in place of wait(). This is my >>current showstopper. > > > Can you send the output of the program aborting? zz34 works for me. Naturally. Strangely enough, this morning it would not behave in the same way. abort.log is a copy+paste off my xterm of the abort I had last night. uninited.log is the log I get this morning with the error (but no crash). I will try and reproduce the crash and see what it depends on. I should say that my original test did run OK (with the uninited errors) for a while (26 tests were fine) before programs started crashing (every single one). So there is something that triggers this problem, maybe the uninited error is an indication that something may behave unpredictably. -- Eyal Lebedinsky (ey...@ey...) <http://samba.org/eyal/> If attaching .zip rename to .dat |
|
From: Robert W. <rj...@du...> - 2005-01-17 18:45:21
|
> In file included from vg_unsafe.h:65, > from vg_syscalls.c:35: > /usr/include/linux/timex.h:56: error: syntax error before "and" This is a bug in FC1. timex.h has a typo - it's missing a /* to start a comment on line 56. Just modify timex.h to add that in and all should be well. Regards, Robert. |
|
From: Jeremy F. <je...@go...> - 2005-01-17 17:23:45
|
On Tue, 2005-01-18 at 00:39 +1100, Eyal Lebedinsky wrote: > But this is not my real problem. Attached is a program that > aborts when I use waitpid() in place of wait(). This is my > current showstopper. Can you send the output of the program aborting? zz34 works for me. J |
|
From: Tom H. <th...@cy...> - 2005-01-17 15:19:48
|
In message <1105952911.31917.57.camel@localhost>
Jeremy Fitzhardinge <je...@go...> wrote:
> On Mon, 2005-01-17 at 08:44 +0000, Tom Hughes wrote:
>>
>> + Syscall param write(buf) points to uninitialised byte(s)
>> + at 0x........: write (in /...libc...)
>> + by 0x........: pthread_create@@GLIBC_2.1 (in /lib/i686/libpthread-0.9.so)
>> + by 0x........: main (pth_once.c:65)
>> + Address 0x........ is on thread 1's stack
>> +
>
> Hm, this looks like it should match against the "LinuxThreads:
> write/pthread_create" suppression.
It did, but that was only in the glibc 2.3 file.
Tom
--
Tom Hughes (th...@cy...)
Software Engineer, Cyberscience Corporation
http://www.cyberscience.com/
|
|
From: Tom H. <th...@cy...> - 2005-01-17 15:19:08
|
CVS commit by thughes:
Add some of the LinuxThreads suppressions to the glibc 2.2 suppressions.
M +8 -0 glibc-2.2.supp 1.29
--- valgrind/glibc-2.2.supp #1.28:1.29
@@ -471,2 +471,10 @@
obj:/usr/X11R6/lib/libXt.so.6.0
}
+
+# LinuxThreads suppressesion
+{
+ LinuxThreads: write/pthread_create
+ Memcheck:Param
+ write(buf)
+ fun:pthread_create@@GLIBC_2.1
+}
|
|
From: Tom H. <th...@cy...> - 2005-01-17 15:16:43
|
Nightly build on standard ( Red Hat 7.2 ) started at 2005-01-16 03:00:04 GMT Checking out source tree ... done Configuring ... done Building ... done Running regression tests ... done Last 20 lines of log.verbose follow cpuid: valgrind --num-callers=4 ./cpuid dastest: valgrind --num-callers=4 ./dastest fpu_lazy_eflags: valgrind --num-callers=4 ./fpu_lazy_eflags insn_basic: valgrind --num-callers=4 ./insn_basic insn_cmov: valgrind --num-callers=4 ./insn_cmov insn_fpu: valgrind --num-callers=4 ./insn_fpu insn_mmx: valgrind --num-callers=4 ./insn_mmx insn_mmxext: valgrind --num-callers=4 ./insn_mmxext insn_sse: valgrind --num-callers=4 ./insn_sse insn_sse2: (skipping, prereq failed: ../../../tests/cputest x86-sse2) int: valgrind --num-callers=4 ./int rm: cannot remove `vgcore.pid*': No such file or directory (cleanup operation failed: rm vgcore.pid*) pushpopseg: valgrind --num-callers=4 ./pushpopseg rcl_assert: valgrind --num-callers=4 ./rcl_assert seg_override: valgrind --num-callers=4 ./seg_override -- Finished tests in none/tests/x86 ------------------------------------ yield: valgrind --num-callers=4 ./yield Could not read `yield.stderr.exp' make: *** [regtest] Error 2 |
|
From: Tom H. <th...@cy...> - 2005-01-17 15:10:49
|
CVS commit by thughes:
Removed suppressions for leak in valgrind's libpthread.so as it
no longer exists.
M +0 -12 glibc-2.1.supp 1.12
M +0 -13 glibc-2.2.supp 1.28
M +0 -11 glibc-2.3.supp 1.20
--- valgrind/glibc-2.1.supp #1.11:1.12
@@ -171,14 +171,2 @@
obj:*libX11.so*
}
-
-##----------------------------------------------------------------------##
-## For a leak in Valgrind's own libpthread.so :(
-{
- my_malloc/get_or_allocate_specifics_ptr/pthread_key_create(Leak)
- Memcheck:Leak
- fun:malloc
- fun:my_malloc
- fun:get_or_allocate_specifics_ptr
- fun:pthread_key_create
-}
-
--- valgrind/glibc-2.2.supp #1.27:1.28
@@ -471,15 +471,2 @@
obj:/usr/X11R6/lib/libXt.so.6.0
}
-
-##----------------------------------------------------------------------##
-## For a leak in Valgrind's own libpthread.so :(
-{
- my_malloc/get_or_allocate_specifics_ptr/pthread_key_create(Leak)
- Memcheck:Leak
- fun:malloc
- fun:my_malloc
- fun:get_or_allocate_specifics_ptr
- fun:pthread_key_create
-}
-
-
--- valgrind/glibc-2.3.supp #1.19:1.20
@@ -204,15 +204,4 @@
##----------------------------------------------------------------------##
-## For a leak in Valgrind's own libpthread.so :(
-{
- my_malloc/get_or_allocate_specifics_ptr/pthread_key_create(Leak)
- Memcheck:Leak
- fun:malloc
- fun:my_malloc
- fun:get_or_allocate_specifics_ptr
- fun:pthread_key_create
-}
-
-##----------------------------------------------------------------------##
## Bugs in helper library supplied with Intel Icc 7.0 (65)
## in /opt/intel/compiler70/ia32/lib/libcxa.so.3
|
|
From: Tom H. <th...@cy...> - 2005-01-17 15:05:40
|
In message <1105952911.31917.57.camel@localhost>
Jeremy Fitzhardinge <je...@go...> wrote:
> On Mon, 2005-01-17 at 08:44 +0000, Tom Hughes wrote:
>
>> >> memcheck/tests/scalar (stderr)
>>
>> This is asserting on the munlockall test:
>>
>> -----------------------------------------------------
>> 153: __NR_munlockall 0s 0m
>> -----------------------------------------------------
>> scalar: scalar.c:671: main: Assertion `-1 != res' failed.
>
> What's to fail? Or is the kernel missing munlockall altogether?
The munlockall is failing with EPERM on RH72 through RH9 by the
looks of it.
Tom
--
Tom Hughes (th...@cy...)
Software Engineer, Cyberscience Corporation
http://www.cyberscience.com/
|
|
From: Tom H. <th...@cy...> - 2005-01-17 15:02:06
|
In message <1105952911.31917.57.camel@localhost>
Jeremy Fitzhardinge <je...@go...> wrote:
> On Mon, 2005-01-17 at 08:44 +0000, Tom Hughes wrote:
>
>> >> none/tests/yield (stdout)
>> >
>> > Can you think of any useful assertion this test could be making?
>> > Perhaps we should just kill it.
>>
>> Well what is it trying to test? Presumably the idea was to test that
>> the "rep; nop" sequence caused a yield properly.
>>
>> Perhaps it is sufficient to test that "rep; nop" makes progress but
>> less progress that spinning?
>
> Yeah, I guess that's all we can say.
Even that isn't good enough... I'm finding the yield test
sometimes hangs and I've just worked out why - sometimes the
rep_nop thread makes no progress at all during the sleep.
Specifically, that thread never reacts to the broadcast before
the sleep is up, so by the time it leaves the cond_wait and
tests the alive flag the flag has been set back to zero and it
goes round the loop again.
I could fix that by using a separate flag to kill the thread
instead of reusing the one that woke it up, but then the test
would fail because the rep_nop count would be zero.
Tom
--
Tom Hughes (th...@cy...)
Software Engineer, Cyberscience Corporation
http://www.cyberscience.com/
|
|
From: Eyal L. <ey...@ey...> - 2005-01-17 13:39:32
|
Jeremy Fitzhardinge wrote:
> On Sun, 2005-01-16 at 17:20 -0800, Jeremy Fitzhardinge wrote:
>
>>Currently, when the sys_clone wrapper sees a clone() which is actually a
>>fork, it ends up using the fork() syscall instead. However, this
>>doesn't do the extra things that clone() can do, like writing the parent
>>and/or child pid into memory, which is what this assert checks for.
>
>
> OK, I just checked in a fix for this, so give it a go.
>
> J
I still see unusual reports every time I spawn a process. The references to
'status' are flagged as:
==2005-01-18 00:03:38.848 23963== Thread 2:
==2005-01-18 00:03:38.848 23963== Conditional jump or move depends on uninitialised value(s)
==2005-01-18 00:03:38.848 23963== at 0x1BEE2FCF: skspwn (spawn.c:477)
==2005-01-18 00:03:38.848 23963==
==2005-01-18 00:03:38.848 23963== Thread 2:
==2005-01-18 00:03:38.848 23963== Conditional jump or move depends on uninitialised value(s)
==2005-01-18 00:03:38.848 23963== at 0x1BEE2FF3: skspwn (spawn.c:479)
==2005-01-18 00:03:38.848 23963==
==2005-01-18 00:03:38.848 23963== Thread 2:
==2005-01-18 00:03:38.848 23963== Conditional jump or move depends on uninitialised value(s)
==2005-01-18 00:03:38.848 23963== at 0x1BEE3034: skspwn (spawn.c:484)
pid = fork();
if (0 == pid) { /* child */
handle child (exec)
}
if (pid < 0) {
handle failure
}
rc = waitpid (pid, &status, 0));
if (-1 == rc)
...
477 if (WIFEXITED (status)) {
rc = WEXITSTATUS (status); /* child ok */
479 if (rc) {
...
484 another use of 'rc'
The "uninitialised value" then progresses to the caller etc.
But this is not my real problem. Attached is a program that
aborts when I use waitpid() in place of wait(). This is my
current showstopper.
--
Eyal Lebedinsky (ey...@ey...) <http://samba.org/eyal/>
If attaching .zip rename to .dat
|
|
From: Tom H. <th...@cy...> - 2005-01-17 10:37:45
|
In message <41E...@bn...>
Sev Binello <se...@bn...> wrote:
> A while back I posted the message below indicating that Valgrind
> was not producing the
> full path for source code built with gcc 3.2.3
> I took a look at the code and found that vg_dwarf.c expected gcc
> to include the path in the file name,
> if it was using dwarf2 debug format.
> Therefor, it never bothered to look for the path in the directory
> table for files in dwarf2 format.
> It doesn't look like that assumption is correct.
> I modified the code in vg_dwarf.c to parse the directory table,
> and concatenate the path name to the file name.
> I've attached a patch file. It does not handle relative paths.
You have approached the problem from the wrong direction - valgrind
was never supposed to print the full path. It was an accident that
old gcc's put the full path in like that - other debug formats only
print the leafname.
There was a long discussion about this before when somebody wanted
the full path and consensus seemed to be against it except perhaps
as an option.
Patches are best filed in the bug tracker anyway - they are less
likely to get lost/forgotten that way.
Tom
--
Tom Hughes (th...@cy...)
Software Engineer, Cyberscience Corporation
http://www.cyberscience.com/
|
|
From: Tom H. <th...@cy...> - 2005-01-17 10:35:37
|
In message <cc1...@ma...>
Malcolm Rowe <mal...@gm...> wrote:
> I recently posted a new bug and trivial patch for vg_syscalls.c to bug
> 96660 [1]. I couldn't tell if the developers regularly monitor new
> bugs, so this may be a redundant request, but if not, could someone
> please commit the patch?
I'm sure one of us will get around to looking at the bug when
they have time. It isn't a question of just committing the patch
though - it will need to be looked first to make sure it is the
correct solution.
Tom
--
Tom Hughes (th...@cy...)
Software Engineer, Cyberscience Corporation
http://www.cyberscience.com/
|
|
From: Jeremy F. <je...@go...> - 2005-01-17 09:08:36
|
On Mon, 2005-01-17 at 08:44 +0000, Tom Hughes wrote: > In message <1105931992.31917.42.camel@localhost> > Jeremy Fitzhardinge <je...@go...> wrote: > > > On Mon, 2005-01-17 at 03:10 +0000, Tom Hughes wrote: > >> memcheck/tests/pth_once (stderr) > > This is some warnings from pthread_create: > > + Syscall param write(buf) points to uninitialised byte(s) > + at 0x........: write (in /...libc...) > + by 0x........: pthread_create@@GLIBC_2.1 (in /lib/i686/libpthread-0.9.so) > + by 0x........: main (pth_once.c:65) > + Address 0x........ is on thread 1's stack > + Hm, this looks like it should match against the "LinuxThreads: write/pthread_create" suppression. > + Syscall param write(buf) points to uninitialised byte(s) > + at 0x........: write (in /...libc...) > + by 0x........: main (pth_once.c:65) > + Address 0x........ is on thread 1's stack > + > + Syscall param write(buf) points to uninitialised byte(s) > + at 0x........: write (in /...libc...) > + by 0x........: main (pth_once.c:76) > + Address 0x........ is on thread 1's stack > + > + Syscall param write(buf) points to uninitialised byte(s) > + at 0x........: write (in /...libc...) > + by 0x........: exit (in /...libc...) > + by 0x........: __libc_start_main (...libc...) > + by 0x........: ... > + Address 0x........ is on thread 1's stack These look a bit tricky to suppress. > >> memcheck/tests/scalar (stderr) > > This is asserting on the munlockall test: > > ----------------------------------------------------- > 153: __NR_munlockall 0s 0m > ----------------------------------------------------- > scalar: scalar.c:671: main: Assertion `-1 != res' failed. What's to fail? Or is the kernel missing munlockall altogether? > >> none/tests/yield (stdout) > > > > Can you think of any useful assertion this test could be making? > > Perhaps we should just kill it. > > Well what is it trying to test? Presumably the idea was to test that > the "rep; nop" sequence caused a yield properly. > > Perhaps it is sufficient to test that "rep; nop" makes progress but > less progress that spinning? Yeah, I guess that's all we can say. J |
|
From: Tom H. <th...@cy...> - 2005-01-17 08:49:22
|
Nightly build on audi ( Red Hat 9 ) started at 2005-01-17 03:15:05 GMT Checking out source tree ... done Configuring ... done Building ... done Running regression tests ... done Last 20 lines of log.verbose follow cpuid: valgrind --num-callers=4 ./cpuid dastest: valgrind --num-callers=4 ./dastest fpu_lazy_eflags: valgrind --num-callers=4 ./fpu_lazy_eflags insn_basic: valgrind --num-callers=4 ./insn_basic insn_cmov: valgrind --num-callers=4 ./insn_cmov insn_fpu: valgrind --num-callers=4 ./insn_fpu insn_mmx: valgrind --num-callers=4 ./insn_mmx insn_mmxext: valgrind --num-callers=4 ./insn_mmxext insn_sse: valgrind --num-callers=4 ./insn_sse insn_sse2: (skipping, prereq failed: ../../../tests/cputest x86-sse2) int: valgrind --num-callers=4 ./int rm: cannot remove `vgcore.pid*': No such file or directory (cleanup operation failed: rm vgcore.pid*) pushpopseg: valgrind --num-callers=4 ./pushpopseg rcl_assert: valgrind --num-callers=4 ./rcl_assert seg_override: valgrind --num-callers=4 ./seg_override -- Finished tests in none/tests/x86 ------------------------------------ yield: valgrind --num-callers=4 ./yield Could not read `yield.stderr.exp' make: *** [regtest] Error 2 |
|
From: Tom H. <th...@cy...> - 2005-01-17 08:48:55
|
Nightly build on standard ( Red Hat 7.2 ) started at 2005-01-17 03:00:04 GMT Checking out source tree ... done Configuring ... done Building ... done Running regression tests ... done Last 20 lines of log.verbose follow cpuid: valgrind --num-callers=4 ./cpuid dastest: valgrind --num-callers=4 ./dastest fpu_lazy_eflags: valgrind --num-callers=4 ./fpu_lazy_eflags insn_basic: valgrind --num-callers=4 ./insn_basic insn_cmov: valgrind --num-callers=4 ./insn_cmov insn_fpu: valgrind --num-callers=4 ./insn_fpu insn_mmx: valgrind --num-callers=4 ./insn_mmx insn_mmxext: valgrind --num-callers=4 ./insn_mmxext insn_sse: valgrind --num-callers=4 ./insn_sse insn_sse2: (skipping, prereq failed: ../../../tests/cputest x86-sse2) int: valgrind --num-callers=4 ./int rm: cannot remove `vgcore.pid*': No such file or directory (cleanup operation failed: rm vgcore.pid*) pushpopseg: valgrind --num-callers=4 ./pushpopseg rcl_assert: valgrind --num-callers=4 ./rcl_assert seg_override: valgrind --num-callers=4 ./seg_override -- Finished tests in none/tests/x86 ------------------------------------ yield: valgrind --num-callers=4 ./yield Could not read `yield.stderr.exp' make: *** [regtest] Error 2 |
|
From: Eyal L. <ey...@ey...> - 2005-01-17 08:45:11
|
Jeremy Fitzhardinge wrote: > On Sun, 2005-01-16 at 17:20 -0800, Jeremy Fitzhardinge wrote: > >>Currently, when the sys_clone wrapper sees a clone() which is actually a >>fork, it ends up using the fork() syscall instead. However, this >>doesn't do the extra things that clone() can do, like writing the parent >>and/or child pid into memory, which is what this assert checks for. > > OK, I just checked in a fix for this, so give it a go. It works, thanks! The tests last many hours, but if I still see any funnies I will report back. -- Eyal Lebedinsky (ey...@ey...) <http://samba.org/eyal/> If attaching .zip rename to .dat |
|
From: Tom H. <th...@cy...> - 2005-01-17 08:44:51
|
In message <1105931992.31917.42.camel@localhost>
Jeremy Fitzhardinge <je...@go...> wrote:
> On Mon, 2005-01-17 at 03:10 +0000, Tom Hughes wrote:
>> memcheck/tests/pth_once (stderr)
This is some warnings from pthread_create:
+ Syscall param write(buf) points to uninitialised byte(s)
+ at 0x........: write (in /...libc...)
+ by 0x........: pthread_create@@GLIBC_2.1 (in /lib/i686/libpthread-0.9.so)
+ by 0x........: main (pth_once.c:65)
+ Address 0x........ is on thread 1's stack
+
+ Syscall param write(buf) points to uninitialised byte(s)
+ at 0x........: write (in /...libc...)
+ by 0x........: main (pth_once.c:65)
+ Address 0x........ is on thread 1's stack
+
+ Syscall param write(buf) points to uninitialised byte(s)
+ at 0x........: write (in /...libc...)
+ by 0x........: main (pth_once.c:76)
+ Address 0x........ is on thread 1's stack
+
+ Syscall param write(buf) points to uninitialised byte(s)
+ at 0x........: write (in /...libc...)
+ by 0x........: exit (in /...libc...)
+ by 0x........: __libc_start_main (...libc...)
+ by 0x........: ...
+ Address 0x........ is on thread 1's stack
>> memcheck/tests/scalar (stderr)
This is asserting on the munlockall test:
-----------------------------------------------------
153: __NR_munlockall 0s 0m
-----------------------------------------------------
scalar: scalar.c:671: main: Assertion `-1 != res' failed.
>> memcheck/tests/threadederrno (stderr)
This is the same pthread_create warnings as the pth_once test.
>> memcheck/tests/vgtest_ume (stderr)
This is the usual _dl_relocate_object_internal problems but there
is no stack to match against the suppressions:
+ Conditional jump or move depends on uninitialised value(s)
+ at 0x........: _dl_relocate_object_internal (in /lib/ld-2.2.5.so)
+
+ Conditional jump or move depends on uninitialised value(s)
+ at 0x........: _dl_relocate_object_internal (in /lib/ld-2.2.5.so)
+
+ Conditional jump or move depends on uninitialised value(s)
+ at 0x........: _dl_relocate_object_internal (in /lib/ld-2.2.5.so)
+
+ Conditional jump or move depends on uninitialised value(s)
+ at 0x........: _dl_relocate_object_internal (in /lib/ld-2.2.5.so)
+
+ Conditional jump or move depends on uninitialised value(s)
+ at 0x........: _dl_relocate_object_internal (in /lib/ld-2.2.5.so)
>> none/tests/yield (stdout)
>
> Can you think of any useful assertion this test could be making?
> Perhaps we should just kill it.
Well what is it trying to test? Presumably the idea was to test that
the "rep; nop" sequence caused a yield properly.
Perhaps it is sufficient to test that "rep; nop" makes progress but
less progress that spinning?
Tom
--
Tom Hughes (th...@cy...)
Software Engineer, Cyberscience Corporation
http://www.cyberscience.com/
|
|
From: <js...@ac...> - 2005-01-17 03:56:32
|
Nightly build on phoenix ( SuSE 9.1 ) started at 2005-01-17 03:50:00 GMT Checking out source tree ... done Configuring ... done Building ... done Running regression tests ... done Last 20 lines of log.verbose follow corecheck/tests/as_mmap (stderr) corecheck/tests/fdleak_fcntl (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/writev (stderr) none/tests/susphello (stdout) none/tests/susphello (stderr) none/tests/yield (stdout) make: *** [regtest] Error 1 |