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
(17) |
3
(9) |
4
(14) |
5
(10) |
6
(11) |
7
(8) |
|
8
(9) |
9
(11) |
10
(29) |
11
(27) |
12
(29) |
13
(36) |
14
(8) |
|
15
(18) |
16
(30) |
17
(25) |
18
(6) |
19
(16) |
20
(13) |
21
(10) |
|
22
(16) |
23
(7) |
24
(8) |
25
(13) |
26
(14) |
27
(14) |
28
(5) |
|
29
(6) |
30
(21) |
31
(14) |
|
|
|
|
|
From: <sv...@va...> - 2009-03-11 23:42:08
|
Author: njn
Date: 2009-03-11 23:41:54 +0000 (Wed, 11 Mar 2009)
New Revision: 9365
Log:
Merged r9358..r9363 (DRD test fixes, 'make dist' fix) from the trunk.
Added:
branches/DARWIN/drd/tests/atomic_var.stderr.exp-with-atomic-builtins
Removed:
branches/DARWIN/drd/tests/atomic_var.stderr.exp-with-atomic-builtins-1
branches/DARWIN/drd/tests/atomic_var.stderr.exp-with-atomic-builtins-2
Modified:
branches/DARWIN/drd/drd.h
branches/DARWIN/drd/drd_clientreq.c
branches/DARWIN/drd/tests/Makefile.am
branches/DARWIN/drd/tests/atomic_var.vgtest
branches/DARWIN/drd/tests/boost_thread.cpp
branches/DARWIN/drd/tests/filter_stderr_and_thread_no
branches/DARWIN/drd/tests/fp_race.c
branches/DARWIN/helgrind/tests/bar_trivial.c
branches/DARWIN/massif/tests/Makefile.am
branches/DARWIN/memcheck/tests/Makefile.am
Modified: branches/DARWIN/drd/drd.h
===================================================================
--- branches/DARWIN/drd/drd.h 2009-03-11 23:25:03 UTC (rev 9364)
+++ branches/DARWIN/drd/drd.h 2009-03-11 23:41:54 UTC (rev 9365)
@@ -93,6 +93,12 @@
/* To ask the drd tool to stop tracing accesses to the specified range. */
VG_USERREQ__DRD_STOP_TRACE_ADDR,
/* args: Addr, SizeT. */
+
+ /* To ask the drd tool to discard all information about memory accesses */
+ /* and client objects for the specified range. This client request is */
+ /* binary compatible with the similarly named Helgrind client request. */
+ VG_USERREQ__DRD_CLEAN_MEMORY = VG_USERREQ_TOOL_BASE('H','G'),
+ /* args: Addr, SizeT. */
};
Modified: branches/DARWIN/drd/drd_clientreq.c
===================================================================
--- branches/DARWIN/drd/drd_clientreq.c 2009-03-11 23:25:03 UTC (rev 9364)
+++ branches/DARWIN/drd/drd_clientreq.c 2009-03-11 23:41:54 UTC (rev 9365)
@@ -31,7 +31,6 @@
#include "drd_semaphore.h"
#include "drd_suppression.h" // drd_start_suppression()
#include "drd_thread.h"
-#include "../helgrind/helgrind.h"
#include "pub_tool_basics.h" // Bool
#include "pub_tool_debuginfo.h" // VG_(describe_IP)()
#include "pub_tool_libcassert.h"
@@ -369,7 +368,7 @@
DRD_(thread_leave_synchr)(drd_tid);
break;
- case VG_USERREQ__HG_CLEAN_MEMORY:
+ case VG_USERREQ__DRD_CLEAN_MEMORY:
if (arg[2] > 0)
DRD_(clean_memory)(arg[1], arg[2]);
break;
Modified: branches/DARWIN/drd/tests/Makefile.am
===================================================================
--- branches/DARWIN/drd/tests/Makefile.am 2009-03-11 23:25:03 UTC (rev 9364)
+++ branches/DARWIN/drd/tests/Makefile.am 2009-03-11 23:41:54 UTC (rev 9365)
@@ -14,8 +14,7 @@
EXTRA_DIST = \
$(noinst_SCRIPTS) \
- atomic_var.stderr.exp-with-atomic-builtins-1 \
- atomic_var.stderr.exp-with-atomic-builtins-2 \
+ atomic_var.stderr.exp-with-atomic-builtins \
atomic_var.stderr.exp-without-atomic-builtins \
atomic_var.vgtest \
bar_bad.stderr.exp \
Copied: branches/DARWIN/drd/tests/atomic_var.stderr.exp-with-atomic-builtins (from rev 9363, trunk/drd/tests/atomic_var.stderr.exp-with-atomic-builtins)
===================================================================
--- branches/DARWIN/drd/tests/atomic_var.stderr.exp-with-atomic-builtins (rev 0)
+++ branches/DARWIN/drd/tests/atomic_var.stderr.exp-with-atomic-builtins 2009-03-11 23:41:54 UTC (rev 9365)
@@ -0,0 +1,13 @@
+
+Start of test.
+Conflicting load by thread x/x at 0x........ size 4
+ at 0x........: thread_func_2 (atomic_var.c:?)
+ by 0x........: vgDrd_thread_wrapper (drd_pthread_intercepts.c:?)
+ by 0x........: (within libpthread-?.?.so)
+ by 0x........: clone (in /...libc...)
+Location 0x........ is 0 bytes inside local var "s_y"
+declared at atomic_var.c:35, in frame #? of thread x
+y = 1
+Test finished.
+
+ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)
Deleted: branches/DARWIN/drd/tests/atomic_var.stderr.exp-with-atomic-builtins-1
===================================================================
--- branches/DARWIN/drd/tests/atomic_var.stderr.exp-with-atomic-builtins-1 2009-03-11 23:25:03 UTC (rev 9364)
+++ branches/DARWIN/drd/tests/atomic_var.stderr.exp-with-atomic-builtins-1 2009-03-11 23:41:54 UTC (rev 9365)
@@ -1,14 +0,0 @@
-
-Start of test.
-Thread 2:
-Conflicting load by thread 2/3 at 0x........ size 4
- at 0x........: thread_func_2 (atomic_var.c:?)
- by 0x........: vgDrd_thread_wrapper (drd_pthread_intercepts.c:?)
- by 0x........: (within libpthread-?.?.so)
- by 0x........: clone (in /...libc...)
-Location 0x........ is 0 bytes inside local var "s_y"
-declared at atomic_var.c:35, in frame #? of thread 2
-y = 1
-Test finished.
-
-ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)
Deleted: branches/DARWIN/drd/tests/atomic_var.stderr.exp-with-atomic-builtins-2
===================================================================
--- branches/DARWIN/drd/tests/atomic_var.stderr.exp-with-atomic-builtins-2 2009-03-11 23:25:03 UTC (rev 9364)
+++ branches/DARWIN/drd/tests/atomic_var.stderr.exp-with-atomic-builtins-2 2009-03-11 23:41:54 UTC (rev 9365)
@@ -1,14 +0,0 @@
-
-Start of test.
-Thread 3:
-Conflicting load by thread 3/3 at 0x........ size 4
- at 0x........: thread_func_2 (atomic_var.c:?)
- by 0x........: vgDrd_thread_wrapper (drd_pthread_intercepts.c:?)
- by 0x........: (within libpthread-?.?.so)
- by 0x........: clone (in /...libc...)
-Location 0x........ is 0 bytes inside local var "s_y"
-declared at atomic_var.c:35, in frame #? of thread 3
-y = 1
-Test finished.
-
-ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)
Modified: branches/DARWIN/drd/tests/atomic_var.vgtest
===================================================================
--- branches/DARWIN/drd/tests/atomic_var.vgtest 2009-03-11 23:25:03 UTC (rev 9364)
+++ branches/DARWIN/drd/tests/atomic_var.vgtest 2009-03-11 23:41:54 UTC (rev 9365)
@@ -1,3 +1,4 @@
prereq: ./supported_libpthread
vgopts: --var-info=yes --check-stack-var=yes --show-confl-seg=no
prog: atomic_var
+stderr_filter: filter_stderr_and_thread_no
Modified: branches/DARWIN/drd/tests/boost_thread.cpp
===================================================================
--- branches/DARWIN/drd/tests/boost_thread.cpp 2009-03-11 23:25:03 UTC (rev 9364)
+++ branches/DARWIN/drd/tests/boost_thread.cpp 2009-03-11 23:41:54 UTC (rev 9365)
@@ -1,3 +1,7 @@
+// Test program that allows to verify whether Drd works fine for programs that
+// use the boost::thread, boost::mutex and boost::condition classes.
+
+
#include <boost/thread/condition.hpp>
#include <boost/thread/mutex.hpp>
#include <boost/thread/thread.hpp>
Modified: branches/DARWIN/drd/tests/filter_stderr_and_thread_no
===================================================================
--- branches/DARWIN/drd/tests/filter_stderr_and_thread_no 2009-03-11 23:25:03 UTC (rev 9364)
+++ branches/DARWIN/drd/tests/filter_stderr_and_thread_no 2009-03-11 23:41:54 UTC (rev 9365)
@@ -5,4 +5,5 @@
# Get rid of the numbers as these make some tests more scheduling sensitive
# -- those where there are multiple threads which play interchangeable roles.
grep -v "^Thread [0-9][0-9]*:$" |
-sed -e "s:hread [0-9][0-9]*/[0-9][0-9]*:hread x/x:g"
+sed -e "s:hread [0-9][0-9]*/[0-9][0-9]*:hread x/x:g" \
+ -e "s:of thread [0-9][0-9]*$:of thread x:g"
Modified: branches/DARWIN/drd/tests/fp_race.c
===================================================================
--- branches/DARWIN/drd/tests/fp_race.c 2009-03-11 23:25:03 UTC (rev 9364)
+++ branches/DARWIN/drd/tests/fp_race.c 2009-03-11 23:41:54 UTC (rev 9365)
@@ -70,6 +70,8 @@
pthread_create(&threadid, 0, thread_func, 0);
+ sleep(1); /* Wait until thread_func() finished. */
+
{
if (s_use_mutex) pthread_mutex_lock(&s_mutex);
s_d3++;
Modified: branches/DARWIN/helgrind/tests/bar_trivial.c
===================================================================
--- branches/DARWIN/helgrind/tests/bar_trivial.c 2009-03-11 23:25:03 UTC (rev 9364)
+++ branches/DARWIN/helgrind/tests/bar_trivial.c 2009-03-11 23:41:54 UTC (rev 9365)
@@ -16,7 +16,7 @@
void* child_fn ( void* arg )
{
- long r, n = *(long*)arg;
+ long r, n = (long)arg;
if (n == 1) x++;
@@ -36,14 +36,12 @@
{
long i, r;
pthread_t thr[NTHR];
- long thread_arg[NTHR];
r = pthread_barrier_init(&bar, NULL, NTHR);
assert(!r);
for (i = 0; i < NTHR; i++) {
- thread_arg[i] = i;
- r = pthread_create(&thr[i], NULL, child_fn, &(thread_arg[i]));
+ r = pthread_create(&thr[i], NULL, child_fn, (void*)i);
assert(!r);
}
Modified: branches/DARWIN/massif/tests/Makefile.am
===================================================================
--- branches/DARWIN/massif/tests/Makefile.am 2009-03-11 23:25:03 UTC (rev 9364)
+++ branches/DARWIN/massif/tests/Makefile.am 2009-03-11 23:41:54 UTC (rev 9365)
@@ -27,7 +27,6 @@
null.post.exp null.stderr.exp null.vgtest \
one.post.exp one.post.exp2 one.stderr.exp one.vgtest \
overloaded-new.post.exp overloaded-new.stderr.exp overloaded-new.vgtest \
- params.post.exp params.stderr.exp params.vgtest \
peak.post.exp peak.stderr.exp peak.vgtest \
peak2.post.exp peak2.stderr.exp peak2.vgtest \
realloc.post.exp realloc.stderr.exp realloc.vgtest \
Modified: branches/DARWIN/memcheck/tests/Makefile.am
===================================================================
--- branches/DARWIN/memcheck/tests/Makefile.am 2009-03-11 23:25:03 UTC (rev 9364)
+++ branches/DARWIN/memcheck/tests/Makefile.am 2009-03-11 23:41:54 UTC (rev 9365)
@@ -81,7 +81,7 @@
lsframe1.vgtest lsframe1.stdout.exp lsframe1.stderr.exp \
lsframe2.vgtest lsframe2.stdout.exp lsframe2.stderr.exp \
mallinfo.stderr.exp mallinfo.vgtest \
- malloc_free_fill.vgtest malloc_free_fill.stdout.exp \
+ malloc_free_fill.vgtest \
malloc_free_fill.stderr.exp \
malloc_usable.stderr.exp malloc_usable.vgtest \
malloc1.stderr.exp malloc1.vgtest \
@@ -113,8 +113,7 @@
origin3-no.vgtest origin3-no.stdout.exp \
origin3-no.stderr.exp \
origin4-many.vgtest origin4-many.stdout.exp \
- origin4-many.stderr.exp-glibc25-x86 \
- origin4-many.stderr.exp-glibc25-amd64 \
+ origin4-many.stderr.exp \
origin5-bz2.vgtest origin5-bz2.stdout.exp \
origin5-bz2.stderr.exp-glibc25-x86 \
origin5-bz2.stderr.exp-glibc25-amd64 \
@@ -132,7 +131,7 @@
pdb-realloc2.stderr.exp pdb-realloc2.stdout.exp pdb-realloc2.vgtest \
pipe.stderr.exp pipe.vgtest \
pointer-trace.vgtest \
- pointer-trace.stderr.exp pointer-trace.stderr.exp64 \
+ pointer-trace.stderr.exp \
post-syscall.stderr.exp post-syscall.stdout.exp post-syscall.vgtest \
realloc1.stderr.exp realloc1.vgtest \
realloc2.stderr.exp realloc2.vgtest \
@@ -154,7 +153,7 @@
supp.supp \
suppfree.stderr.exp suppfree.vgtest \
trivialleak.stderr.exp trivialleak.vgtest \
- unit_libcbase.stderr.exp unit_libcbase.stdout.exp unit_libcbase.vgtest \
+ unit_libcbase.stderr.exp unit_libcbase.vgtest \
unit_oset.stderr.exp unit_oset.stdout.exp unit_oset.vgtest \
varinfo1.vgtest varinfo1.stdout.exp varinfo1.stderr.exp \
varinfo2.vgtest varinfo2.stdout.exp varinfo2.stderr.exp \
|
|
From: <sv...@va...> - 2009-03-11 23:25:21
|
Author: njn Date: 2009-03-11 23:25:03 +0000 (Wed, 11 Mar 2009) New Revision: 9364 Log: - Fixed a problem with the Darwin getsockopt() wrapper identified due to this: https://bugzilla.mozilla.org/show_bug.cgi?id=481939. - Fixed similar problems with the setsockopt() wrapper. - Added tests for these syscalls to scalar.c, and added a list of all the unimplemented syscalls. Modified: branches/DARWIN/coregrind/m_syswrap/syswrap-darwin.c branches/DARWIN/memcheck/tests/darwin/scalar.c branches/DARWIN/memcheck/tests/darwin/scalar.stderr.exp Modified: branches/DARWIN/coregrind/m_syswrap/syswrap-darwin.c =================================================================== --- branches/DARWIN/coregrind/m_syswrap/syswrap-darwin.c 2009-03-11 19:13:34 UTC (rev 9363) +++ branches/DARWIN/coregrind/m_syswrap/syswrap-darwin.c 2009-03-11 23:25:03 UTC (rev 9364) @@ -2094,20 +2094,20 @@ ARG1,ARG2,ARG3,ARG4,ARG5); PRE_REG_READ5(long, "setsockopt", int, s, int, level, int, optname, - const void *, optval, int, optlen); + const void *, optval, vki_socklen_t, optlen); ML_(generic_PRE_sys_setsockopt)(tid, ARG1,ARG2,ARG3,ARG4,ARG5); } PRE(sys_getsockopt) { - Addr optval_p = ARG3; - Addr optlen_p = ARG4; + Addr optval_p = ARG4; + Addr optlen_p = ARG5; PRINT("sys_getsockopt ( %ld, %ld, %ld, %#lx, %#lx )", ARG1,ARG2,ARG3,ARG4,ARG5); PRE_REG_READ5(long, "getsockopt", int, s, int, level, int, optname, - void *, optval, int, *optlen); + void *, optval, vki_socklen_t *, optlen); /* int getsockopt(int socket, int level, int option_name, void *restrict option_value, socklen_t *restrict option_len); */ @@ -2122,8 +2122,8 @@ POST(sys_getsockopt) { - Addr optval_p = ARG3; - Addr optlen_p = ARG4; + Addr optval_p = ARG4; + Addr optlen_p = ARG5; vg_assert(SUCCESS); if (optval_p != (Addr)NULL) { ML_(buf_and_len_post_check) ( tid, VG_(mk_SysRes_Success)(RES), Modified: branches/DARWIN/memcheck/tests/darwin/scalar.c =================================================================== --- branches/DARWIN/memcheck/tests/darwin/scalar.c 2009-03-11 19:13:34 UTC (rev 9363) +++ branches/DARWIN/memcheck/tests/darwin/scalar.c 2009-03-11 23:25:03 UTC (rev 9364) @@ -48,6 +48,441 @@ SY(__NR_write, x0, x0, x0+1); FAIL; //res = write(x0, x0, x0+1); FAIL; + // __NR_open 5 + // __NR_close 6 + // __NR_wait4 7 + // /* 8 old creat */ + // __NR_link 9 + // __NR_unlink 10 + // /* 11 old execv */ + // __NR_chdir 12 + // __NR_fchdir 13 + // __NR_mknod 14 + // __NR_chmod 15 + // __NR_chown 16 + // /* 17 old break */ + // __NR_getfsstat 18 + // /* 19 old lseek */ + // __NR_getpid 20 + // /* 21 old mount */ + // /* 22 old umount */ + // __NR_setuid 23 + // __NR_getuid 24 + // __NR_geteuid 25 + // __NR_ptrace 26 + // __NR_recvmsg 27 + // __NR_sendmsg 28 + // __NR_recvfrom 29 + // __NR_accept 30 + // __NR_getpeername 31 + // __NR_getsockname 32 + // __NR_access 33 + // __NR_chflags 34 + // __NR_fchflags 35 + // __NR_sync 36 + // __NR_kill 37 + // /* 38 old stat */ + // __NR_getppid 39 + // /* 40 old lstat */ + // __NR_dup 41 + // __NR_pipe VG_DARWIN_SYSCALL_CONSTRUCT_UX64(42 + // __NR_getegid 43 + // __NR_profil 44 + // /* 45 old ktrace */ + // __NR_sigaction 46 + // __NR_getgid 47 + // __NR_sigprocmask 48 + // __NR_getlogin 49 + // __NR_setlogin 50 + // __NR_acct 51 + // __NR_sigpending 52 + // __NR_sigaltstack 53 + // __NR_ioctl 54 + // __NR_reboot 55 + // __NR_revoke 56 + // __NR_symlink 57 + // __NR_readlink 58 + // __NR_execve 59 + // __NR_umask 60 + // __NR_chroot 61 + // /* 62 old fstat */ + // /* 63 used internally , reserved */ + // /* 64 old getpagesize */ + // __NR_msync 65 + // __NR_vfork 66 + // /* 67 old vread */ + // /* 68 old vwrite */ + // /* 69 old sbrk */ + // /* 70 old sstk */ + // /* 71 old mmap */ + // /* 72 old vadvise */ + // __NR_munmap 73 + // __NR_mprotect 74 + // __NR_madvise 75 + // /* 76 old vhangup */ + // /* 77 old vlimit */ + // __NR_mincore 78 + // __NR_getgroups 79 + // __NR_setgroups 80 + // __NR_getpgrp 81 + // __NR_setpgid 82 + // __NR_setitimer 83 + // /* 84 old wait */ + // __NR_swapon 85 + // __NR_getitimer 86 + // /* 87 old gethostname */ + // /* 88 old sethostname */ + // __NR_getdtablesize 89 + // __NR_dup2 90 + // /* 91 old getdopt */ + // __NR_fcntl 92 + // __NR_select 93 + // /* 94 old setdopt */ + // __NR_fsync 95 + // __NR_setpriority 96 + // __NR_socket 97 + // __NR_connect 98 + // /* 99 old accept */ + // __NR_getpriority 100 + // /* 101 old send */ + // /* 102 old recv */ + // /* 103 old sigreturn */ + // __NR_bind 104 + + // __NR_setsockopt 105 + GO(__NR_setsockopt, "5s 1m"); + SY(__NR_setsockopt, x0, x0, x0, x0+1, x0+1); FAIL; + + // __NR_listen 106 + // /* 107 old vtimes */ + // /* 108 old sigvec */ + // /* 109 old sigblock */ + // /* 110 old sigsetmask */ + // __NR_sigsuspend 111 + // /* 112 old sigstack */ + // /* 113 old recvmsg */ + // /* 114 old sendmsg */ + // /* 115 old vtrace */ + // __NR_gettimeofday 116 + // __NR_getrusage 117 + + // __NR_getsockopt 118 + // Nb: there's no "getsockopt(optlen) points to unaddressable byte(s)"; + // difficult to get with arg4 being checked with buf_and_len_pre_check. + GO(__NR_getsockopt, "5s 1m"); + SY(__NR_getsockopt, x0, x0, x0, x0+1, x0+&px[1]); FAIL; + + // /* 119 old resuba */ + // __NR_readv 120 + // __NR_writev 121 + // __NR_settimeofday 122 + // __NR_fchown 123 + // __NR_fchmod 124 + // /* 125 old recvfrom */ + // __NR_setreuid 126 + // __NR_setregid 127 + // __NR_rename 128 + // /* 129 old truncate */ + // /* 130 old ftruncate */ + // __NR_flock 131 + // __NR_mkfifo 132 + // __NR_sendto 133 + // __NR_shutdown 134 + // __NR_socketpair 135 + // __NR_mkdir 136 + // __NR_rmdir 137 + // __NR_utimes 138 + // __NR_futimes 139 + // __NR_adjtime 140 + // /* 141 old getpeername */ + // __NR_gethostuuid 142 + // /* 143 old sethostid */ + // /* 144 old getrlimit */ + // /* 145 old setrlimit */ + // /* 146 old killpg */ + // __NR_setsid 147 + // /* 148 old setquota */ + // /* 149 old qquota */ + // /* 150 old getsockname */ + // __NR_getpgid 151 + // __NR_setprivexec 152 + // __NR_pread 153 + // __NR_pwrite 154 + // __NR_nfssvc 155 + // /* 156 old getdirentries */ + // __NR_statfs 157 + // __NR_fstatfs 158 + // __NR_unmount 159 + // /* 160 old async_daemon */ + // __NR_getfh 161 + // /* 162 old getdomainname */ + // /* 163 old setdomainname */ + // /* 164 */ + // __NR_quotactl 165 + // /* 166 old exportfs */ + // __NR_mount 167 + // /* 168 old ustat */ + // __NR_csops 169 + // /* 170 old table */ + // /* 171 old wait3 */ + // /* 172 old rpause */ + // __NR_waitid 173 + // /* 174 old getdents */ + // /* 175 old gc_control */ + // __NR_add_profil 176 + // /* 177 */ + // /* 178 */ + // /* 179 */ + // __NR_kdebug_trace 180 + // __NR_setgid 181 + // __NR_setegid 182 + // __NR_seteuid 183 + // __NR_sigreturn 184 + // __NR_chud 185 + // /* 186 */ + // /* 187 */ + // __NR_stat 188 + // __NR_fstat 189 + // __NR_lstat 190 + // __NR_pathconf 191 + // __NR_fpathconf 192 + // /* 193 */ + // __NR_getrlimit 194 + // __NR_setrlimit 195 + // __NR_getdirentries 196 + // __NR_mmap 197 + // /* 198 __syscall */ + // __NR_lseek VG_DARWIN_SYSCALL_CONSTRUCT_UX64(199 + // __NR_truncate 200 + // __NR_ftruncate 201 + // __NR___sysctl 202 + // __NR_mlock 203 + // __NR_munlock 204 + // __NR_undelete 205 + // __NR_ATsocket 206 + // __NR_ATgetmsg 207 + // __NR_ATputmsg 208 + // __NR_ATPsndreq 209 + // __NR_ATPsndrsp 210 + // __NR_ATPgetreq 211 + // __NR_ATPgetrsp 212 + // /* 213 Reserved for AppleTalk */ + // __NR_kqueue_from_portset_np 214 + // __NR_kqueue_portset_np 215 + // __NR_mkcomplex 216 + // __NR_statv 217 + // __NR_lstatv 218 + // __NR_fstatv 219 + // __NR_getattrlist 220 + // __NR_setattrlist 221 + // __NR_getdirentriesattr 222 + // __NR_exchangedata 223 + // /* 224 checkuseraccess */ + // __NR_searchfs 225 + // __NR_delete 226 + // __NR_copyfile 227 + // /* 228 */ + // /* 229 */ + // __NR_poll 230 + // __NR_watchevent 231 + // __NR_waitevent 232 + // __NR_modwatch 233 + // __NR_getxattr 234 + // __NR_fgetxattr 235 + // __NR_setxattr 236 + // __NR_fsetxattr 237 + // __NR_removexattr 238 + // __NR_fremovexattr 239 + // __NR_listxattr 240 + // __NR_flistxattr 241 + // __NR_fsctl 242 + // __NR_initgroups 243 + // __NR_posix_spawn 244 + // /* 245 */ + // /* 246 */ + // __NR_nfsclnt 247 + // __NR_fhopen 248 + // /* 249 */ + // __NR_minherit 250 + // __NR_semsys 251 + // __NR_msgsys 252 + // __NR_shmsys 253 + // __NR_semctl 254 + // __NR_semget 255 + // __NR_semop 256 + // /* 257 */ + // __NR_msgctl 258 + // __NR_msgget 259 + // __NR_msgsnd 260 + // __NR_msgrcv 261 + // __NR_shmat 262 + // __NR_shmctl 263 + // __NR_shmdt 264 + // __NR_shmget 265 + // __NR_shm_open 266 + // __NR_shm_unlink 267 + // __NR_sem_open 268 + // __NR_sem_close 269 + // __NR_sem_unlink 270 + // __NR_sem_wait 271 + // __NR_sem_trywait 272 + // __NR_sem_post 273 + // __NR_sem_getvalue 274 + // __NR_sem_init 275 + // __NR_sem_destroy 276 + // __NR_open_extended 277 + // __NR_umask_extended 278 + // __NR_stat_extended 279 + // __NR_lstat_extended 280 + // __NR_fstat_extended 281 + // __NR_chmod_extended 282 + // __NR_fchmod_extended 283 + // __NR_access_extended 284 + // __NR_settid 285 + // __NR_gettid 286 + // __NR_setsgroups 287 + // __NR_getsgroups 288 + // __NR_setwgroups 289 + // __NR_getwgroups 290 + // __NR_mkfifo_extended 291 + // __NR_mkdir_extended 292 + // __NR_identitysvc 293 + // __NR_shared_region_check_np 294 + // __NR_shared_region_map_np 295 + // /* 296 old load_shared_file */ + // /* 297 old reset_shared_file */ + // /* 298 old new_system_shared_regions */ + // /* 299 old shared_region_map_file_np */ + // /* 300 old shared_region_make_private_np */ + // __NR___pthread_mutex_destroy 301 + // __NR___pthread_mutex_init 302 + // __NR___pthread_mutex_lock 303 + // __NR___pthread_mutex_trylock 304 + // __NR___pthread_mutex_unlock 305 + // __NR___pthread_cond_init 306 + // __NR___pthread_cond_destroy 307 + // __NR___pthread_cond_broadcast 308 + // __NR___pthread_cond_signal 309 + // __NR_getsid 310 + // __NR_settid_with_pid 311 + // __NR___pthread_cond_timedwait 312 + // __NR_aio_fsync 313 + // __NR_aio_return 314 + // __NR_aio_suspend 315 + // __NR_aio_cancel 316 + // __NR_aio_error 317 + // __NR_aio_read 318 + // __NR_aio_write 319 + // __NR_lio_listio 320 + // __NR___pthread_cond_wait 321 + // __NR_iopolicysys 322 + // /* 323 */ + // __NR_mlockall 324 + // __NR_munlockall 325 + // /* 326 */ + // __NR_issetugid 327 + // __NR___pthread_kill 328 + // __NR___pthread_sigmask 329 + // __NR___sigwait 330 + // __NR_sigwait 330) // GrP fixme hack + // __NR___disable_threadsignal 331 + // __NR___pthread_markcancel 332 + // __NR___pthread_canceled 333 + // __NR___semwait_signal 334 + // /* 335 old utrace */ + // __NR_proc_info 336 + // __NR_sendfile 337 + // __NR_stat64 338 + // __NR_fstat64 339 + // __NR_lstat64 340 + // __NR_stat64_extended 341 + // __NR_lstat64_extended 342 + // __NR_fstat64_extended 343 + // __NR_getdirentries64 344 + // __NR_statfs64 345 + // __NR_fstatfs64 346 + // __NR_getfsstat64 347 + // __NR___pthread_chdir 348 + // __NR___pthread_fchdir 349 + // __NR_audit 350 + // __NR_auditon 351 + // /* 352 */ + // __NR_getauid 353 + // __NR_setauid 354 + // __NR_getaudit 355 + // __NR_setaudit 356 + // __NR_getaudit_addr 357 + // __NR_setaudit_addr 358 + // __NR_auditctl 359 + // __NR_bsdthread_create 360 + // __NR_bsdthread_terminate 361 + // __NR_kqueue 362 + // __NR_kevent 363 + // __NR_lchown 364 + // __NR_stack_snapshot 365 + // __NR_bsdthread_register 366 + // __NR_workq_open 367 + // __NR_workq_ops 368 + // /* 369 */ + // /* 370 */ + // /* 371 */ + // /* 372 */ + // /* 373 */ + // /* 374 */ + // /* 375 */ + // /* 376 */ + // /* 377 */ + // /* 378 */ + // /* 379 */ + // __NR___mac_execve 380 + // __NR___mac_syscall 381 + // __NR___mac_get_file 382 + // __NR___mac_set_file 383 + // __NR___mac_get_link 384 + // __NR___mac_set_link 385 + // __NR___mac_get_proc 386 + // __NR___mac_set_proc 387 + // __NR___mac_get_fd 388 + // __NR___mac_set_fd 389 + // __NR___mac_get_pid 390 + // __NR___mac_get_lcid 391 + // __NR___mac_get_lctx 392 + // __NR___mac_set_lctx 393 + // __NR_setlcid 394 + // __NR_getlcid 395 + // __NR_read_nocancel 396 + // __NR_write_nocancel 397 + // __NR_open_nocancel 398 + // __NR_close_nocancel 399 + // __NR_wait4_nocancel 400 + // __NR_recvmsg_nocancel 401 + // __NR_sendmsg_nocancel 402 + // __NR_recvfrom_nocancel 403 + // __NR_accept_nocancel 404 + // __NR_msync_nocancel 405 + // __NR_fcntl_nocancel 406 + // __NR_select_nocancel 407 + // __NR_fsync_nocancel 408 + // __NR_connect_nocancel 409 + // __NR_sigsuspend_nocancel 410 + // __NR_readv_nocancel 411 + // __NR_writev_nocancel 412 + // __NR_sendto_nocancel 413 + // __NR_pread_nocancel 414 + // __NR_pwrite_nocancel 415 + // __NR_waitid_nocancel 416 + // __NR_poll_nocancel 417 + // __NR_msgsnd_nocancel 418 + // __NR_msgrcv_nocancel 419 + // __NR_sem_wait_nocancel 420 + // __NR_aio_suspend_nocancel 421 + // __NR___sigwait_nocancel 422 + // __NR___semwait_signal_nocancel 423 + // __NR___mac_mount 424 + // __NR___mac_get_mount 425 + // __NR___mac_getfsstat 426 + // __NR_MAXSYSCALL 427 + #if 0 // XXX: all these are copied from x86-darwin/scalar.c. @@ -547,7 +982,7 @@ // __NR_clone 120 #ifndef CLONE_PARENT_SETTID -#define CLONE_PARENT_SETTID 0x00100000 +#define CLONE_PARENT_SETTID 0x00100000 #endif // XXX: should really be "4s 2m"? Not sure... (see PRE(sys_clone)) GO(__NR_clone, "4s 0m"); Modified: branches/DARWIN/memcheck/tests/darwin/scalar.stderr.exp =================================================================== --- branches/DARWIN/memcheck/tests/darwin/scalar.stderr.exp 2009-03-11 19:13:34 UTC (rev 9363) +++ branches/DARWIN/memcheck/tests/darwin/scalar.stderr.exp 2009-03-11 23:25:03 UTC (rev 9364) @@ -39,6 +39,52 @@ ... Address 0x........ is not stack'd, malloc'd or (recently) free'd ----------------------------------------------------- +105: __NR_setsockopt 5s 1m +----------------------------------------------------- + +Syscall param setsockopt(s) contains uninitialised byte(s) + ... + +Syscall param setsockopt(level) contains uninitialised byte(s) + ... + +Syscall param setsockopt(optname) contains uninitialised byte(s) + ... + +Syscall param setsockopt(optval) contains uninitialised byte(s) + ... + +Syscall param setsockopt(optlen) contains uninitialised byte(s) + ... + +Syscall param socketcall.setsockopt(optval) points to unaddressable byte(s) + ... + Address 0x........ is not stack'd, malloc'd or (recently) free'd +----------------------------------------------------- +118: __NR_getsockopt 5s 1m +----------------------------------------------------- + +Syscall param getsockopt(s) contains uninitialised byte(s) + ... + +Syscall param getsockopt(level) contains uninitialised byte(s) + ... + +Syscall param getsockopt(optname) contains uninitialised byte(s) + ... + +Syscall param getsockopt(optval) contains uninitialised byte(s) + ... + +Syscall param getsockopt(optlen) contains uninitialised byte(s) + ... + +Syscall param socketcall.getsockopt(optlen) points to unaddressable byte(s) + ... + Address 0x........ is 0 bytes after a block of size 4 alloc'd + at 0x........: malloc (vg_replace_malloc.c:...) + by 0x........: main (scalar.c:24) +----------------------------------------------------- 9999: 9999 1e ----------------------------------------------------- WARNING: unhandled syscall: 1660954383 |
|
From: Nicholas N. <n.n...@gm...> - 2009-03-11 22:25:51
|
On Thu, Mar 12, 2009 at 12:16 AM, Josef Weidendorfer <Jos...@gm...> wrote: > The fixes for callgrind are trivial (also the dead increment). > Should I commit them? I'm working on a commit to remove a lot of the problems, which includes the callgrind ones. I'll post it when I'm done. Nick |
|
From: Stephen M.
|
VEX uses a somewhat complex lazy translation scheme in order to accurately reflect the semantics of x86/amd64 condition codes ([ER]FLAGS) without too much of a runtime penalty. This mechanism was designed with Memcheck in mind, in as much as it separates part of the lazy EFLAGS state that should be relevant to V bits calculation from ones that shouldn't. However, when I was looking over this code in connection with another project, I noticed it appears to be a slight departure from the way Memcheck's V-bit propagation rules are usually defined. In most cases, Memcheck's V-bit rules are designed to avoid false negatives: Memcheck might set more bits undefined that necessary, but not less. The treatment of the flags departs from this philosophy a bit, though, with respect to the inc, dec, rol, and ror and instructions, which are unusual in that they set some but not all of the flags. (inc and dec don't affect CF, and rol and ror affect OF and CF only.) VEX's translation saves the old flags bits in order to get the right final ones, but it does so in a way that prevents V bits from propagating through these values. The comments justify this by saying it is "inconceivable" that a compiler would generate code that kept an undefined CF live across an inc/dec. I think that claim overstates things a bit. Though I've certainly never seen GCC-generated code reuse partial flags values, I think this would be a fairly natural thing for hand-written assembly or a fancier x86 compiler that modeled each flag bit separately to do. (Intel's manual explains that inc has this behavior for use with loop counters.) But as far as I know this decision hasn't affected Memcheck's practical bug-finding utility one way or the other. The real reason I care is that my Flowcheck tool reuses Memcheck's V-bit handling code for a different purpose, tracking bits that contain secret information. In that context, conservative V-bit propagation is more important, since a Memcheck false negative corresponds to a way of "laundering" secret data. (Drewry and Ormandy's Flayer tool, which also reuses Memcheck for a security-related application, might also care, though I think it might matter less there). So I need to change this for my own purposes, and I thought I'd ask whether it make sense to make the change for Memcheck too. In my smoke testing so far, I haven't seen the change generate any false positives, and if any do exist I think they could be fixed or worked around by normal mechanisms like increasing precision elsewhere or adding suppressions. I've been asked in the past not to send unsolicited VEX patches here, so I'll describe what I changed at a high level, and I can send a patch to anyone who's interested. Basically, I changed the translation of inc, dec, rol, and ror to pass the old flags in CC_DEP2 rather than CC_NDEP. I've also tried And32-ing the saved flags with a mask representing which flags are actually used, though now that I think about it this may not ever help, since I don't know that the translations can ever make partially-defined EFLAGS values. Some macros in ghelpers.c and the translation code in toIR.c need changing, as do a bunch of comments, but no code, in gdefs.h. (I also noticed an independent typo in gdefs.h: the comment about rol/ror mentions the "C" flag twice in an apparent contradiction; the second occurrence should be "S" instead.) Another subtle point that might benefit from more comments is whether, when a word is used to store a single flag value, the flag is stored in the least-significant bit or the bit corresponding to its location in EFLAGS. I think it's always the latter, but the code for adc/sbb only works because the location of CF is the least-significant position. I've done the change just for x86 so far, but I think the change for amd64 would be completely analogous. -- Stephen |
|
From: <sv...@va...> - 2009-03-11 19:13:39
|
Author: bart
Date: 2009-03-11 19:13:34 +0000 (Wed, 11 Mar 2009)
New Revision: 9363
Log:
Force the order in which threads run.
Modified:
trunk/drd/tests/fp_race.c
Modified: trunk/drd/tests/fp_race.c
===================================================================
--- trunk/drd/tests/fp_race.c 2009-03-11 19:12:06 UTC (rev 9362)
+++ trunk/drd/tests/fp_race.c 2009-03-11 19:13:34 UTC (rev 9363)
@@ -70,6 +70,8 @@
pthread_create(&threadid, 0, thread_func, 0);
+ sleep(1); /* Wait until thread_func() finished. */
+
{
if (s_use_mutex) pthread_mutex_lock(&s_mutex);
s_d3++;
|
|
From: <sv...@va...> - 2009-03-11 19:12:23
|
Author: bart Date: 2009-03-11 19:12:06 +0000 (Wed, 11 Mar 2009) New Revision: 9362 Log: Added a comment that explains the purpose of the test program. Modified: trunk/drd/tests/boost_thread.cpp Modified: trunk/drd/tests/boost_thread.cpp =================================================================== --- trunk/drd/tests/boost_thread.cpp 2009-03-11 18:51:22 UTC (rev 9361) +++ trunk/drd/tests/boost_thread.cpp 2009-03-11 19:12:06 UTC (rev 9362) @@ -1,3 +1,7 @@ +// Test program that allows to verify whether Drd works fine for programs that +// use the boost::thread, boost::mutex and boost::condition classes. + + #include <boost/thread/condition.hpp> #include <boost/thread/mutex.hpp> #include <boost/thread/thread.hpp> |
|
From: <sv...@va...> - 2009-03-11 18:51:39
|
Author: bart
Date: 2009-03-11 18:51:22 +0000 (Wed, 11 Mar 2009)
New Revision: 9361
Log:
Removed cross-tool dependency on helgrind/helgrind.h.
Modified:
trunk/drd/drd.h
trunk/drd/drd_clientreq.c
Modified: trunk/drd/drd.h
===================================================================
--- trunk/drd/drd.h 2009-03-11 18:30:59 UTC (rev 9360)
+++ trunk/drd/drd.h 2009-03-11 18:51:22 UTC (rev 9361)
@@ -93,6 +93,12 @@
/* To ask the drd tool to stop tracing accesses to the specified range. */
VG_USERREQ__DRD_STOP_TRACE_ADDR,
/* args: Addr, SizeT. */
+
+ /* To ask the drd tool to discard all information about memory accesses */
+ /* and client objects for the specified range. This client request is */
+ /* binary compatible with the similarly named Helgrind client request. */
+ VG_USERREQ__DRD_CLEAN_MEMORY = VG_USERREQ_TOOL_BASE('H','G'),
+ /* args: Addr, SizeT. */
};
Modified: trunk/drd/drd_clientreq.c
===================================================================
--- trunk/drd/drd_clientreq.c 2009-03-11 18:30:59 UTC (rev 9360)
+++ trunk/drd/drd_clientreq.c 2009-03-11 18:51:22 UTC (rev 9361)
@@ -31,7 +31,6 @@
#include "drd_semaphore.h"
#include "drd_suppression.h" // drd_start_suppression()
#include "drd_thread.h"
-#include "../helgrind/helgrind.h"
#include "pub_tool_basics.h" // Bool
#include "pub_tool_debuginfo.h" // VG_(describe_IP)()
#include "pub_tool_libcassert.h"
@@ -369,7 +368,7 @@
DRD_(thread_leave_synchr)(drd_tid);
break;
- case VG_USERREQ__HG_CLEAN_MEMORY:
+ case VG_USERREQ__DRD_CLEAN_MEMORY:
if (arg[2] > 0)
DRD_(clean_memory)(arg[1], arg[2]);
break;
|
|
From: <sv...@va...> - 2009-03-11 18:31:24
|
Author: bart Date: 2009-03-11 18:30:59 +0000 (Wed, 11 Mar 2009) New Revision: 9360 Log: Un-break 'make dist'. Modified: trunk/massif/tests/Makefile.am trunk/memcheck/tests/Makefile.am Modified: trunk/massif/tests/Makefile.am =================================================================== --- trunk/massif/tests/Makefile.am 2009-03-11 18:29:00 UTC (rev 9359) +++ trunk/massif/tests/Makefile.am 2009-03-11 18:30:59 UTC (rev 9360) @@ -26,7 +26,6 @@ null.post.exp null.stderr.exp null.vgtest \ one.post.exp one.stderr.exp one.vgtest \ overloaded-new.post.exp overloaded-new.stderr.exp overloaded-new.vgtest \ - params.post.exp params.stderr.exp params.vgtest \ peak.post.exp peak.stderr.exp peak.vgtest \ peak2.post.exp peak2.stderr.exp peak2.vgtest \ realloc.post.exp realloc.stderr.exp realloc.vgtest \ Modified: trunk/memcheck/tests/Makefile.am =================================================================== --- trunk/memcheck/tests/Makefile.am 2009-03-11 18:29:00 UTC (rev 9359) +++ trunk/memcheck/tests/Makefile.am 2009-03-11 18:30:59 UTC (rev 9360) @@ -78,7 +78,7 @@ lsframe1.vgtest lsframe1.stdout.exp lsframe1.stderr.exp \ lsframe2.vgtest lsframe2.stdout.exp lsframe2.stderr.exp \ mallinfo.stderr.exp mallinfo.vgtest \ - malloc_free_fill.vgtest malloc_free_fill.stdout.exp \ + malloc_free_fill.vgtest \ malloc_free_fill.stderr.exp \ malloc_usable.stderr.exp malloc_usable.vgtest \ malloc1.stderr.exp malloc1.vgtest \ @@ -110,8 +110,7 @@ origin3-no.vgtest origin3-no.stdout.exp \ origin3-no.stderr.exp \ origin4-many.vgtest origin4-many.stdout.exp \ - origin4-many.stderr.exp-glibc25-x86 \ - origin4-many.stderr.exp-glibc25-amd64 \ + origin4-many.stderr.exp \ origin5-bz2.vgtest origin5-bz2.stdout.exp \ origin5-bz2.stderr.exp-glibc25-x86 \ origin5-bz2.stderr.exp-glibc25-amd64 \ @@ -129,7 +128,7 @@ pdb-realloc2.stderr.exp pdb-realloc2.stdout.exp pdb-realloc2.vgtest \ pipe.stderr.exp pipe.vgtest \ pointer-trace.vgtest \ - pointer-trace.stderr.exp pointer-trace.stderr.exp64 \ + pointer-trace.stderr.exp \ post-syscall.stderr.exp post-syscall.stdout.exp post-syscall.vgtest \ realloc1.stderr.exp realloc1.vgtest \ realloc2.stderr.exp realloc2.vgtest \ @@ -151,7 +150,7 @@ supp.supp \ suppfree.stderr.exp suppfree.vgtest \ trivialleak.stderr.exp trivialleak.vgtest \ - unit_libcbase.stderr.exp unit_libcbase.stdout.exp unit_libcbase.vgtest \ + unit_libcbase.stderr.exp unit_libcbase.vgtest \ unit_oset.stderr.exp unit_oset.stdout.exp unit_oset.vgtest \ varinfo1.vgtest varinfo1.stdout.exp varinfo1.stderr.exp \ varinfo2.vgtest varinfo2.stdout.exp varinfo2.stderr.exp \ |
|
From: <sv...@va...> - 2009-03-11 18:29:26
|
Author: bart Date: 2009-03-11 18:29:00 +0000 (Wed, 11 Mar 2009) New Revision: 9359 Log: Reduced two expected output files to one for the test called atomic_var. Added: trunk/drd/tests/atomic_var.stderr.exp-with-atomic-builtins Removed: trunk/drd/tests/atomic_var.stderr.exp-with-atomic-builtins-1 trunk/drd/tests/atomic_var.stderr.exp-with-atomic-builtins-2 Modified: trunk/drd/tests/Makefile.am trunk/drd/tests/atomic_var.vgtest trunk/drd/tests/filter_stderr_and_thread_no Modified: trunk/drd/tests/Makefile.am =================================================================== --- trunk/drd/tests/Makefile.am 2009-03-11 11:09:35 UTC (rev 9358) +++ trunk/drd/tests/Makefile.am 2009-03-11 18:29:00 UTC (rev 9359) @@ -14,8 +14,7 @@ EXTRA_DIST = \ $(noinst_SCRIPTS) \ - atomic_var.stderr.exp-with-atomic-builtins-1 \ - atomic_var.stderr.exp-with-atomic-builtins-2 \ + atomic_var.stderr.exp-with-atomic-builtins \ atomic_var.stderr.exp-without-atomic-builtins \ atomic_var.vgtest \ bar_bad.stderr.exp \ Copied: trunk/drd/tests/atomic_var.stderr.exp-with-atomic-builtins (from rev 9358, trunk/drd/tests/atomic_var.stderr.exp-with-atomic-builtins-1) =================================================================== --- trunk/drd/tests/atomic_var.stderr.exp-with-atomic-builtins (rev 0) +++ trunk/drd/tests/atomic_var.stderr.exp-with-atomic-builtins 2009-03-11 18:29:00 UTC (rev 9359) @@ -0,0 +1,13 @@ + +Start of test. +Conflicting load by thread x/x at 0x........ size 4 + at 0x........: thread_func_2 (atomic_var.c:?) + by 0x........: vgDrd_thread_wrapper (drd_pthread_intercepts.c:?) + by 0x........: (within libpthread-?.?.so) + by 0x........: clone (in /...libc...) +Location 0x........ is 0 bytes inside local var "s_y" +declared at atomic_var.c:35, in frame #? of thread x +y = 1 +Test finished. + +ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0) Property changes on: trunk/drd/tests/atomic_var.stderr.exp-with-atomic-builtins ___________________________________________________________________ Name: svn:mergeinfo + Deleted: trunk/drd/tests/atomic_var.stderr.exp-with-atomic-builtins-1 =================================================================== --- trunk/drd/tests/atomic_var.stderr.exp-with-atomic-builtins-1 2009-03-11 11:09:35 UTC (rev 9358) +++ trunk/drd/tests/atomic_var.stderr.exp-with-atomic-builtins-1 2009-03-11 18:29:00 UTC (rev 9359) @@ -1,14 +0,0 @@ - -Start of test. -Thread 2: -Conflicting load by thread 2/3 at 0x........ size 4 - at 0x........: thread_func_2 (atomic_var.c:?) - by 0x........: vgDrd_thread_wrapper (drd_pthread_intercepts.c:?) - by 0x........: (within libpthread-?.?.so) - by 0x........: clone (in /...libc...) -Location 0x........ is 0 bytes inside local var "s_y" -declared at atomic_var.c:35, in frame #? of thread 2 -y = 1 -Test finished. - -ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0) Deleted: trunk/drd/tests/atomic_var.stderr.exp-with-atomic-builtins-2 =================================================================== --- trunk/drd/tests/atomic_var.stderr.exp-with-atomic-builtins-2 2009-03-11 11:09:35 UTC (rev 9358) +++ trunk/drd/tests/atomic_var.stderr.exp-with-atomic-builtins-2 2009-03-11 18:29:00 UTC (rev 9359) @@ -1,14 +0,0 @@ - -Start of test. -Thread 3: -Conflicting load by thread 3/3 at 0x........ size 4 - at 0x........: thread_func_2 (atomic_var.c:?) - by 0x........: vgDrd_thread_wrapper (drd_pthread_intercepts.c:?) - by 0x........: (within libpthread-?.?.so) - by 0x........: clone (in /...libc...) -Location 0x........ is 0 bytes inside local var "s_y" -declared at atomic_var.c:35, in frame #? of thread 3 -y = 1 -Test finished. - -ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0) Modified: trunk/drd/tests/atomic_var.vgtest =================================================================== --- trunk/drd/tests/atomic_var.vgtest 2009-03-11 11:09:35 UTC (rev 9358) +++ trunk/drd/tests/atomic_var.vgtest 2009-03-11 18:29:00 UTC (rev 9359) @@ -1,3 +1,4 @@ prereq: ./supported_libpthread vgopts: --var-info=yes --check-stack-var=yes --show-confl-seg=no prog: atomic_var +stderr_filter: filter_stderr_and_thread_no Modified: trunk/drd/tests/filter_stderr_and_thread_no =================================================================== --- trunk/drd/tests/filter_stderr_and_thread_no 2009-03-11 11:09:35 UTC (rev 9358) +++ trunk/drd/tests/filter_stderr_and_thread_no 2009-03-11 18:29:00 UTC (rev 9359) @@ -5,4 +5,5 @@ # Get rid of the numbers as these make some tests more scheduling sensitive # -- those where there are multiple threads which play interchangeable roles. grep -v "^Thread [0-9][0-9]*:$" | -sed -e "s:hread [0-9][0-9]*/[0-9][0-9]*:hread x/x:g" +sed -e "s:hread [0-9][0-9]*/[0-9][0-9]*:hread x/x:g" \ + -e "s:of thread [0-9][0-9]*$:of thread x:g" |
|
From: Greg P. <gp...@ap...> - 2009-03-11 18:08:14
|
On Mar 10, 2009, at 10:31 PM, Nicholas Nethercote wrote: > - when it doesn't realise that a particular function terminates > execution, and complains about something afterwards Does the static analyzer recognize __attribute__((noreturn)) ? You might be able to suppress the warning that way, and sometimes it helps the compiler too. -- Greg Parker gp...@ap... Runtime Wrangler |
|
From: <sv...@va...> - 2009-03-11 11:10:00
|
Author: bart
Date: 2009-03-11 11:09:35 +0000 (Wed, 11 Mar 2009)
New Revision: 9358
Log:
Reverted to r8771. Please ignore the commit message of r9325.
Modified:
trunk/helgrind/tests/bar_trivial.c
Modified: trunk/helgrind/tests/bar_trivial.c
===================================================================
--- trunk/helgrind/tests/bar_trivial.c 2009-03-11 06:14:13 UTC (rev 9357)
+++ trunk/helgrind/tests/bar_trivial.c 2009-03-11 11:09:35 UTC (rev 9358)
@@ -16,7 +16,7 @@
void* child_fn ( void* arg )
{
- long r, n = *(long*)arg;
+ long r, n = (long)arg;
if (n == 1) x++;
@@ -36,14 +36,12 @@
{
long i, r;
pthread_t thr[NTHR];
- long thread_arg[NTHR];
r = pthread_barrier_init(&bar, NULL, NTHR);
assert(!r);
for (i = 0; i < NTHR; i++) {
- thread_arg[i] = i;
- r = pthread_create(&thr[i], NULL, child_fn, &(thread_arg[i]));
+ r = pthread_create(&thr[i], NULL, child_fn, (void*)i);
assert(!r);
}
|
|
From: Bart V. A. <bar...@gm...> - 2009-03-11 10:47:48
|
On Wed, Mar 11, 2009 at 11:34 AM, Julian Seward <js...@ac...> wrote: > On Wednesday 11 March 2009, Bart Van Assche wrote: >> In the first statement of child_fn(): long r, n = *(long*)arg; > > You introduced that memory reference in 9325. Before that the > original version was > > long r, n = (long)arg; You are right -- I will revert my changes to bar_trivial.c. Sorry for this -- I guess it was too late in the evening when I committed these changes. Bart. |
|
From: Julian S. <js...@ac...> - 2009-03-11 10:35:37
|
On Wednesday 11 March 2009, Bart Van Assche wrote: > On Wed, Mar 11, 2009 at 11:23 AM, Julian Seward <js...@ac...> wrote: > > On Wednesday 11 March 2009, Bart Van Assche wrote: > >> On Wed, Mar 11, 2009 at 10:53 AM, Julian Seward <js...@ac...> wrote: > >> > On Monday 09 March 2009, Bart Van Assche wrote: > >> >> A clarification regarding the commit below: currently both Drd and > >> >> Helgrind use the bar_trivial test program, but apparently neither the > >> >> trunk version of Drd nor Helgrind detect the race on the loop > >> >> variable 'i'. > >> > > >> > I don't understand this .. can you clarify? Where is this race on the > >> > loop variable 'i'? > >> > >> It is possible that the loop variable i is incremented from 0 to 1 > >> before the function child_fn() in any of the two threads created by > >> pthread_create() gets a chance to read from the address &i. > > > > So, referring to the original program, not your modified version, where > > do the child threads read from the address &i ? > > In the first statement of child_fn(): long r, n = *(long*)arg; You introduced that memory reference in 9325. Before that the original version was long r, n = (long)arg; J |
|
From: Bart V. A. <bar...@gm...> - 2009-03-11 10:28:35
|
On Wed, Mar 11, 2009 at 11:23 AM, Julian Seward <js...@ac...> wrote: > On Wednesday 11 March 2009, Bart Van Assche wrote: >> On Wed, Mar 11, 2009 at 10:53 AM, Julian Seward <js...@ac...> wrote: >> > On Monday 09 March 2009, Bart Van Assche wrote: >> >> A clarification regarding the commit below: currently both Drd and >> >> Helgrind use the bar_trivial test program, but apparently neither the >> >> trunk version of Drd nor Helgrind detect the race on the loop variable >> >> 'i'. >> > >> > I don't understand this .. can you clarify? Where is this race on the >> > loop variable 'i'? >> >> It is possible that the loop variable i is incremented from 0 to 1 >> before the function child_fn() in any of the two threads created by >> pthread_create() gets a chance to read from the address &i. > > So, referring to the original program, not your modified version, where > do the child threads read from the address &i ? In the first statement of child_fn(): long r, n = *(long*)arg; Bart. |
|
From: Julian S. <js...@ac...> - 2009-03-11 10:24:41
|
On Monday 09 March 2009, Bart Van Assche wrote: > A clarification regarding the commit below: currently both Drd and > Helgrind use the bar_trivial test program, but apparently neither the > trunk version of Drd nor Helgrind detect the race on the loop variable > 'i'. I don't understand this .. can you clarify? Where is this race on the loop variable 'i'? J |
|
From: Julian S. <js...@ac...> - 2009-03-11 10:24:29
|
On Wednesday 11 March 2009, Bart Van Assche wrote: > On Wed, Mar 11, 2009 at 10:53 AM, Julian Seward <js...@ac...> wrote: > > On Monday 09 March 2009, Bart Van Assche wrote: > >> A clarification regarding the commit below: currently both Drd and > >> Helgrind use the bar_trivial test program, but apparently neither the > >> trunk version of Drd nor Helgrind detect the race on the loop variable > >> 'i'. > > > > I don't understand this .. can you clarify? Where is this race on the > > loop variable 'i'? > > It is possible that the loop variable i is incremented from 0 to 1 > before the function child_fn() in any of the two threads created by > pthread_create() gets a chance to read from the address &i. So, referring to the original program, not your modified version, where do the child threads read from the address &i ? J |
|
From: Bart V. A. <bar...@gm...> - 2009-03-11 10:14:49
|
On Wed, Mar 11, 2009 at 10:53 AM, Julian Seward <js...@ac...> wrote:
> On Monday 09 March 2009, Bart Van Assche wrote:
>> A clarification regarding the commit below: currently both Drd and
>> Helgrind use the bar_trivial test program, but apparently neither the
>> trunk version of Drd nor Helgrind detect the race on the loop variable
>> 'i'.
>
> I don't understand this .. can you clarify? Where is this race on the
> loop variable 'i'?
It is possible that the loop variable i is incremented from 0 to 1
before the function child_fn() in any of the two threads created by
pthread_create() gets a chance to read from the address &i. This is a
data race on a stack variable. Inserting a printf statement for the
variable 'n' in child_fn() results in the following (unintended)
output for the original bar_trivial program:
$ ./bar_trivial
n = 1
n = 1
x = 2
$ cat bar_trivial.c
/* This is the most trivial test I could think of that involves
barriers. If H fails to notice the pthread_barrier_wait call then
it will report a race. Correct behaviour is not to report a race
(there isn't one.) */
#define _GNU_SOURCE
#include <pthread.h>
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#include <unistd.h>
int x = 0;
pthread_barrier_t bar;
void* child_fn ( void* arg )
{
long r, n = *(long*)arg;
printf("n = %d\n", n);
if (n == 1) x++;
r = pthread_barrier_wait(&bar);
assert(r == 0 || r == PTHREAD_BARRIER_SERIAL_THREAD);
if (n == 0) x++;
sleep(1); /* ensure both threads get to this point before
either exits. */
return NULL;
}
#define NTHR 2
int main ( void )
{
long i, r;
pthread_t thr[NTHR];
r = pthread_barrier_init(&bar, NULL, NTHR);
assert(!r);
for (i = 0; i < NTHR; i++) {
r = pthread_create(&thr[i], NULL, child_fn, &i);
assert(!r);
}
for (i = 0; i < NTHR; i++) {
r = pthread_join(thr[i], NULL);
assert(!r);
}
r = pthread_barrier_destroy(&bar); assert(!r);
printf("x = %d\n", x);
return 0;
}
Bart.
|
|
From: Julian S. <js...@ac...> - 2009-03-11 09:46:38
|
> Log: > Remove some unnecessary mc_translate cases that aren't present on the > trunk. I think these were intended to deal with the cases Mul32/64(x,0). If it continues to be a problem we can optimise these out at the primary IR optimisation phase, immediately post translation from the initial guest instructions. It's a 1-liner. J |
|
From: Bart V. A. <bar...@gm...> - 2009-03-11 08:03:30
|
Nightly build on georgia-tech-cellbuzz-native ( cellbuzz, ppc64, Fedora 7, native ) started at 2009-03-11 02:00:02 EDT Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... done Regression test results follow == 407 tests, 39 stderr failures, 9 stdout failures, 0 post failures == exp-ptrcheck/tests/bad_percentify (stderr) exp-ptrcheck/tests/base (stderr) exp-ptrcheck/tests/ccc (stderr) exp-ptrcheck/tests/fp (stderr) exp-ptrcheck/tests/globalerr (stderr) exp-ptrcheck/tests/hackedbz2 (stderr) exp-ptrcheck/tests/hp_bounds (stderr) exp-ptrcheck/tests/hp_dangle (stderr) exp-ptrcheck/tests/justify (stderr) exp-ptrcheck/tests/partial_bad (stderr) exp-ptrcheck/tests/partial_good (stderr) exp-ptrcheck/tests/preen_invars (stderr) exp-ptrcheck/tests/pth_create (stderr) exp-ptrcheck/tests/pth_specific (stderr) exp-ptrcheck/tests/realloc (stderr) exp-ptrcheck/tests/stackerr (stderr) exp-ptrcheck/tests/strcpy (stderr) exp-ptrcheck/tests/supp (stderr) exp-ptrcheck/tests/tricky (stderr) exp-ptrcheck/tests/unaligned (stderr) exp-ptrcheck/tests/zero (stderr) helgrind/tests/hg05_race2 (stderr) helgrind/tests/tc18_semabuse (stderr) helgrind/tests/tc20_verifywrap (stderr) memcheck/tests/deep_templates (stdout) memcheck/tests/leak-cases-full (stderr) memcheck/tests/leak-cases-summary (stderr) memcheck/tests/leak-cycle (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/origin5-bz2 (stderr) memcheck/tests/varinfo1 (stderr) memcheck/tests/varinfo2 (stderr) memcheck/tests/varinfo3 (stderr) memcheck/tests/varinfo4 (stderr) memcheck/tests/varinfo5 (stderr) memcheck/tests/varinfo6 (stderr) memcheck/tests/wrap8 (stderr) none/tests/linux/mremap (stderr) none/tests/linux/mremap2 (stdout) none/tests/ppc32/jm-fp (stdout) none/tests/ppc32/jm-vmx (stdout) none/tests/ppc32/round (stdout) none/tests/ppc32/test_gx (stdout) none/tests/ppc64/jm-fp (stdout) none/tests/ppc64/jm-vmx (stdout) none/tests/ppc64/round (stdout) none/tests/shell_valid2 (stderr) none/tests/shell_valid3 (stderr) |
|
From: <sv...@va...> - 2009-03-11 06:14:33
|
Author: njn Date: 2009-03-11 06:14:13 +0000 (Wed, 11 Mar 2009) New Revision: 9357 Log: Merge r9356 (regtest fixes) from the trunk. Modified: branches/DARWIN/memcheck/tests/filter_stderr branches/DARWIN/memcheck/tests/filter_xml Modified: branches/DARWIN/memcheck/tests/filter_stderr =================================================================== --- branches/DARWIN/memcheck/tests/filter_stderr 2009-03-11 06:12:59 UTC (rev 9356) +++ branches/DARWIN/memcheck/tests/filter_stderr 2009-03-11 06:14:13 UTC (rev 9357) @@ -29,10 +29,6 @@ # appears in some of the syscall parameter names (eg "act->sa_handler"). perl -p -0 -e 's/(Syscall param[^\n<]*)\n( (at|by)[^\n]*\n)*/$1\n ...\n/gs' | -# Something similar for XML output. Chops everything within -# <stack>...</stack>. -perl -p -0 -e 's/(<what>Syscall param[^\n]*)\n([^\n]*(stack|frame|ip|obj|fn)[^\n]*\n)*/$1\n/gs' | - # Leak check filtering. sed "s/checked [0-9,]* bytes./checked ... bytes./" | Modified: branches/DARWIN/memcheck/tests/filter_xml =================================================================== --- branches/DARWIN/memcheck/tests/filter_xml 2009-03-11 06:12:59 UTC (rev 9356) +++ branches/DARWIN/memcheck/tests/filter_xml 2009-03-11 06:14:13 UTC (rev 9357) @@ -11,8 +11,12 @@ perl -p -e "s/(m_replacemalloc\/)?vg_replace_malloc.c/vg_replace_malloc.c/" | perl -0 -p -e "s/<suppcounts>.*<\/suppcounts>/<suppcounts>...<\/suppcounts>/s" | perl -p -e "s/<time>.*<\/time>/<time>...<\/time>/s" | -perl -0 -p -e "s/<vargv>.*<\/vargv>/<vargv>...<\/vargv>/s" +perl -0 -p -e "s/<vargv>.*<\/vargv>/<vargv>...<\/vargv>/s" | +# Remove stack traces for Syscall param errors (see filter_stderr for more). +# Chops everything within <stack>...</stack>. +perl -p -0 -e 's/(<what>Syscall param[^\n]*)\n([^\n]*(stack|frame|ip|obj|fn|dir|line)[^\n]*\n)*/$1\n/gs' + # Collected wisdom re Perl magic incantation: # # From: Tom Hughes |
|
From: <sv...@va...> - 2009-03-11 06:13:04
|
Author: njn Date: 2009-03-11 06:12:59 +0000 (Wed, 11 Mar 2009) New Revision: 9356 Log: Another regtest fix for machines with debug info installed for libc. Modified: trunk/memcheck/tests/filter_stderr trunk/memcheck/tests/filter_xml Modified: trunk/memcheck/tests/filter_stderr =================================================================== --- trunk/memcheck/tests/filter_stderr 2009-03-11 02:34:57 UTC (rev 9355) +++ trunk/memcheck/tests/filter_stderr 2009-03-11 06:12:59 UTC (rev 9356) @@ -29,10 +29,6 @@ # appears in some of the syscall parameter names (eg "act->sa_handler"). perl -p -0 -e 's/(Syscall param[^\n<]*)\n( (at|by)[^\n]*\n)*/$1\n ...\n/gs' | -# Something similar for XML output. Chops everything within -# <stack>...</stack>. -perl -p -0 -e 's/(<what>Syscall param[^\n]*)\n([^\n]*(stack|frame|ip|obj|fn)[^\n]*\n)*/$1\n/gs' | - # Leak check filtering. sed "s/checked [0-9,]* bytes./checked ... bytes./" | Modified: trunk/memcheck/tests/filter_xml =================================================================== --- trunk/memcheck/tests/filter_xml 2009-03-11 02:34:57 UTC (rev 9355) +++ trunk/memcheck/tests/filter_xml 2009-03-11 06:12:59 UTC (rev 9356) @@ -11,8 +11,12 @@ sed "s/\(m_replacemalloc\/\)\?vg_replace_malloc.c/vg_replace_malloc.c/" | perl -0 -p -e "s/<suppcounts>.*<\/suppcounts>/<suppcounts>...<\/suppcounts>/s" | perl -p -e "s/<time>.*<\/time>/<time>...<\/time>/s" | -perl -0 -p -e "s/<vargv>.*<\/vargv>/<vargv>...<\/vargv>/s" +perl -0 -p -e "s/<vargv>.*<\/vargv>/<vargv>...<\/vargv>/s" | +# Remove stack traces for Syscall param errors (see filter_stderr for more). +# Chops everything within <stack>...</stack>. +perl -p -0 -e 's/(<what>Syscall param[^\n]*)\n([^\n]*(stack|frame|ip|obj|fn|dir|line)[^\n]*\n)*/$1\n/gs' + # Collected wisdom re Perl magic incantation: # # From: Tom Hughes |
|
From: Nicholas N. <n.n...@gm...> - 2009-03-11 05:31:43
|
On Mon, Mar 9, 2009 at 9:01 AM, Nicholas Nethercote
<n.n...@gm...> wrote:
>
> I've looked through a few but not all of the complaints. 143 of them
> are dead initialisation/assignment/stores. 10 are logic errors (null
> deref, undefined deref, undefined return value). It looks like there
> are some false positives, but some of them are certainly real and
> worth fixing. The output is quite readable -- sometimes the problem
> paths go through multiple conditionals before reaching the problem
> point.
>
> I'll look through them in more detail over the next few days, but if
> anyone else wants to try it might be illuminating.
Here are my notes. They're a bit rough, but you should get the general
idea. I plan to fix a lot of the found problems, many of them are simple.
It's not clear to me whether this will become something worth running
frequently or not, depends on whether the false positives are possible to
work around.
Nick
Usability shortcomings:
- "regparms" attribute confuses the compiler, leads to dups? (LLVM bug
#3782)
- -o doesn't accept relative paths, this is confusing (LLVM bug #3783)
Summary:
- logic errors:
- a lot of false positives
- when it doesn't realise that a repeated condition must give the same
result both times
- when it doesn't realise that a particular function terminates
execution, and complains about something afterwards
- a few dups, where two similar paths lead to the same reported problem
- three where I think it's just wrong
- a couple of cases where asserting that a function arg isn't NULL would
be a good idea.
- No genuine bugs found, AFAICT
- dead stores:
- Identifies lots of dead variables, which is good
- A few places where return values of functions are assigned and not
checked, and they perhaps should be
- A few places where dead assignments are done for symmetry. Some of
these could be avoided by making variables block-local (improving the
code)
- Some dups, I think again because of the 'regparm' non-support?
- One case seems to be just wrong
- I didn't look at the VEX ones
- No genuine bugs found, AFAICT
Nb: you can sort columns in the HTML by clicking on them
File Line Path Length
-----------------------------------------------------------------------------
Logic Errors
-----------------------------------------------------------------------------
Dereference of undefined pointer value
----
VEX /priv /guest-generic /bb_to_IR.c 381 42 WRONG?
VEX /priv /guest-generic /bb_to_IR.c 381 68 WRONG?
null dereference
----
coregrind /m_aspacemgr /aspacemgr-linux.c 423 17 FIX: assert != 0
coregrind /m_aspacemgr /aspacemgr-linux.c 423 19 dup
coregrind /m_initimg /initimg-linux.c 274 6 FIX: assert != 0
coregrind /m_initimg /initimg-linux.c 274 6 dup
coregrind /m_replacemalloc /vg_replace_malloc.c 579 1 yes, but
unreachable after _exit (FIX?)
VEX /priv /host-amd64 /hdefs.c 2750 13 FALSE,
repeated condition (i->Ain.Goto.cond != Acc_ALWAYS)
VEX /priv /host-amd64 /hdefs.c 2750 15 dup
VEX /priv /host-generic /reg_alloc2.c 572 23 WRONG?
VEX /priv /host-generic /reg_alloc2.c 572 24 dup
uninitialized argument
----
coregrind /m_aspacemgr /aspacemgr-linux.c 3211 25 FALSE,
doesn't realise ML_(am_exit) is terminating
coregrind /m_aspacemgr /aspacemgr-linux.c 3211 26 dup
uninitialized return value
----
coregrind /m_debuginfo /readdwarf3.c 367 2 FALSE,
doesn't realise c->barf is terminating
VEX /priv /guest-amd64 /toIR.c 4052 4 FALSE,
repeated condition
VEX /priv /guest-x86 /toIR.c 3083 4 FALSE (ditto)
uninitialized value
----
coregrind /m_aspacemgr /aspacemgr-linux.c 3182 18 FALSE,
doesn't realise ML_(am_exit) is terminating
coregrind /m_aspacemgr /aspacemgr-linux.c 3182 20 dup
coregrind /m_aspacemgr /aspacemgr-linux.c 3183 17 FALSE (ditto)
coregrind /m_aspacemgr /aspacemgr-linux.c 3183 22 dup
coregrind /m_aspacemgr /aspacemgr-linux.c 3184 21 FALSE (ditto)
coregrind /m_aspacemgr /aspacemgr-linux.c 3184 24 dup
-----------------------------------------------------------------------------
Dead Store
-----------------------------------------------------------------------------
dead assignment
cachegrind /cg_main.c 1351 1 FIX (dead var)
cachegrind /cg_main.c 1351 1 exact dup
cachegrind /cg_main.c 1481 1 FIX (dead var)
cachegrind /cg_main.c 1481 1 exact dup
cachegrind /cg_main.c 1495 1 FIX (dead var)
cachegrind /cg_main.c 1495 1 exact dup
cachegrind /cg_main.c 1521 1 FIX (dead var)
cachegrind /cg_main.c 1521 1 exact dup
callgrind /bbcc.c 536 1 FIX (dead var)
callgrind /bbcc.c 536 1 exact dup
callgrind /dump.c 193 1 dead var used
in commented-out code
callgrind /dump.c 195 1 ditto
callgrind /dump.c 200 1 ditto
coregrind /m_aspacemgr /aspacemgr-linux.c 915 1 WRONG! it is used
coregrind /m_coredump /coredump-elf.c 440 1 FIX: dead var,
or should check 'ret'?
coregrind /m_coredump /coredump-elf.c 440 1 exact dup
coregrind /m_debuginfo /readdwarf3.c 1325 1 FIX? retval
(safely) ignored
coregrind /m_debuginfo /readdwarf3.c 1332 1 FIX? retval
(safely) ignored
coregrind /m_debuginfo /readdwarf3.c 1333 1 FIX? retval
(safely) ignored
coregrind /m_debuginfo /readdwarf3.c 1334 1 FIX? retval
(safely) ignored
coregrind /m_debuginfo /readdwarf3.c 1335 1 FIX? retval
(safely) ignored
coregrind /m_debuginfo /readdwarf3.c 1336 1 FIX? retval
(safely) ignored
coregrind /m_debuginfo /readdwarf3.c 1617 1 FIX: dead var
coregrind /m_debuginfo /readdwarf3.c 2464 1 FIX: dead var
coregrind /m_debuginfo /readdwarf3.c 906 1 FIX? used in
commented-out code
coregrind /m_debuginfo /readdwarf3.c 907 1 FIX? used in
commented-out code
coregrind /m_debuginfo /readdwarf.c 2918 1 FIX: ignore
retval, don't assign to 'off'
coregrind /m_debuginfo /readdwarf.c 2918 1 exact dup
coregrind /m_debuginfo /readdwarf.c 886 1 ditto
coregrind /m_debuginfo /readdwarf.c 886 1 exact dup
coregrind /m_debuginfo /readdwarf.c 985 1 FIX: dead var,
or 'ver' should be checked?
coregrind /m_debuginfo /readdwarf.c 985 1 exact dup
coregrind /m_debuginfo /readelf.c 368 1 FALSE, used in
conditionally-compiled code
coregrind /m_debuginfo /readelf.c 368 1 exact dup
coregrind /m_debuginfo /readelf.c 702 1 FIX (dead var)
coregrind /m_debuginfo /readelf.c 702 1 exact dup
coregrind /m_debuginfo /readelf.c 723 1 FIX (dead var)
coregrind /m_debuginfo /readelf.c 723 1 FIX (dead var)
coregrind /m_debuginfo /storage.c 1047 1 FIX (dead var)
coregrind /m_debuginfo /storage.c 1048 1 FIX (dead var)
coregrind /m_debuginfo /storage.c 954 1 correct,
trivial/symmetrical
coregrind /m_demangle /cplus-dem.c 1298 1 FIX?
coregrind /m_errormgr.c 973 1 FIX
coregrind /m_initimg /initimg-linux.c 181 1 FIX: dead var,
or 'ret' should be inspected?
coregrind /m_initimg /initimg-linux.c 181 1 exact dup
exp-ptrcheck /h_main.c 1187 1 FIX: dead var
exp-ptrcheck /h_main.c 1187 1 exact dup
exp-ptrcheck /h_main.c 1190 1 FIX: dead var
exp-ptrcheck /h_main.c 1190 1 exact dup
exp-ptrcheck /h_main.c 1193 1 FIX: dead var
exp-ptrcheck /h_main.c 1193 1 exact dup
exp-ptrcheck /h_main.c 1196 1 FIX: dead var
exp-ptrcheck /h_main.c 1196 1 exact dup
helgrind /hg_main.c 415 1 FIX: remove
dead assignment, move first assignment into declaration
helgrind /hg_main.c 415 1 FIX: exact dup
helgrind /libhb_core.c 1745 1 FIX:
assignment unnecessary
helgrind /libhb_core.c 1843 1 FIX:
assignment unnecessary
helgrind /libhb_core.c 1853 1 FIX (dead var)
helgrind /libhb_core.c 1862 1 FIX (dead var)
helgrind /libhb_core.c 1873 1 FIX (dead var)
helgrind /libhb_core.c 1881 1 FIX (dead var)
helgrind /libhb_core.c 1888 1 FIX (dead var)
helgrind /libhb_core.c 4013 1 FIX (dead var)
helgrind /libhb_core.c 4039 1 FIX (dead var)
helgrind /libhb_core.c 4171 1 FIX (dead var)
massif /ms_main.c 1935 1 FIX (dead var)
massif /ms_main.c 1992 1 FIX (dead var)
massif /ms_main.c 2015 1 FIX (dead var)
memcheck /mc_main.c 1425 1 trivial/symmetrical
memcheck /mc_main.c 1425 1 exact dup
memcheck /mc_translate.c 2937 1 exact dup(?)
memcheck /mc_translate.c 2937 1 FIX: make var more local
memcheck /mc_translate.c 2938 1 FIX: make var more local
memcheck /mc_translate.c 2938 1 FIX: make var more local
memcheck /mc_translate.c 2939 1 FIX: make var more local
memcheck /mc_translate.c 2939 1 FIX: make var more local
memcheck /mc_translate.c 2940 1 FIX: make var more local
memcheck /mc_translate.c 3171 1 FIX: make var more local
memcheck /mc_translate.c 3188 1 FIX (dead var)
memcheck /mc_translate.c 3258 1 FIX (dead var)
memcheck /mc_translate.c 4093 1 FIX (dead var)
memcheck /mc_translate.c 4167 1 FIX (dead var)
memcheck /mc_translate.c 4231 1 FIX (dead var)
memcheck /mc_translate.c 954 1 defensive assignment
VEX /priv /guest-amd64 /toIR.c 13768 1
VEX /priv /guest-amd64 /toIR.c 14022 1
VEX /priv /guest-amd64 /toIR.c 15058 1
VEX /priv /guest-amd64 /toIR.c 15507 1
VEX /priv /guest-amd64 /toIR.c 15548 1
VEX /priv /guest-amd64 /toIR.c 15774 1
VEX /priv /guest-amd64 /toIR.c 6985 1
VEX /priv /guest-amd64 /toIR.c 6985 1
VEX /priv /guest-amd64 /toIR.c 6985 1
VEX /priv /guest-amd64 /toIR.c 6985 1
VEX /priv /guest-amd64 /toIR.c 6986 1
VEX /priv /guest-amd64 /toIR.c 6986 1
VEX /priv /guest-amd64 /toIR.c 8700 1
VEX /priv /guest-amd64 /toIR.c 8700 1
VEX /priv /guest-amd64 /toIR.c 8700 1
VEX /priv /guest-amd64 /toIR.c 8700 1
VEX /priv /guest-amd64 /toIR.c 9832 1
VEX /priv /guest-ppc /toIR.c 9042 1
VEX /priv /guest-x86 /ghelpers.c 2005 1
VEX /priv /guest-x86 /ghelpers.c 2008 1
VEX /priv /guest-x86 /ghelpers.c 2009 1
VEX /priv /guest-x86 /toIR.c 12519 1
VEX /priv /guest-x86 /toIR.c 12809 1
VEX /priv /guest-x86 /toIR.c 13656 1
VEX /priv /guest-x86 /toIR.c 14133 1
VEX /priv /guest-x86 /toIR.c 14381 1
VEX /priv /guest-x86 /toIR.c 5909 1
VEX /priv /guest-x86 /toIR.c 5909 1
VEX /priv /guest-x86 /toIR.c 5909 1
VEX /priv /guest-x86 /toIR.c 5909 1
VEX /priv /guest-x86 /toIR.c 5910 1
VEX /priv /guest-x86 /toIR.c 5910 1
VEX /priv /guest-x86 /toIR.c 7565 1
VEX /priv /guest-x86 /toIR.c 7565 1
VEX /priv /guest-x86 /toIR.c 7565 1
VEX /priv /guest-x86 /toIR.c 7565 1
VEX /priv /guest-x86 /toIR.c 8677 1
VEX /priv /guest-x86 /toIR.c 8702 1
VEX /priv /host-amd64 /hdefs.c 2352 1
VEX /priv /host-amd64 /hdefs.c 2352 1
VEX /priv /host-amd64 /hdefs.c 2352 1
VEX /priv /host-amd64 /hdefs.c 2352 1
VEX /priv /host-amd64 /hdefs.c 2355 1
VEX /priv /host-amd64 /hdefs.c 2357 1
VEX /priv /host-amd64 /hdefs.c 2359 1
VEX /priv /host-amd64 /hdefs.c 2361 1
VEX /priv /host-amd64 /hdefs.c 2363 1
VEX /priv /host-amd64 /hdefs.c 2365 1
VEX /priv /host-amd64 /hdefs.c 2367 1
VEX /priv /host-amd64 /hdefs.c 2369 1
VEX /priv /host-amd64 /hdefs.c 2464 1
VEX /priv /host-amd64 /hdefs.c 2464 1
VEX /priv /host-amd64 /hdefs.c 2464 1
VEX /priv /host-x86 /hdefs.c 2013 1
VEX /priv /host-x86 /hdefs.c 2013 1
VEX /priv /host-x86 /hdefs.c 2013 1
VEX /priv /host-x86 /hdefs.c 2013 1
VEX /priv /host-x86 /hdefs.c 2085 1
VEX /priv /host-x86 /hdefs.c 2085 1
VEX /priv /host-x86 /hdefs.c 2085 1
VEX /priv /host-x86 /hdefs.c 2116 1
VEX /priv /host-x86 /hdefs.c 2116 1
VEX /priv /host-x86 /hdefs.c 2116 1
dead increment
----
callgrind /dump.c 1299 1
helgrind /libhb_core.c 4289 1 FIX? symmetrical
helgrind /libhb_core.c 4368 1 FIX? symmetrical
helgrind /libhb_core.c 4478 1 FIX? symmetrical
memcheck /mc_main.c 5464 1 FIX? symmetrical
memcheck /mc_main.c 5464 1 FIX? symmetrical
memcheck /mc_main.c 5496 1 FIX? symmetrical
memcheck /mc_main.c 5496 1 exact dup
VEX /priv /guest-ppc /toIR.c 9013 1
VEX /priv /guest-ppc /toIR.c 9033 1
VEX /priv /guest-x86 /toIR.c 383 1
dead initialization
----
memcheck /mc_main.c 1161 1 FIX
memcheck /mc_main.c 1161 1 FIX
VEX /priv /host-ppc /isel.c 960 1
|
|
From: Tom H. <th...@cy...> - 2009-03-11 04:58:23
|
Nightly build on vauxhall ( x86_64, Fedora 10 ) started at 2009-03-11 03:20:08 GMT 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 == 487 tests, 1 stderr failure, 0 stdout failures, 0 post failures == memcheck/tests/xml1 (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 == 487 tests, 7 stderr failures, 1 stdout failure, 0 post failures == exp-ptrcheck/tests/pth_create (stderr) exp-ptrcheck/tests/stackerr (stderr) helgrind/tests/tc04_free_lock (stderr) helgrind/tests/tc09_bad_unlock (stderr) helgrind/tests/tc20_verifywrap (stderr) memcheck/tests/origin1-yes (stderr) memcheck/tests/xml1 (stderr) none/tests/pth_cvsimple (stdout) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Wed Mar 11 03:39:27 2009 --- new.short Wed Mar 11 04:03:33 2009 *************** *** 8,18 **** ! == 487 tests, 7 stderr failures, 1 stdout failure, 0 post failures == ! exp-ptrcheck/tests/pth_create (stderr) ! exp-ptrcheck/tests/stackerr (stderr) ! helgrind/tests/tc04_free_lock (stderr) ! helgrind/tests/tc09_bad_unlock (stderr) ! helgrind/tests/tc20_verifywrap (stderr) ! memcheck/tests/origin1-yes (stderr) memcheck/tests/xml1 (stderr) - none/tests/pth_cvsimple (stdout) --- 8,11 ---- ! == 487 tests, 1 stderr failure, 0 stdout failures, 0 post failures == memcheck/tests/xml1 (stderr) |
|
From: Tom H. <th...@cy...> - 2009-03-11 03:53:24
|
Nightly build on lloyd ( x86_64, Fedora 7 ) started at 2009-03-11 03:05:05 GMT 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 == 478 tests, 6 stderr failures, 0 stdout failures, 0 post failures == exp-ptrcheck/tests/ccc (stderr) exp-ptrcheck/tests/preen_invars (stderr) exp-ptrcheck/tests/pth_create (stderr) exp-ptrcheck/tests/pth_specific (stderr) helgrind/tests/tc20_verifywrap (stderr) memcheck/tests/xml1 (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 == 478 tests, 10 stderr failures, 0 stdout failures, 0 post failures == exp-ptrcheck/tests/ccc (stderr) exp-ptrcheck/tests/preen_invars (stderr) exp-ptrcheck/tests/pth_create (stderr) exp-ptrcheck/tests/pth_specific (stderr) exp-ptrcheck/tests/stackerr (stderr) helgrind/tests/tc04_free_lock (stderr) helgrind/tests/tc09_bad_unlock (stderr) helgrind/tests/tc20_verifywrap (stderr) memcheck/tests/origin1-yes (stderr) memcheck/tests/xml1 (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Wed Mar 11 03:25:18 2009 --- new.short Wed Mar 11 03:53:15 2009 *************** *** 8,10 **** ! == 478 tests, 10 stderr failures, 0 stdout failures, 0 post failures == exp-ptrcheck/tests/ccc (stderr) --- 8,10 ---- ! == 478 tests, 6 stderr failures, 0 stdout failures, 0 post failures == exp-ptrcheck/tests/ccc (stderr) *************** *** 13,19 **** exp-ptrcheck/tests/pth_specific (stderr) - exp-ptrcheck/tests/stackerr (stderr) - helgrind/tests/tc04_free_lock (stderr) - helgrind/tests/tc09_bad_unlock (stderr) helgrind/tests/tc20_verifywrap (stderr) - memcheck/tests/origin1-yes (stderr) memcheck/tests/xml1 (stderr) --- 13,15 ---- |
|
From: Tom H. <th...@cy...> - 2009-03-11 03:43:31
|
Nightly build on mg ( x86_64, Fedora 9 ) started at 2009-03-11 03:10:06 GMT Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 484 tests, 4 stderr failures, 1 stdout failure, 0 post failures == exp-ptrcheck/tests/ccc (stderr) exp-ptrcheck/tests/preen_invars (stderr) exp-ptrcheck/tests/pth_create (stderr) exp-ptrcheck/tests/pth_specific (stderr) none/tests/linux/mremap2 (stdout) |