You can subscribe to this list here.
| 2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
(122) |
Nov
(152) |
Dec
(69) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2003 |
Jan
(6) |
Feb
(25) |
Mar
(73) |
Apr
(82) |
May
(24) |
Jun
(25) |
Jul
(10) |
Aug
(11) |
Sep
(10) |
Oct
(54) |
Nov
(203) |
Dec
(182) |
| 2004 |
Jan
(307) |
Feb
(305) |
Mar
(430) |
Apr
(312) |
May
(187) |
Jun
(342) |
Jul
(487) |
Aug
(637) |
Sep
(336) |
Oct
(373) |
Nov
(441) |
Dec
(210) |
| 2005 |
Jan
(385) |
Feb
(480) |
Mar
(636) |
Apr
(544) |
May
(679) |
Jun
(625) |
Jul
(810) |
Aug
(838) |
Sep
(634) |
Oct
(521) |
Nov
(965) |
Dec
(543) |
| 2006 |
Jan
(494) |
Feb
(431) |
Mar
(546) |
Apr
(411) |
May
(406) |
Jun
(322) |
Jul
(256) |
Aug
(401) |
Sep
(345) |
Oct
(542) |
Nov
(308) |
Dec
(481) |
| 2007 |
Jan
(427) |
Feb
(326) |
Mar
(367) |
Apr
(255) |
May
(244) |
Jun
(204) |
Jul
(223) |
Aug
(231) |
Sep
(354) |
Oct
(374) |
Nov
(497) |
Dec
(362) |
| 2008 |
Jan
(322) |
Feb
(482) |
Mar
(658) |
Apr
(422) |
May
(476) |
Jun
(396) |
Jul
(455) |
Aug
(267) |
Sep
(280) |
Oct
(253) |
Nov
(232) |
Dec
(304) |
| 2009 |
Jan
(486) |
Feb
(470) |
Mar
(458) |
Apr
(423) |
May
(696) |
Jun
(461) |
Jul
(551) |
Aug
(575) |
Sep
(134) |
Oct
(110) |
Nov
(157) |
Dec
(102) |
| 2010 |
Jan
(226) |
Feb
(86) |
Mar
(147) |
Apr
(117) |
May
(107) |
Jun
(203) |
Jul
(193) |
Aug
(238) |
Sep
(300) |
Oct
(246) |
Nov
(23) |
Dec
(75) |
| 2011 |
Jan
(133) |
Feb
(195) |
Mar
(315) |
Apr
(200) |
May
(267) |
Jun
(293) |
Jul
(353) |
Aug
(237) |
Sep
(278) |
Oct
(611) |
Nov
(274) |
Dec
(260) |
| 2012 |
Jan
(303) |
Feb
(391) |
Mar
(417) |
Apr
(441) |
May
(488) |
Jun
(655) |
Jul
(590) |
Aug
(610) |
Sep
(526) |
Oct
(478) |
Nov
(359) |
Dec
(372) |
| 2013 |
Jan
(467) |
Feb
(226) |
Mar
(391) |
Apr
(281) |
May
(299) |
Jun
(252) |
Jul
(311) |
Aug
(352) |
Sep
(481) |
Oct
(571) |
Nov
(222) |
Dec
(231) |
| 2014 |
Jan
(185) |
Feb
(329) |
Mar
(245) |
Apr
(238) |
May
(281) |
Jun
(399) |
Jul
(382) |
Aug
(500) |
Sep
(579) |
Oct
(435) |
Nov
(487) |
Dec
(256) |
| 2015 |
Jan
(338) |
Feb
(357) |
Mar
(330) |
Apr
(294) |
May
(191) |
Jun
(108) |
Jul
(142) |
Aug
(261) |
Sep
(190) |
Oct
(54) |
Nov
(83) |
Dec
(22) |
| 2016 |
Jan
(49) |
Feb
(89) |
Mar
(33) |
Apr
(50) |
May
(27) |
Jun
(34) |
Jul
(53) |
Aug
(53) |
Sep
(98) |
Oct
(206) |
Nov
(93) |
Dec
(53) |
| 2017 |
Jan
(65) |
Feb
(82) |
Mar
(102) |
Apr
(86) |
May
(187) |
Jun
(67) |
Jul
(23) |
Aug
(93) |
Sep
(65) |
Oct
(45) |
Nov
(35) |
Dec
(17) |
| 2018 |
Jan
(26) |
Feb
(35) |
Mar
(38) |
Apr
(32) |
May
(8) |
Jun
(43) |
Jul
(27) |
Aug
(30) |
Sep
(43) |
Oct
(42) |
Nov
(38) |
Dec
(67) |
| 2019 |
Jan
(32) |
Feb
(37) |
Mar
(53) |
Apr
(64) |
May
(49) |
Jun
(18) |
Jul
(14) |
Aug
(53) |
Sep
(25) |
Oct
(30) |
Nov
(49) |
Dec
(31) |
| 2020 |
Jan
(87) |
Feb
(45) |
Mar
(37) |
Apr
(51) |
May
(99) |
Jun
(36) |
Jul
(11) |
Aug
(14) |
Sep
(20) |
Oct
(24) |
Nov
(40) |
Dec
(23) |
| 2021 |
Jan
(14) |
Feb
(53) |
Mar
(85) |
Apr
(15) |
May
(19) |
Jun
(3) |
Jul
(14) |
Aug
(1) |
Sep
(57) |
Oct
(73) |
Nov
(56) |
Dec
(22) |
| 2022 |
Jan
(3) |
Feb
(22) |
Mar
(6) |
Apr
(55) |
May
(46) |
Jun
(39) |
Jul
(15) |
Aug
(9) |
Sep
(11) |
Oct
(34) |
Nov
(20) |
Dec
(36) |
| 2023 |
Jan
(79) |
Feb
(41) |
Mar
(99) |
Apr
(169) |
May
(48) |
Jun
(16) |
Jul
(16) |
Aug
(57) |
Sep
(32) |
Oct
|
Nov
|
Dec
|
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
|
|
|
|
1
(17) |
2
(11) |
3
(6) |
4
(6) |
|
5
(10) |
6
(5) |
7
(3) |
8
(7) |
9
(4) |
10
(4) |
11
(3) |
|
12
(3) |
13
(17) |
14
(18) |
15
(32) |
16
(22) |
17
(18) |
18
(10) |
|
19
(4) |
20
(3) |
21
(8) |
22
(15) |
23
(32) |
24
(28) |
25
(18) |
|
26
(20) |
27
(16) |
28
(28) |
29
(28) |
30
(27) |
|
|
|
From: <sv...@va...> - 2009-04-28 01:22:08
|
Author: njn Date: 2009-04-28 02:22:02 +0100 (Tue, 28 Apr 2009) New Revision: 9654 Log: This should have gone in with r9653. Added: branches/DARWIN/memcheck/tests/filter_addressable Added: branches/DARWIN/memcheck/tests/filter_addressable =================================================================== --- branches/DARWIN/memcheck/tests/filter_addressable (rev 0) +++ branches/DARWIN/memcheck/tests/filter_addressable 2009-04-28 01:22:02 UTC (rev 9654) @@ -0,0 +1,7 @@ +#! /bin/sh + +./filter_allocs | +perl -p -e 's/(default action of signal) [0-9]+ \(SIG(SEGV|BUS)\)/$1 N \(SIGSEGV or SIGBUS\)/' | +perl -p -e 's/(Access not within mapped region|Non-existent physical address) at address 0x/Bad memory (SIGSEGV or SIGBUS) at address 0x/' + + Property changes on: branches/DARWIN/memcheck/tests/filter_addressable ___________________________________________________________________ Name: svn:executable + * |
|
From: <sv...@va...> - 2009-04-28 01:20:01
|
Author: njn
Date: 2009-04-28 02:19:54 +0100 (Tue, 28 Apr 2009)
New Revision: 9653
Log:
Fixed handling of some terminal signals on Darwin. Also made
memcheck/tests/addressable more portable.
memcheck/tests/{addressable,badjump,supp_unknown} now all pass on Darwin.
Modified:
branches/DARWIN/coregrind/m_signals.c
branches/DARWIN/memcheck/tests/Makefile.am
branches/DARWIN/memcheck/tests/addressable.c
branches/DARWIN/memcheck/tests/addressable.stderr.exp
branches/DARWIN/memcheck/tests/addressable.vgtest
Modified: branches/DARWIN/coregrind/m_signals.c
===================================================================
--- branches/DARWIN/coregrind/m_signals.c 2009-04-28 00:15:51 UTC (rev 9652)
+++ branches/DARWIN/coregrind/m_signals.c 2009-04-28 01:19:54 UTC (rev 9653)
@@ -1258,6 +1258,28 @@
VG_(sigprocmask)(VKI_SIG_SETMASK, &origmask, NULL);
}
+// The si_code describes where the signal came from. Some come from the
+// kernel, eg.: seg faults, illegal opcodes. Some come from the user, eg.:
+// from kill() (SI_USER), or timer_settime() (SI_TIMER), or an async I/O
+// request (SI_ASYNCIO). There's lots of implementation-defined leeway in
+// POSIX, but the user vs. kernal distinction is what we want here.
+static Bool is_signal_from_kernel(int si_code)
+{
+#if defined(VGO_linux) || defined(VGO_aix5)
+ // On Linux, SI_USER is zero, negative values are from the user, positive
+ // values are from the kernel. There are SI_FROMUSER and SI_FROMKERNEL
+ // macros but we don't use them here because other platforms don't have
+ // them.
+ return ( si_code > VKI_SI_USER ? True : False );
+#elif defined(VGO_darwin)
+ // On Darwin, SI_USER is 0x10001, values greater than that are from the
+ // user, small positive integers are from the kernel.
+ return ( si_code < VKI_SI_USER ? True : False );
+#else
+# error Unknown OS
+#endif
+}
+
/*
Perform the default action of a signal. If the signal is fatal, it
marks all threads as needing to exit, but it doesn't actually kill
@@ -1334,15 +1356,17 @@
core = False;
}
- if ( (VG_(clo_verbosity) > 1 || (could_core && info->si_code > VKI_SI_USER))
- && !VG_(clo_xml) ) {
+ if ( (VG_(clo_verbosity) > 1 ||
+ (could_core && is_signal_from_kernel(info->si_code))
+ ) &&
+ !VG_(clo_xml) ) {
VG_(message)(Vg_UserMsg, "");
VG_(message)(Vg_UserMsg,
"Process terminating with default action of signal %d (%s)%s",
sigNo, signame(sigNo), core ? ": dumping core" : "");
/* Be helpful - decode some more details about this fault */
- if (info->si_code > VKI_SI_USER) {
+ if (is_signal_from_kernel(info->si_code)) {
const Char *event = NULL;
Bool haveaddr = True;
@@ -1425,7 +1449,7 @@
VG_(pp_ExeContext)( ec );
}
if (sigNo == VKI_SIGSEGV
- && info && info->si_code > VKI_SI_USER
+ && info && is_signal_from_kernel(info->si_code)
&& info->si_code == VKI_SEGV_MAPERR) {
VG_(message)(Vg_UserMsg, " If you believe this happened as a "
"result of a stack overflow in your");
@@ -1935,7 +1959,6 @@
void sync_signalhandler ( Int sigNo,
vki_siginfo_t *info, struct vki_ucontext *uc )
{
- Bool is_from_outside_process;
ThreadId tid = VG_(lwpid_to_vgtid)(VG_(gettid)());
if (0)
@@ -1974,26 +1997,11 @@
*/
/* Figure out if the signal is being sent from outside the process.
- (Why do we care?) If it is, then treat it more like an async
- signal than a sync signal -- that is, merely queue it for later
- delivery. It seems the logic for detecting which case is which
- differs between Linux/AIX and Darwin. */
-# if defined(VGO_linux) || defined(VGO_aix5)
- is_from_outside_process = info->si_code <= VKI_SI_USER;
-# elif defined(VGO_darwin)
- /* see "Values for si_code" in /usr/include/sys/signal.h;
- all the XXX_NOOP values are zero. */
- /* Bugger it, let's just deliver the damn thing as if it was a sync
- signal from inside the process. I really don't understand
- enough about the rationale behind this logic to make informed
- decisions. JRS, 3 Mar 09. */
- is_from_outside_process = False;
- /* info->si_code == 0; */ /* originally .. */
-# else
-# error "Unknown OS"
-# endif
+ (Why do we care?) If the signal is from the user rather than the
+ kernel,, then treat it more like an async signal than a sync signal --
+ that is, merely queue it for later delivery. */
- if (is_from_outside_process) {
+ if (!is_signal_from_kernel(info->si_code)) {
/* If some user-process sent us one of these signals (ie,
they're not the result of a faulting instruction), then treat
it as an async signal. This is tricky because we could get
@@ -2061,7 +2069,7 @@
queue_signal(0, info); /* shared pending */
return;
- } /* if (is_from_outside_process) */
+ } /* if (!is_signal_from_kernel(info->si_code)) */
if (VG_(clo_trace_signals)) {
VG_(message)(Vg_DebugMsg, "signal %d arrived ... si_code=%d, "
Modified: branches/DARWIN/memcheck/tests/Makefile.am
===================================================================
--- branches/DARWIN/memcheck/tests/Makefile.am 2009-04-28 00:15:51 UTC (rev 9652)
+++ branches/DARWIN/memcheck/tests/Makefile.am 2009-04-28 01:19:54 UTC (rev 9653)
@@ -26,9 +26,11 @@
DIST_SUBDIRS = x86 amd64 linux darwin x86-linux .
-noinst_SCRIPTS = filter_allocs \
- filter_stderr filter_xml \
- filter_varinfo3
+noinst_SCRIPTS = \
+ filter_addressable \
+ filter_allocs \
+ filter_stderr filter_xml \
+ filter_varinfo3
EXTRA_DIST = $(noinst_SCRIPTS) \
addressable.stderr.exp addressable.stdout.exp addressable.vgtest \
Modified: branches/DARWIN/memcheck/tests/addressable.c
===================================================================
--- branches/DARWIN/memcheck/tests/addressable.c 2009-04-28 00:15:51 UTC (rev 9652)
+++ branches/DARWIN/memcheck/tests/addressable.c 2009-04-28 01:19:54 UTC (rev 9653)
@@ -93,12 +93,12 @@
static struct test {
void (*test)(void);
- int sig;
+ int faults;
} tests[] = {
{ test1, 0 },
- { test2, SIGSEGV },
+ { test2, 1 },
{ test3, 0 },
- { test4, SIGSEGV },
+ { test4, 1 },
{ test5, 0 },
};
static const int n_tests = sizeof(tests)/sizeof(*tests);
@@ -140,18 +140,19 @@
if (WIFSIGNALED(status)) {
assert(WTERMSIG(status) != 0);
- if (WTERMSIG(status) == tests[i].sig)
+ if (1 == tests[i].faults &&
+ (WTERMSIG(status) == SIGSEGV ||
+ WTERMSIG(status) == SIGBUS))
printf("PASS\n");
else
printf("died with unexpected signal %d\n",
WTERMSIG(status));
} else if (WIFEXITED(status)) {
if (WEXITSTATUS(status) == 0) {
- if (tests[i].sig == 0)
+ if (tests[i].faults == 0)
printf("PASS\n");
else
- printf("exited without expected signal %d\n",
- tests[i].sig);
+ printf("exited without expected SIGSEGV or SIGBUS signal\n");
} else
printf("exited with unexpected status %d\n",
WEXITSTATUS(status));
Modified: branches/DARWIN/memcheck/tests/addressable.stderr.exp
===================================================================
--- branches/DARWIN/memcheck/tests/addressable.stderr.exp 2009-04-28 00:15:51 UTC (rev 9652)
+++ branches/DARWIN/memcheck/tests/addressable.stderr.exp 2009-04-28 01:19:54 UTC (rev 9653)
@@ -15,8 +15,8 @@
by 0x........: main (addressable.c:125)
Address 0x........ is not stack'd, malloc'd or (recently) free'd
-Process terminating with default action of signal 11 (SIGSEGV)
- Access not within mapped region at address 0x........
+Process terminating with default action of signal N (SIGSEGV or SIGBUS)
+ Bad memory (SIGSEGV or SIGBUS) at address 0x........
at 0x........: test2 (addressable.c:51)
by 0x........: main (addressable.c:125)
If you believe this happened as a result of a stack overflow in your
@@ -36,8 +36,8 @@
For a detailed leak analysis, rerun with: --leak-check=yes
For counts of detected errors, rerun with: -v
-Process terminating with default action of signal 11 (SIGSEGV)
- Bad permissions for mapped region at address 0x........
+Process terminating with default action of signal N (SIGSEGV or SIGBUS)
+ Bad memory (SIGSEGV or SIGBUS) at address 0x........
at 0x........: test4 (addressable.c:74)
by 0x........: main (addressable.c:125)
Modified: branches/DARWIN/memcheck/tests/addressable.vgtest
===================================================================
--- branches/DARWIN/memcheck/tests/addressable.vgtest 2009-04-28 00:15:51 UTC (rev 9652)
+++ branches/DARWIN/memcheck/tests/addressable.vgtest 2009-04-28 01:19:54 UTC (rev 9653)
@@ -1,2 +1,2 @@
prog: addressable
-stderr_filter: filter_allocs
+stderr_filter: filter_addressable
|
|
From: <sv...@va...> - 2009-04-28 00:16:16
|
Author: njn
Date: 2009-04-28 01:15:51 +0100 (Tue, 28 Apr 2009)
New Revision: 9652
Log:
Make origin1-yes pass on Darwin.
Added:
branches/DARWIN/memcheck/tests/origin1-yes.stderr.exp-darwin
Modified:
branches/DARWIN/memcheck/tests/origin1-yes.c
branches/DARWIN/memcheck/tests/origin1-yes.stderr.exp
Modified: branches/DARWIN/memcheck/tests/origin1-yes.c
===================================================================
--- branches/DARWIN/memcheck/tests/origin1-yes.c 2009-04-27 22:50:26 UTC (rev 9651)
+++ branches/DARWIN/memcheck/tests/origin1-yes.c 2009-04-28 00:15:51 UTC (rev 9652)
@@ -86,12 +86,21 @@
}
// Heap segment (brk), uninitialised
+ // Nb: on Darwin, sbrk() is implemented via vm_allocate() which always
+ // zeroes its allocated memory. So we use a separate .exp file for Darwin,
+ // but we add an extra printf on Darwin only so that it cannot be
+ // successfully matched on non-Darwin platforms.
+#if defined(VGO_darwin)
+ fprintf(stderr, "\nUndef 7 of 8 (brk)\n");
+ fprintf(stderr, "\n(no complaint; sbrk initialises memory on Darwin)\n");
+#else
{
int* ptr_to_new_brk_limit = sbrk(4096);
int undef_brk_int = *ptr_to_new_brk_limit;
fprintf(stderr, "\nUndef 7 of 8 (brk)\n");
x += (undef_brk_int == 0x12345678 ? 15 : 26);
}
+#endif
// User block, marked as undefined
{
Modified: branches/DARWIN/memcheck/tests/origin1-yes.stderr.exp
===================================================================
--- branches/DARWIN/memcheck/tests/origin1-yes.stderr.exp 2009-04-27 22:50:26 UTC (rev 9651)
+++ branches/DARWIN/memcheck/tests/origin1-yes.stderr.exp 2009-04-28 00:15:51 UTC (rev 9652)
@@ -54,9 +54,9 @@
Undef 8 of 8 (MAKE_MEM_UNDEFINED)
Conditional jump or move depends on uninitialised value(s)
- at 0x........: main (origin1-yes.c:101)
+ at 0x........: main (origin1-yes.c:110)
Uninitialised value was created by a client request
- at 0x........: main (origin1-yes.c:99)
+ at 0x........: main (origin1-yes.c:108)
Def 1 of 3
Added: branches/DARWIN/memcheck/tests/origin1-yes.stderr.exp-darwin
===================================================================
--- branches/DARWIN/memcheck/tests/origin1-yes.stderr.exp-darwin (rev 0)
+++ branches/DARWIN/memcheck/tests/origin1-yes.stderr.exp-darwin 2009-04-28 00:15:51 UTC (rev 9652)
@@ -0,0 +1,60 @@
+
+Undef 1 of 8 (stack, 32 bit)
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: main (origin1-yes.c:37)
+ Uninitialised value was created by a stack allocation
+ at 0x........: main (origin1-yes.c:23)
+
+Undef 2 of 8 (stack, 32 bit)
+
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: main (origin1-yes.c:49)
+ Uninitialised value was created by a stack allocation
+ at 0x........: main (origin1-yes.c:23)
+
+Undef 3 of 8 (stack, 64 bit)
+
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: main (origin1-yes.c:56)
+ Uninitialised value was created by a stack allocation
+ at 0x........: main (origin1-yes.c:23)
+
+Undef 4 of 8 (mallocd, 32-bit)
+
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: main (origin1-yes.c:64)
+ Uninitialised value was created by a heap allocation
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: main (origin1-yes.c:61)
+
+Undef 5 of 8 (realloc)
+
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: main (origin1-yes.c:76)
+ Uninitialised value was created by a heap allocation
+ at 0x........: realloc (vg_replace_malloc.c:...)
+ by 0x........: main (origin1-yes.c:71)
+
+Undef 6 of 8 (MALLOCLIKE_BLOCK)
+
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: main (origin1-yes.c:85)
+ Uninitialised value was created by a heap allocation
+ at 0x........: main (origin1-yes.c:82)
+
+Undef 7 of 8 (brk)
+
+(no complaint; sbrk initialises memory on Darwin)
+
+Undef 8 of 8 (MAKE_MEM_UNDEFINED)
+
+Conditional jump or move depends on uninitialised value(s)
+ at 0x........: main (origin1-yes.c:110)
+ Uninitialised value was created by a client request
+ at 0x........: main (origin1-yes.c:108)
+
+Def 1 of 3
+
+Def 2 of 3
+
+Def 3 of 3
|