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
(1) |
2
(2) |
3
|
4
(1) |
5
(6) |
6
|
|
7
(1) |
8
|
9
(1) |
10
(2) |
11
(6) |
12
(3) |
13
(3) |
|
14
|
15
(11) |
16
(8) |
17
(5) |
18
(5) |
19
(5) |
20
(3) |
|
21
(2) |
22
(4) |
23
(5) |
24
(4) |
25
|
26
|
27
|
|
28
(8) |
|
|
|
|
|
|
|
From: Tom H. <th...@cy...> - 2010-02-20 03:35:53
|
Nightly build on mg ( x86_64, Fedora 9 ) Started at 2010-02-20 03:10:05 GMT Ended at 2010-02-20 03:35:39 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 == 538 tests, 1 stderr failure, 0 stdout failures, 0 post failures == helgrind/tests/tc06_two_races_xml (stderr) |
|
From: David S. <da...@si...> - 2010-02-19 20:57:58
|
On Thursday 18 February 2010 10:31:28 Konstantin Serebryany wrote: > Hi, > Some of you have probably seen this already: > http://cacm.acm.org/magazines/2010/2/69354-a-few-billion-lines-of-code-late > r/fulltext/ I've got real pleasure from reading it. Even though the article > is about a static analysis tool, most of it applies to dynamic tools as > well. > I wonder if valgrind folks would be willing to write something like > this about memcheck or other tools? > > --kcc Nice read. It shows many obstacles that can happen when a company is selling a static bug checking tool. It's funny that he discovered "typedef char int;" in production code. :-) Also the image in the article can be seen here in action: http://artport.whitney.org/commissions/codedoc/Paley/CodeProfiles_800x600.htm |
|
From: <sv...@va...> - 2010-02-19 16:50:57
|
Author: tom
Date: 2010-02-19 16:50:45 +0000 (Fri, 19 Feb 2010)
New Revision: 11051
Log:
Add parentheses round the "zzarg" macro argument when using it as it
may expand to an expression which may mean we wind up doing the cast
before evaluating the expression... Closes #227570.
Modified:
trunk/coregrind/m_syswrap/priv_syswrap-generic.h
Modified: trunk/coregrind/m_syswrap/priv_syswrap-generic.h
===================================================================
--- trunk/coregrind/m_syswrap/priv_syswrap-generic.h 2010-02-18 15:54:45 UTC (rev 11050)
+++ trunk/coregrind/m_syswrap/priv_syswrap-generic.h 2010-02-19 16:50:45 UTC (rev 11051)
@@ -252,23 +252,23 @@
extern SysRes ML_(generic_PRE_sys_mmap) ( TId, UW, UW, UW, UW, UW, Off64T );
-#define PRE_timeval_READ(zzname, zzarg) \
- do { \
- struct vki_timeval *zztv = (struct vki_timeval *)zzarg; \
- PRE_FIELD_READ(zzname, zztv->tv_sec); \
- PRE_FIELD_READ(zzname, zztv->tv_usec); \
+#define PRE_timeval_READ(zzname, zzarg) \
+ do { \
+ struct vki_timeval *zztv = (struct vki_timeval *)(zzarg); \
+ PRE_FIELD_READ(zzname, zztv->tv_sec); \
+ PRE_FIELD_READ(zzname, zztv->tv_usec); \
} while (0)
-#define PRE_timeval_WRITE(zzname, zzarg) \
- do { \
- struct vki_timeval *zztv = (struct vki_timeval *)zzarg; \
- PRE_FIELD_WRITE(zzname, zztv->tv_sec); \
- PRE_FIELD_WRITE(zzname, zztv->tv_usec); \
+#define PRE_timeval_WRITE(zzname, zzarg) \
+ do { \
+ struct vki_timeval *zztv = (struct vki_timeval *)(zzarg); \
+ PRE_FIELD_WRITE(zzname, zztv->tv_sec); \
+ PRE_FIELD_WRITE(zzname, zztv->tv_usec); \
} while (0)
-#define POST_timeval_WRITE(zzarg) \
- do { \
- struct vki_timeval *zztv = (struct vki_timeval *)zzarg; \
- POST_FIELD_WRITE(zztv->tv_sec); \
- POST_FIELD_WRITE(zztv->tv_usec); \
+#define POST_timeval_WRITE(zzarg) \
+ do { \
+ struct vki_timeval *zztv = (struct vki_timeval *)(zzarg); \
+ POST_FIELD_WRITE(zztv->tv_sec); \
+ POST_FIELD_WRITE(zztv->tv_usec); \
} while (0)
|
|
From: Alexander P. <gl...@go...> - 2010-02-19 15:55:44
|
Hi everyone,
I'm getting strange assertion failures running the following test
under Nullgrind on Mac OS 10.5:
=====================================
#include <stdio.h>
#include <stdlib.h>
#include <sys/time.h>
#include <signal.h>
#include <libkern/OSAtomic.h>
#include <pthread.h>
OSSpinLock sl(OS_SPINLOCK_INIT);
typedef void *(*worker_t)(void*);
typedef void (*Sigaction)(int, siginfo_t *, void *);
int GLOB=0;
static void EnableSigprof(Sigaction SignalHandler) {
struct sigaction sa;
sa.sa_sigaction = SignalHandler;
sa.sa_flags = SA_RESTART | SA_SIGINFO;
sigemptyset(&sa.sa_mask);
if (sigaction(SIGPROF, &sa, NULL) != 0) {
perror("sigaction");
abort();
}
struct itimerval timer;
timer.it_interval.tv_sec = 0;
timer.it_interval.tv_usec = 1000000 / 10000;
timer.it_value = timer.it_interval;
if (setitimer(ITIMER_PROF, &timer, 0) != 0) {
perror("setitimer");
abort();
}
}
void Worker() {
for (long int i = 0; i < 100000000; i++) {
void *x = malloc((i % 64) + 1);
free (x);
}
}
void SignalHandlerWithSpinlock(int, siginfo_t*, void*) {
OSSpinLockLock(&sl);
GLOB++;
OSSpinLockUnlock(&sl);
}
int main() {
EnableSigprof(SignalHandlerWithSpinlock);
pthread_t w_1;
pthread_t w_2;
pthread_create(&w_1, NULL, worker_t(Worker), NULL);
pthread_create(&w_2, NULL, worker_t(Worker), NULL);
pthread_join(w_1, NULL);
pthread_join(w_2, NULL);
printf("\tGLOB=%d\n", GLOB);
return 0;
}
=========================================
$ g++ bad_sigprof.cc -o bad_sigprof
$ valgrind --tool=none ./bad_sigprof
...
valgrind: m_syswrap/syswrap-main.c:1314 (vgPlain_client_syscall):
Assertion 'sci->status.what == SsIdle' failed.
==5469== at 0xF00864ED: ???
==5469== by 0xF00867A1: ???
==5469== by 0xF00E5C56: ???
==5469== by 0xF00E10A3: ???
==5469== by 0xF00E21F9: ???
==5469== by 0xF010893F: ???
sched status:
running_tid=1
Thread 1: status = VgTs_Runnable
==5469== at 0xF009DF2A: ???
==5469== by 0x1F7AC2: cerror (in /usr/lib/libSystem.B.dylib)
==5469== by 0x1F15: main (in ./bad_sigprof)
Thread 2: status = VgTs_Yielding
==5469== at 0x1F8035: malloc (in /usr/lib/libSystem.B.dylib)
==5469== by 0x228154: _pthread_start (in /usr/lib/libSystem.B.dylib)
==5469== by 0x228011: thread_start (in /usr/lib/libSystem.B.dylib)
Thread 3: status = VgTs_Yielding
==5469== at 0xFFFF0260: ???
==5469== by 0x1FD38C: free (in /usr/lib/libSystem.B.dylib)
==5469== by 0x1DDE: Worker() (in ./bad_sigprof)
==5469== by 0x228154: _pthread_start (in /usr/lib/libSystem.B.dylib)
==5469== by 0x228011: thread_start (in /usr/lib/libSystem.B.dylib)
Is there something wrong with the test or it's an error?
NB: ThreadSanitizer (code.google.com/p/data-race-test) consumes very
much memory on a similar test. Could it be due to repeated translation
of the signal handler?
Thanks,
Alexander Potapenko
Software Engineer
Google Moscow
|
|
From: Bart V. A. <bar...@gm...> - 2010-02-19 08:22:36
|
Nightly build on cellbuzz-native ( cellbuzz, ppc64, Fedora 7, native ) Started at 2010-02-19 02:00:06 EST Ended at 2010-02-19 03:22:20 EST 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 == 449 tests, 43 stderr failures, 10 stdout failures, 0 post failures == memcheck/tests/deep_templates (stdout) memcheck/tests/leak-cases-full (stderr) memcheck/tests/leak-cases-summary (stderr) memcheck/tests/leak-cycle (stderr) memcheck/tests/linux/timerfd-syscall (stdout) memcheck/tests/linux-syscalls-2007 (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 (stdout) memcheck/tests/wrap8 (stderr) none/tests/empty-exe (stderr) none/tests/linux/mremap (stderr) 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) none/tests/shell_zerolength (stderr) helgrind/tests/hg05_race2 (stderr) helgrind/tests/tc06_two_races_xml (stderr) helgrind/tests/tc22_exit_w_lock (stderr) helgrind/tests/tc23_bogus_condwait (stderr) 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/hsg (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) |
|
From: Tom H. <th...@cy...> - 2010-02-19 03:36:43
|
Nightly build on mg ( x86_64, Fedora 9 ) Started at 2010-02-19 03:10:07 GMT Ended at 2010-02-19 03:36:24 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 == 538 tests, 1 stderr failure, 1 stdout failure, 0 post failures == helgrind/tests/tc06_two_races_xml (stderr) drd/tests/pth_detached2 (stdout) ================================================= == Results from 24 hours ago == ================================================= Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 538 tests, 1 stderr failure, 0 stdout failures, 0 post failures == helgrind/tests/tc06_two_races_xml (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Fri Feb 19 03:23:28 2010 --- new.short Fri Feb 19 03:36:24 2010 *************** *** 8,11 **** ! == 538 tests, 1 stderr failure, 0 stdout failures, 0 post failures == helgrind/tests/tc06_two_races_xml (stderr) --- 8,12 ---- ! == 538 tests, 1 stderr failure, 1 stdout failure, 0 post failures == helgrind/tests/tc06_two_races_xml (stderr) + drd/tests/pth_detached2 (stdout) |
|
From: <sv...@va...> - 2010-02-18 23:01:37
|
Author: sewardj
Date: 2010-02-18 23:01:26 +0000 (Thu, 18 Feb 2010)
New Revision: 1960
Log:
Majorly improved implementation of self-checking for translations.
This reduces the overhead of --smc-check=all by a factor of between 2
and 3.
Modified:
trunk/priv/guest_generic_bb_to_IR.c
Modified: trunk/priv/guest_generic_bb_to_IR.c
===================================================================
--- trunk/priv/guest_generic_bb_to_IR.c 2010-01-17 15:47:01 UTC (rev 1959)
+++ trunk/priv/guest_generic_bb_to_IR.c 2010-02-18 23:01:26 UTC (rev 1960)
@@ -54,9 +54,31 @@
/* Forwards .. */
__attribute__((regparm(2)))
-static UInt genericg_compute_checksum_4al_4plus ( HWord addr, HWord len );
-__attribute__((regparm(2)))
-static UInt genericg_compute_checksum_generic ( HWord addr, HWord len );
+static UInt genericg_compute_checksum_4al ( HWord first_w32, HWord n_w32s );
+__attribute__((regparm(1)))
+static UInt genericg_compute_checksum_4al_1 ( HWord first_w32 );
+__attribute__((regparm(1)))
+static UInt genericg_compute_checksum_4al_2 ( HWord first_w32 );
+__attribute__((regparm(1)))
+static UInt genericg_compute_checksum_4al_3 ( HWord first_w32 );
+__attribute__((regparm(1)))
+static UInt genericg_compute_checksum_4al_4 ( HWord first_w32 );
+__attribute__((regparm(1)))
+static UInt genericg_compute_checksum_4al_5 ( HWord first_w32 );
+__attribute__((regparm(1)))
+static UInt genericg_compute_checksum_4al_6 ( HWord first_w32 );
+__attribute__((regparm(1)))
+static UInt genericg_compute_checksum_4al_7 ( HWord first_w32 );
+__attribute__((regparm(1)))
+static UInt genericg_compute_checksum_4al_8 ( HWord first_w32 );
+__attribute__((regparm(1)))
+static UInt genericg_compute_checksum_4al_9 ( HWord first_w32 );
+__attribute__((regparm(1)))
+static UInt genericg_compute_checksum_4al_10 ( HWord first_w32 );
+__attribute__((regparm(1)))
+static UInt genericg_compute_checksum_4al_11 ( HWord first_w32 );
+__attribute__((regparm(1)))
+static UInt genericg_compute_checksum_4al_12 ( HWord first_w32 );
/* Small helpers */
static Bool const_False ( void* callback_opaque, Addr64 a ) {
@@ -364,13 +386,40 @@
done:
/* We're done. The only thing that might need attending to is that
- a self-checking preamble may need to be created. */
+ a self-checking preamble may need to be created.
+
+ The scheme is to compute a rather crude checksum of the code
+ we're making a translation of, and add to the IR a call to a
+ helper routine which recomputes the checksum every time the
+ translation is run, and requests a retranslation if it doesn't
+ match. This is obviously very expensive and considerable
+ efforts are made to speed it up:
+
+ * the checksum is computed from all the 32-bit words that
+ overlap the translated code. That means it could depend on up
+ to 3 bytes before and 3 bytes after which aren't part of the
+ translated area, and so if those change then we'll
+ unnecessarily have to discard and retranslate. This seems
+ like a pretty remote possibility and it seems as if the
+ benefit of not having to deal with the ends of the range at
+ byte precision far outweigh any possible extra translations
+ needed.
+
+ * there's a generic routine and 12 specialised cases, which
+ handle the cases of 1 through 12-word lengths respectively.
+ They seem to cover about 90% of the cases that occur in
+ practice.
+ */
if (do_self_check) {
UInt len2check, expected32;
IRTemp tistart_tmp, tilen_tmp;
- UInt (*checksum_fn)(HWord, HWord) __attribute__((regparm(2)));
- HWord checksum_fn_entry;
+ UInt (*fn_generic)(HWord, HWord) __attribute__((regparm(2)));
+ UInt (*fn_spec)(HWord) __attribute__((regparm(1)));
+ HChar* nm_generic;
+ HChar* nm_spec;
+ HWord fn_generic_entry = 0;
+ HWord fn_spec_entry = 0;
vassert(vge->n_used == 1);
len2check = vge->len[0];
@@ -378,65 +427,134 @@
/* stay sane */
vassert(len2check >= 0 && len2check < 1000/*arbitrary*/);
- if (len2check >= 4 && 0 == (((HWord)guest_code) & 3)) {
- checksum_fn = genericg_compute_checksum_4al_4plus;
- } else {
- checksum_fn = genericg_compute_checksum_generic;
- }
+ /* Skip the check if the translation involved zero bytes */
+ if (len2check > 0) {
+ HWord first_w32 = ((HWord)guest_code) & ~(HWord)3;
+ HWord last_w32 = (((HWord)guest_code) + len2check - 1) & ~(HWord)3;
+ vassert(first_w32 <= last_w32);
+ HWord w32_diff = last_w32 - first_w32;
+ vassert(0 == (w32_diff & 3));
+ HWord w32s_to_check = (w32_diff + 4) / 4;
+ vassert(w32s_to_check > 0 && w32s_to_check < 1004/*arbitrary*//4);
- expected32 = checksum_fn( (HWord)guest_code, len2check );
+ /* vex_printf("%lx %lx %ld\n", first_w32, last_w32, w32s_to_check); */
- /* Set TISTART and TILEN. These will describe to the despatcher
- the area of guest code to invalidate should we exit with a
- self-check failure. */
+ fn_generic = genericg_compute_checksum_4al;
+ nm_generic = "genericg_compute_checksum_4al";
+ fn_spec = NULL;
+ nm_spec = NULL;
- tistart_tmp = newIRTemp(irsb->tyenv, guest_word_type);
- tilen_tmp = newIRTemp(irsb->tyenv, guest_word_type);
+ switch (w32s_to_check) {
+ case 1: fn_spec = genericg_compute_checksum_4al_1;
+ nm_spec = "genericg_compute_checksum_4al_1"; break;
+ case 2: fn_spec = genericg_compute_checksum_4al_2;
+ nm_spec = "genericg_compute_checksum_4al_2"; break;
+ case 3: fn_spec = genericg_compute_checksum_4al_3;
+ nm_spec = "genericg_compute_checksum_4al_3"; break;
+ case 4: fn_spec = genericg_compute_checksum_4al_4;
+ nm_spec = "genericg_compute_checksum_4al_4"; break;
+ case 5: fn_spec = genericg_compute_checksum_4al_5;
+ nm_spec = "genericg_compute_checksum_4al_5"; break;
+ case 6: fn_spec = genericg_compute_checksum_4al_6;
+ nm_spec = "genericg_compute_checksum_4al_6"; break;
+ case 7: fn_spec = genericg_compute_checksum_4al_7;
+ nm_spec = "genericg_compute_checksum_4al_7"; break;
+ case 8: fn_spec = genericg_compute_checksum_4al_8;
+ nm_spec = "genericg_compute_checksum_4al_8"; break;
+ case 9: fn_spec = genericg_compute_checksum_4al_9;
+ nm_spec = "genericg_compute_checksum_4al_9"; break;
+ case 10: fn_spec = genericg_compute_checksum_4al_10;
+ nm_spec = "genericg_compute_checksum_4al_10"; break;
+ case 11: fn_spec = genericg_compute_checksum_4al_11;
+ nm_spec = "genericg_compute_checksum_4al_11"; break;
+ case 12: fn_spec = genericg_compute_checksum_4al_12;
+ nm_spec = "genericg_compute_checksum_4al_12"; break;
+ default: break;
+ }
- irsb->stmts[selfcheck_idx+0]
- = IRStmt_WrTmp(tistart_tmp, IRExpr_Const(guest_IP_bbstart_IRConst) );
+ expected32 = fn_generic( first_w32, w32s_to_check );
+ /* If we got a specialised version, check it produces the same
+ result as the generic version! */
+ if (fn_spec) {
+ vassert(nm_spec);
+ vassert(expected32 == fn_spec( first_w32 ));
+ } else {
+ vassert(!nm_spec);
+ }
- irsb->stmts[selfcheck_idx+1]
- = IRStmt_WrTmp(tilen_tmp,
- guest_word_type==Ity_I32
- ? IRExpr_Const(IRConst_U32(len2check))
- : IRExpr_Const(IRConst_U64(len2check))
- );
+ /* Set TISTART and TILEN. These will describe to the despatcher
+ the area of guest code to invalidate should we exit with a
+ self-check failure. */
- irsb->stmts[selfcheck_idx+2]
- = IRStmt_Put( offB_TISTART, IRExpr_RdTmp(tistart_tmp) );
+ tistart_tmp = newIRTemp(irsb->tyenv, guest_word_type);
+ tilen_tmp = newIRTemp(irsb->tyenv, guest_word_type);
- irsb->stmts[selfcheck_idx+3]
- = IRStmt_Put( offB_TILEN, IRExpr_RdTmp(tilen_tmp) );
+ irsb->stmts[selfcheck_idx+0]
+ = IRStmt_WrTmp(tistart_tmp, IRExpr_Const(guest_IP_bbstart_IRConst) );
- if (abiinfo_both->host_ppc_calls_use_fndescrs) {
- HWord* fndescr = (HWord*)checksum_fn;
- checksum_fn_entry = fndescr[0];
- } else {
- checksum_fn_entry = (HWord)checksum_fn;
- }
+ irsb->stmts[selfcheck_idx+1]
+ = IRStmt_WrTmp(tilen_tmp,
+ guest_word_type==Ity_I32
+ ? IRExpr_Const(IRConst_U32(len2check))
+ : IRExpr_Const(IRConst_U64(len2check))
+ );
- irsb->stmts[selfcheck_idx+4]
- = IRStmt_Exit(
- IRExpr_Binop(
- Iop_CmpNE32,
- mkIRExprCCall(
- Ity_I32,
- 2/*regparms*/,
- checksum_fn == genericg_compute_checksum_4al_4plus
- ? "genericg_compute_checksum_4al_4plus"
- : "genericg_compute_checksum_generic",
- (void*)checksum_fn_entry,
- mkIRExprVec_2(
- mkIRExpr_HWord( (HWord)guest_code ),
- mkIRExpr_HWord( (HWord)len2check )
- )
+ irsb->stmts[selfcheck_idx+2]
+ = IRStmt_Put( offB_TISTART, IRExpr_RdTmp(tistart_tmp) );
+
+ irsb->stmts[selfcheck_idx+3]
+ = IRStmt_Put( offB_TILEN, IRExpr_RdTmp(tilen_tmp) );
+
+ /* Generate the entry point descriptors */
+ if (abiinfo_both->host_ppc_calls_use_fndescrs) {
+ HWord* descr = (HWord*)fn_generic;
+ fn_generic_entry = descr[0];
+ if (fn_spec) {
+ descr = (HWord*)fn_spec;
+ fn_spec_entry = descr[0];
+ } else {
+ fn_spec_entry = (HWord)NULL;
+ }
+ } else {
+ fn_generic_entry = (HWord)fn_generic;
+ if (fn_spec) {
+ fn_spec_entry = (HWord)fn_spec;
+ } else {
+ fn_spec_entry = (HWord)NULL;
+ }
+ }
+
+ IRExpr* callexpr = NULL;
+ if (fn_spec) {
+ callexpr = mkIRExprCCall(
+ Ity_I32, 1/*regparms*/,
+ nm_spec, (void*)fn_spec_entry,
+ mkIRExprVec_1(
+ mkIRExpr_HWord( (HWord)first_w32 )
+ )
+ );
+ } else {
+ callexpr = mkIRExprCCall(
+ Ity_I32, 2/*regparms*/,
+ nm_generic, (void*)fn_generic_entry,
+ mkIRExprVec_2(
+ mkIRExpr_HWord( (HWord)first_w32 ),
+ mkIRExpr_HWord( (HWord)w32s_to_check )
+ )
+ );
+ }
+
+ irsb->stmts[selfcheck_idx+4]
+ = IRStmt_Exit(
+ IRExpr_Binop(
+ Iop_CmpNE32,
+ callexpr,
+ IRExpr_Const(IRConst_U32(expected32))
),
- IRExpr_Const(IRConst_U32(expected32))
- ),
- Ijk_TInval,
- guest_IP_bbstart_IRConst
- );
+ Ijk_TInval,
+ guest_IP_bbstart_IRConst
+ );
+ }
}
return irsb;
@@ -464,86 +582,252 @@
}
__attribute((regparm(2)))
-static UInt genericg_compute_checksum_generic ( HWord addr, HWord len )
+static UInt genericg_compute_checksum_4al ( HWord first_w32, HWord n_w32s )
{
- UInt sum1 = 0, sum2 = 0;
- /* pull up to 4-alignment */
- while ((addr & 3) != 0 && len >= 1) {
- UChar* p = (UChar*)addr;
- sum1 = (sum1 << 8) | (UInt)p[0];
- addr++;
- len--;
- }
- /* vectorised + unrolled */
- while (len >= 16) {
- UInt* p = (UInt*)addr;
+ UInt sum1 = 0, sum2 = 0;
+ UInt* p = (UInt*)first_w32;
+ /* unrolled */
+ while (n_w32s >= 4) {
UInt w;
w = p[0]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
w = p[1]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
w = p[2]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
w = p[3]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
- addr += 16;
- len -= 16;
+ p += 4;
+ n_w32s -= 4;
sum1 ^= sum2;
}
- /* vectorised fixup */
- while (len >= 4) {
- UInt* p = (UInt*)addr;
- UInt w = p[0];
- sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
- addr += 4;
- len -= 4;
+ while (n_w32s >= 1) {
+ UInt w;
+ w = p[0]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
+ p += 1;
+ n_w32s -= 1;
sum1 ^= sum2;
}
- /* scalar fixup */
- while (len >= 1) {
- UChar* p = (UChar*)addr;
- UInt w = (UInt)p[0];
- sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
- addr++;
- len--;
- }
return sum1 + sum2;
}
-__attribute((regparm(2)))
-static UInt genericg_compute_checksum_4al_4plus ( HWord addr, HWord len )
+/* Specialised versions of the above function */
+
+__attribute__((regparm(1)))
+static UInt genericg_compute_checksum_4al_1 ( HWord first_w32 )
{
- UInt sum1 = 0, sum2 = 0;
- /* vassert(0 == (addr & 3)); */
- /* vassert(len >= 4); */
- /* vectorised + unrolled */
- while (len >= 16) {
- UInt* p = (UInt*)addr;
- UInt w;
- w = p[0]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
- w = p[1]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
- w = p[2]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
- w = p[3]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
- addr += 16;
- len -= 16;
- sum1 ^= sum2;
- }
- /* vectorised fixup */
- while (len >= 4) {
- UInt* p = (UInt*)addr;
- UInt w = p[0];
- sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
- addr += 4;
- len -= 4;
- sum1 ^= sum2;
- }
- /* scalar fixup */
- while (len >= 1) {
- UChar* p = (UChar*)addr;
- UInt w = (UInt)p[0];
- sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
- addr++;
- len--;
- }
+ UInt sum1 = 0, sum2 = 0;
+ UInt* p = (UInt*)first_w32;
+ UInt w;
+ w = p[0]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
+ sum1 ^= sum2;
return sum1 + sum2;
}
+__attribute__((regparm(1)))
+static UInt genericg_compute_checksum_4al_2 ( HWord first_w32 )
+{
+ UInt sum1 = 0, sum2 = 0;
+ UInt* p = (UInt*)first_w32;
+ UInt w;
+ w = p[0]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
+ sum1 ^= sum2;
+ w = p[1]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
+ sum1 ^= sum2;
+ return sum1 + sum2;
+}
+
+__attribute__((regparm(1)))
+static UInt genericg_compute_checksum_4al_3 ( HWord first_w32 )
+{
+ UInt sum1 = 0, sum2 = 0;
+ UInt* p = (UInt*)first_w32;
+ UInt w;
+ w = p[0]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
+ sum1 ^= sum2;
+ w = p[1]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
+ sum1 ^= sum2;
+ w = p[2]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
+ sum1 ^= sum2;
+ return sum1 + sum2;
+}
+
+__attribute__((regparm(1)))
+static UInt genericg_compute_checksum_4al_4 ( HWord first_w32 )
+{
+ UInt sum1 = 0, sum2 = 0;
+ UInt* p = (UInt*)first_w32;
+ UInt w;
+ w = p[0]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
+ w = p[1]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
+ w = p[2]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
+ w = p[3]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
+ sum1 ^= sum2;
+ return sum1 + sum2;
+}
+
+__attribute__((regparm(1)))
+static UInt genericg_compute_checksum_4al_5 ( HWord first_w32 )
+{
+ UInt sum1 = 0, sum2 = 0;
+ UInt* p = (UInt*)first_w32;
+ UInt w;
+ w = p[0]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
+ w = p[1]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
+ w = p[2]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
+ w = p[3]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
+ sum1 ^= sum2;
+ w = p[4]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
+ sum1 ^= sum2;
+ return sum1 + sum2;
+}
+
+__attribute__((regparm(1)))
+static UInt genericg_compute_checksum_4al_6 ( HWord first_w32 )
+{
+ UInt sum1 = 0, sum2 = 0;
+ UInt* p = (UInt*)first_w32;
+ UInt w;
+ w = p[0]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
+ w = p[1]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
+ w = p[2]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
+ w = p[3]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
+ sum1 ^= sum2;
+ w = p[4]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
+ sum1 ^= sum2;
+ w = p[5]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
+ sum1 ^= sum2;
+ return sum1 + sum2;
+}
+
+__attribute__((regparm(1)))
+static UInt genericg_compute_checksum_4al_7 ( HWord first_w32 )
+{
+ UInt sum1 = 0, sum2 = 0;
+ UInt* p = (UInt*)first_w32;
+ UInt w;
+ w = p[0]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
+ w = p[1]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
+ w = p[2]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
+ w = p[3]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
+ sum1 ^= sum2;
+ w = p[4]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
+ sum1 ^= sum2;
+ w = p[5]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
+ sum1 ^= sum2;
+ w = p[6]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
+ sum1 ^= sum2;
+ return sum1 + sum2;
+}
+
+__attribute__((regparm(1)))
+static UInt genericg_compute_checksum_4al_8 ( HWord first_w32 )
+{
+ UInt sum1 = 0, sum2 = 0;
+ UInt* p = (UInt*)first_w32;
+ UInt w;
+ w = p[0]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
+ w = p[1]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
+ w = p[2]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
+ w = p[3]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
+ sum1 ^= sum2;
+ w = p[4]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
+ w = p[5]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
+ w = p[6]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
+ w = p[7]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
+ sum1 ^= sum2;
+ return sum1 + sum2;
+}
+
+__attribute__((regparm(1)))
+static UInt genericg_compute_checksum_4al_9 ( HWord first_w32 )
+{
+ UInt sum1 = 0, sum2 = 0;
+ UInt* p = (UInt*)first_w32;
+ UInt w;
+ w = p[0]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
+ w = p[1]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
+ w = p[2]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
+ w = p[3]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
+ sum1 ^= sum2;
+ w = p[4]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
+ w = p[5]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
+ w = p[6]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
+ w = p[7]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
+ sum1 ^= sum2;
+ w = p[8]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
+ sum1 ^= sum2;
+ return sum1 + sum2;
+}
+
+__attribute__((regparm(1)))
+static UInt genericg_compute_checksum_4al_10 ( HWord first_w32 )
+{
+ UInt sum1 = 0, sum2 = 0;
+ UInt* p = (UInt*)first_w32;
+ UInt w;
+ w = p[0]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
+ w = p[1]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
+ w = p[2]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
+ w = p[3]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
+ sum1 ^= sum2;
+ w = p[4]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
+ w = p[5]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
+ w = p[6]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
+ w = p[7]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
+ sum1 ^= sum2;
+ w = p[8]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
+ sum1 ^= sum2;
+ w = p[9]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
+ sum1 ^= sum2;
+ return sum1 + sum2;
+}
+
+__attribute__((regparm(1)))
+static UInt genericg_compute_checksum_4al_11 ( HWord first_w32 )
+{
+ UInt sum1 = 0, sum2 = 0;
+ UInt* p = (UInt*)first_w32;
+ UInt w;
+ w = p[0]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
+ w = p[1]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
+ w = p[2]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
+ w = p[3]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
+ sum1 ^= sum2;
+ w = p[4]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
+ w = p[5]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
+ w = p[6]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
+ w = p[7]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
+ sum1 ^= sum2;
+ w = p[8]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
+ sum1 ^= sum2;
+ w = p[9]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
+ sum1 ^= sum2;
+ w = p[10]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
+ sum1 ^= sum2;
+ return sum1 + sum2;
+}
+
+__attribute__((regparm(1)))
+static UInt genericg_compute_checksum_4al_12 ( HWord first_w32 )
+{
+ UInt sum1 = 0, sum2 = 0;
+ UInt* p = (UInt*)first_w32;
+ UInt w;
+ w = p[0]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
+ w = p[1]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
+ w = p[2]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
+ w = p[3]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
+ sum1 ^= sum2;
+ w = p[4]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
+ w = p[5]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
+ w = p[6]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
+ w = p[7]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
+ sum1 ^= sum2;
+ w = p[8]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
+ w = p[9]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
+ w = p[10]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
+ w = p[11]; sum1 = ROL32(sum1 ^ w, 31); sum2 += w;
+ sum1 ^= sum2;
+ return sum1 + sum2;
+}
+
/*--------------------------------------------------------------------*/
/*--- end guest_generic_bb_to_IR.c ---*/
/*--------------------------------------------------------------------*/
|
|
From: <sv...@va...> - 2010-02-18 15:54:55
|
Author: tom
Date: 2010-02-18 15:54:45 +0000 (Thu, 18 Feb 2010)
New Revision: 11050
Log:
Fix up a few issues with OSS ioctls. Fixes #227325.
Modified:
trunk/coregrind/m_syswrap/syswrap-linux.c
trunk/include/vki/vki-linux.h
Modified: trunk/coregrind/m_syswrap/syswrap-linux.c
===================================================================
--- trunk/coregrind/m_syswrap/syswrap-linux.c 2010-02-17 16:20:04 UTC (rev 11049)
+++ trunk/coregrind/m_syswrap/syswrap-linux.c 2010-02-18 15:54:45 UTC (rev 11050)
@@ -4035,6 +4035,7 @@
case VKI_SNDCTL_SEQ_NRSYNTHS:
case VKI_SNDCTL_SEQ_NRMIDIS:
case VKI_SNDCTL_SEQ_GETTIME:
+ case VKI_SNDCTL_DSP_GETBLKSIZE:
case VKI_SNDCTL_DSP_GETFMTS:
case VKI_SNDCTL_DSP_GETTRIGGER:
case VKI_SNDCTL_DSP_GETODELAY:
@@ -4043,9 +4044,6 @@
case VKI_SOUND_PCM_READ_RATE:
case VKI_SOUND_PCM_READ_CHANNELS:
case VKI_SOUND_PCM_READ_BITS:
-#if !defined(VGA_ppc32) && !defined(VGA_ppc64)
- case (VKI_SOUND_PCM_READ_BITS|0x40000000): /* what the fuck ? */
-#endif
case VKI_SOUND_PCM_READ_FILTER:
PRE_MEM_WRITE( "ioctl(SNDCTL_XXX|SOUND_XXX (SIOR, int))",
ARG3, sizeof(int));
@@ -4053,11 +4051,11 @@
case VKI_SNDCTL_SEQ_CTRLRATE:
case VKI_SNDCTL_DSP_SPEED:
case VKI_SNDCTL_DSP_STEREO:
- case VKI_SNDCTL_DSP_GETBLKSIZE:
case VKI_SNDCTL_DSP_CHANNELS:
case VKI_SOUND_PCM_WRITE_FILTER:
case VKI_SNDCTL_DSP_SUBDIVIDE:
case VKI_SNDCTL_DSP_SETFRAGMENT:
+ case VKI_SNDCTL_DSP_SETFMT:
case VKI_SNDCTL_DSP_GETCHANNELMASK:
case VKI_SNDCTL_DSP_BIND_CHANNEL:
case VKI_SNDCTL_TMR_TIMEBASE:
@@ -5006,7 +5004,9 @@
case VKI_SNDCTL_SEQ_NRSYNTHS:
case VKI_SNDCTL_SEQ_NRMIDIS:
case VKI_SNDCTL_SEQ_GETTIME:
+ case VKI_SNDCTL_DSP_GETBLKSIZE:
case VKI_SNDCTL_DSP_GETFMTS:
+ case VKI_SNDCTL_DSP_SETFMT:
case VKI_SNDCTL_DSP_GETTRIGGER:
case VKI_SNDCTL_DSP_GETODELAY:
case VKI_SNDCTL_DSP_GETSPDIF:
@@ -5014,16 +5014,12 @@
case VKI_SOUND_PCM_READ_RATE:
case VKI_SOUND_PCM_READ_CHANNELS:
case VKI_SOUND_PCM_READ_BITS:
-#if !defined(VGA_ppc32) && !defined(VGA_ppc64)
- case (VKI_SOUND_PCM_READ_BITS|0x40000000): /* what the fuck ? */
-#endif
case VKI_SOUND_PCM_READ_FILTER:
POST_MEM_WRITE(ARG3, sizeof(int));
break;
case VKI_SNDCTL_SEQ_CTRLRATE:
case VKI_SNDCTL_DSP_SPEED:
case VKI_SNDCTL_DSP_STEREO:
- case VKI_SNDCTL_DSP_GETBLKSIZE:
case VKI_SNDCTL_DSP_CHANNELS:
case VKI_SOUND_PCM_WRITE_FILTER:
case VKI_SNDCTL_DSP_SUBDIVIDE:
Modified: trunk/include/vki/vki-linux.h
===================================================================
--- trunk/include/vki/vki-linux.h 2010-02-17 16:20:04 UTC (rev 11049)
+++ trunk/include/vki/vki-linux.h 2010-02-18 15:54:45 UTC (rev 11050)
@@ -1868,6 +1868,7 @@
#define VKI_SNDCTL_DSP_SETFRAGMENT _VKI_SIOWR('P',10, int)
#define VKI_SNDCTL_DSP_GETFMTS _VKI_SIOR ('P',11, int) /* Returns a mask */
+#define VKI_SNDCTL_DSP_SETFMT _VKI_SIOWR('P', 5, int) /* Selects ONE fmt */
typedef struct vki_audio_buf_info {
int fragments; /* # of available fragments (partially usend ones not counted) */
|
|
From: Konstantin S. <kon...@gm...> - 2010-02-18 09:32:00
|
Hi, Some of you have probably seen this already: http://cacm.acm.org/magazines/2010/2/69354-a-few-billion-lines-of-code-later/fulltext/ I've got real pleasure from reading it. Even though the article is about a static analysis tool, most of it applies to dynamic tools as well. I wonder if valgrind folks would be willing to write something like this about memcheck or other tools? --kcc |
|
From: Bart V. A. <bar...@gm...> - 2010-02-18 08:48:23
|
Nightly build on cellbuzz-native ( cellbuzz, ppc64, Fedora 7, native ) Started at 2010-02-18 02:25:38 EST Ended at 2010-02-18 03:48:07 EST 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 == 449 tests, 43 stderr failures, 10 stdout failures, 0 post failures == memcheck/tests/deep_templates (stdout) memcheck/tests/leak-cases-full (stderr) memcheck/tests/leak-cases-summary (stderr) memcheck/tests/leak-cycle (stderr) memcheck/tests/linux/timerfd-syscall (stdout) memcheck/tests/linux-syscalls-2007 (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 (stdout) memcheck/tests/wrap8 (stderr) none/tests/empty-exe (stderr) none/tests/linux/mremap (stderr) 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) none/tests/shell_zerolength (stderr) helgrind/tests/hg05_race2 (stderr) helgrind/tests/tc06_two_races_xml (stderr) helgrind/tests/tc22_exit_w_lock (stderr) helgrind/tests/tc23_bogus_condwait (stderr) 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/hsg (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) |
|
From: Tom H. <th...@cy...> - 2010-02-18 03:36:20
|
Nightly build on mg ( x86_64, Fedora 9 ) Started at 2010-02-18 03:10:07 GMT Ended at 2010-02-18 03:36: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 == 538 tests, 1 stderr failure, 0 stdout failures, 0 post failures == helgrind/tests/tc06_two_races_xml (stderr) |
|
From: <sv...@va...> - 2010-02-17 16:20:13
|
Author: sewardj
Date: 2010-02-17 16:20:04 +0000 (Wed, 17 Feb 2010)
New Revision: 11049
Log:
Increase number of supported threads to 500. Fixes #227328.
Modified:
trunk/include/pub_tool_threadstate.h
Modified: trunk/include/pub_tool_threadstate.h
===================================================================
--- trunk/include/pub_tool_threadstate.h 2010-02-16 15:05:55 UTC (rev 11048)
+++ trunk/include/pub_tool_threadstate.h 2010-02-17 16:20:04 UTC (rev 11049)
@@ -36,7 +36,7 @@
scheduler algorithms is surely O(N) in the number of threads, since
that's simple, at least. And (in practice) we hope that most
programs do not need many threads. */
-#define VG_N_THREADS 300
+#define VG_N_THREADS 500
/* Special magic value for an invalid ThreadId. It corresponds to
LinuxThreads using zero as the initial value for
|
|
From: Bart V. A. <bar...@gm...> - 2010-02-17 08:21:52
|
Nightly build on cellbuzz-native ( cellbuzz, ppc64, Fedora 7, native ) Started at 2010-02-17 02:00:06 EST Ended at 2010-02-17 03:21:42 EST 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 == 449 tests, 43 stderr failures, 10 stdout failures, 0 post failures == memcheck/tests/deep_templates (stdout) memcheck/tests/leak-cases-full (stderr) memcheck/tests/leak-cases-summary (stderr) memcheck/tests/leak-cycle (stderr) memcheck/tests/linux/timerfd-syscall (stdout) memcheck/tests/linux-syscalls-2007 (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 (stdout) memcheck/tests/wrap8 (stderr) none/tests/empty-exe (stderr) none/tests/linux/mremap (stderr) 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) none/tests/shell_zerolength (stderr) helgrind/tests/hg05_race2 (stderr) helgrind/tests/tc06_two_races_xml (stderr) helgrind/tests/tc22_exit_w_lock (stderr) helgrind/tests/tc23_bogus_condwait (stderr) 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/hsg (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) |
|
From: Alexander P. <gl...@go...> - 2010-02-17 07:21:59
|
Nightly build on mcgrind ( Darwin 9.7.0 i386 ) Started at 2010-02-17 09:06:00 MSK Ended at 2010-02-17 09:24:46 MSK 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 == 433 tests, 22 stderr failures, 1 stdout failure, 0 post failures == memcheck/tests/null_socket (stdout) 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) none/tests/async-sigs (stderr) none/tests/faultstatus (stderr) none/tests/pth_blockedsig (stderr) helgrind/tests/hg03_inherit (stderr) helgrind/tests/hg04_race (stderr) helgrind/tests/hg05_race2 (stderr) helgrind/tests/rwlock_race (stderr) helgrind/tests/tc01_simple_race (stderr) helgrind/tests/tc05_simple_race (stderr) helgrind/tests/tc06_two_races (stderr) helgrind/tests/tc06_two_races_xml (stderr) helgrind/tests/tc16_byterace (stderr) helgrind/tests/tc18_semabuse (stderr) helgrind/tests/tc21_pthonce (stderr) helgrind/tests/tc23_bogus_condwait (stderr) -- Alexander Potapenko Software Engineer Google Moscow |
|
From: Bart V. A. <bva...@ac...> - 2010-02-17 07:10:47
|
On Tue, Feb 16, 2010 at 7:54 PM, Konstantin Serebryany < kon...@gm...> wrote: > Here is another idea. > > make ANNOTATE_BENIGN_RACE(ptr, descr) mark the bytes in range [ptr, > sizeof(*ptr)). > This will add a specific requirment that sizeof(*ptr) is a valid > expression (i.e. ptr is not void*). > This: > - will have well defined semantics > - will match the current use of this macro > - will break rare cases when void* is passed as a parameter. > Sounds like a good idea to me. And when ptr has type void*, inserting a cast to a pointer of the proper type is sufficient to get the old semantics back. Bart. |
|
From: Tom H. <th...@cy...> - 2010-02-17 03:36:08
|
Nightly build on mg ( x86_64, Fedora 9 ) Started at 2010-02-17 03:10:06 GMT Ended at 2010-02-17 03:35:52 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 == 538 tests, 1 stderr failure, 1 stdout failure, 0 post failures == helgrind/tests/tc06_two_races_xml (stderr) drd/tests/pth_detached2 (stdout) ================================================= == Results from 24 hours ago == ================================================= Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 538 tests, 1 stderr failure, 0 stdout failures, 0 post failures == helgrind/tests/tc06_two_races_xml (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Wed Feb 17 03:22:57 2010 --- new.short Wed Feb 17 03:35:52 2010 *************** *** 8,11 **** ! == 538 tests, 1 stderr failure, 0 stdout failures, 0 post failures == helgrind/tests/tc06_two_races_xml (stderr) --- 8,12 ---- ! == 538 tests, 1 stderr failure, 1 stdout failure, 0 post failures == helgrind/tests/tc06_two_races_xml (stderr) + drd/tests/pth_detached2 (stdout) |
|
From: Konstantin S. <kon...@gm...> - 2010-02-16 18:54:56
|
Here is another idea. make ANNOTATE_BENIGN_RACE(ptr, descr) mark the bytes in range [ptr, sizeof(*ptr)). This will add a specific requirment that sizeof(*ptr) is a valid expression (i.e. ptr is not void*). This: - will have well defined semantics - will match the current use of this macro - will break rare cases when void* is passsed as a parameter. ? --kcc On Mon, Feb 15, 2010 at 3:26 PM, Konstantin Serebryany <kon...@gm...> wrote: > On Mon, Feb 15, 2010 at 3:17 PM, Bart Van Assche <bva...@ac...> wrote: >> On Mon, Feb 15, 2010 at 12:52 PM, Konstantin Serebryany >> <kon...@gm...> wrote: >>> On Mon, Feb 15, 2010 at 2:45 PM, Bart Van Assche <bva...@ac...> wrote: >>>> On Mon, Feb 15, 2010 at 12:11 PM, <dat...@go...> wrote: >>>>> Revision: 1655 >>>>> Author: kon...@gm... >>>>> Date: Mon Feb 15 03:10:36 2010 >>>>> Log: added ANNOTATE_BENIGN_RACE_SIZED; ANNOTATE_BENIGN_RACE_STATIC uses >>>>> *_SIZED variant now >>>>> http://code.google.com/p/data-race-test/source/detail?r=1655 >>>> [ ... ] >>>> >>>> Hello Konstantin, >>>> >>>> Have you already considered deprecating ANNOTATE_BENIGN_RACE(), since >>>> this annotation doesn't have precisely defined semantics ? >>> >>> Well, it does have precisely defined semantics now. :) >>> It is equivalent to ANNOTATE_BENIGN_RACE_SIZED(mem, 1, descr); >> >> As far as I know this is the first time it is specified how many bytes >> ANNOTATE_BENIGN_RACE() applies to. I'm not sure it is a good idea to >> choose a range of one byte, given that e.g. the following code is >> present in the TSAN unittests: >> >> int GLOB = 0; >> ... >> ANNOTATE_BENIGN_RACE(&GLOB, "test56. Use of ANNOTATE_BENIGN_RACE."); > > Yes, I agree. > In ThreadSanitizer, when 2, 4 or 8 bytes are accessed by a single > instruction and all previous accesses had the same size, the tool will > only deal with the first byte. > So, the annotation in this test still works correctly with ThreadSanitizer. > This does not have to be a part of the definition of this annotation > though. What do you think? > > The lack of 'size' argument in this annotation is my mistake from > almost 2 years ago, but I can't just drop the current code now... :( > > --kcc > > > > > > >> >> Bart. >> >> -- >> You received this message because you are subscribed to the Google Groups "data-race-test" group. >> To post to this group, send email to dat...@go.... >> To unsubscribe from this group, send email to dat...@go.... >> For more options, visit this group at http://groups.google.com/group/data-race-test?hl=en. >> >> > |
|
From: szihs <har...@gm...> - 2010-02-16 14:49:13
|
Thank you. I am able to proceed further. I took the patch as you mentioned ( https://bugs.kde.org/attachment.cgi?id=40853 v2 ) Bugzilla from bat...@is... wrote: > > szihs wrote: >> I try running valgrind compiled for "arm" on an application based on >> http://trac.enlightenment.org/e/wiki/Elementary EFL >> >> The sample application runs fine. But when I run it with valgrind, >> valgrind >> crashes. Here is the backtrace with gdb for valgrind. >> > <...> >> ==2170== Warning: client syscall shmdt tried to modify addresses >> 0xffffffff-0xffffffff >> ==2170== at 0x41E64D9C: shmdt (in /lib/libc-2.9.so) >> ==2170== Warning: client syscall shmdt tried to modify addresses >> 0xffffffff-0xffffffff >> ==2170== at 0x41E64D9C: shmdt (in /lib/libc-2.9.so) > This looks like bug #222545 > (https://bugs.kde.org/show_bug.cgi?id=222545). I've tried > 'elementary_test' application with and without patch from this bug. It > runs fine with the patch but fails with same errors without it. > > Regards, > Kirill. > > ------------------------------------------------------------------------------ > SOLARIS 10 is the OS for Data Centers - provides features such as DTrace, > Predictive Self Healing and Award Winning ZFS. Get Solaris 10 NOW > http://p.sf.net/sfu/solaris-dev2dev > _______________________________________________ > Valgrind-developers mailing list > Val...@li... > https://lists.sourceforge.net/lists/listinfo/valgrind-developers > > -- View this message in context: http://old.nabble.com/Status-update-on-ARM-patch-tp20675375p27609432.html Sent from the Valgrind - Dev mailing list archive at Nabble.com. |
|
From: Kirill B. <bat...@is...> - 2010-02-16 10:35:49
|
szihs wrote: > I try running valgrind compiled for "arm" on an application based on > http://trac.enlightenment.org/e/wiki/Elementary EFL > > The sample application runs fine. But when I run it with valgrind, valgrind > crashes. Here is the backtrace with gdb for valgrind. > <...> > ==2170== Warning: client syscall shmdt tried to modify addresses > 0xffffffff-0xffffffff > ==2170== at 0x41E64D9C: shmdt (in /lib/libc-2.9.so) > ==2170== Warning: client syscall shmdt tried to modify addresses > 0xffffffff-0xffffffff > ==2170== at 0x41E64D9C: shmdt (in /lib/libc-2.9.so) This looks like bug #222545 (https://bugs.kde.org/show_bug.cgi?id=222545). I've tried 'elementary_test' application with and without patch from this bug. It runs fine with the patch but fails with same errors without it. Regards, Kirill. |
|
From: Bart V. A. <bar...@gm...> - 2010-02-16 08:49:37
|
Nightly build on cellbuzz-native ( cellbuzz, ppc64, Fedora 7, native ) Started at 2010-02-16 02:26:47 EST Ended at 2010-02-16 03:49:22 EST 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 == 449 tests, 43 stderr failures, 10 stdout failures, 0 post failures == memcheck/tests/deep_templates (stdout) memcheck/tests/leak-cases-full (stderr) memcheck/tests/leak-cases-summary (stderr) memcheck/tests/leak-cycle (stderr) memcheck/tests/linux/timerfd-syscall (stdout) memcheck/tests/linux-syscalls-2007 (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 (stdout) memcheck/tests/wrap8 (stderr) none/tests/empty-exe (stderr) none/tests/linux/mremap (stderr) 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) none/tests/shell_zerolength (stderr) helgrind/tests/hg05_race2 (stderr) helgrind/tests/tc06_two_races_xml (stderr) helgrind/tests/tc22_exit_w_lock (stderr) helgrind/tests/tc23_bogus_condwait (stderr) 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/hsg (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) |
|
From: Adam J. <jia...@gm...> - 2010-02-16 08:32:22
|
Hello, Valgrind developers. Is there a patch/branch of Valgrind for MIPS arch? I have googled on this topic but few result was returned. If you get something about this, could you please point me to the resource? Or could you please give me some guide to port Valgrind to MIPS arch. Anything about this will be appriciated. Thanks. -- Adam Jiang -☆-★-☆-★-☆-★-☆-★-☆-★-☆-★-☆-★- e-mail:jia...@gm... <e-mail%3Aj...@gm...> http://www.adamjiang.com -☆-★-☆-★-☆-★-☆-★-☆-★-☆-★-☆-★- |
|
From: Alexander P. <gl...@go...> - 2010-02-16 08:31:21
|
Nightly build on mcgrind ( Darwin 9.7.0 i386 ) Started at 2010-02-16 09:06:02 MSK Ended at 2010-02-16 09:37:30 MSK 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 == 433 tests, 22 stderr failures, 1 stdout failure, 0 post failures == memcheck/tests/null_socket (stdout) 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) none/tests/async-sigs (stderr) none/tests/faultstatus (stderr) none/tests/pth_blockedsig (stderr) helgrind/tests/hg03_inherit (stderr) helgrind/tests/hg04_race (stderr) helgrind/tests/hg05_race2 (stderr) helgrind/tests/rwlock_race (stderr) helgrind/tests/tc01_simple_race (stderr) helgrind/tests/tc05_simple_race (stderr) helgrind/tests/tc06_two_races (stderr) helgrind/tests/tc06_two_races_xml (stderr) helgrind/tests/tc16_byterace (stderr) helgrind/tests/tc18_semabuse (stderr) helgrind/tests/tc21_pthonce (stderr) helgrind/tests/tc23_bogus_condwait (stderr) -- Alexander Potapenko Software Engineer Google Moscow |
|
From: szihs <har...@gm...> - 2010-02-16 07:51:20
|
I try running valgrind compiled for "arm" on an application based on http://trac.enlightenment.org/e/wiki/Elementary EFL The sample application runs fine. But when I run it with valgrind, valgrind crashes. Here is the backtrace with gdb for valgrind. (gdb) bt #0 0x3803ce68 in do_syscall_WRK () #1 0x3803d12c in vgPlain_do_syscall (sysno=<value optimized out>, a1=0, a2=11, a3=0, a4=0, a5=0, a6=0, a7=0, a8=0) at m_syscall.c:761 #2 0x3802c8f4 in vgPlain_kill (pid=0, signo=0) at m_libcsignal.c:304 #3 0x3803b438 in vgPlain_kill_self (sigNo=11) at m_signals.c:1396 #4 0x380321b4 in shutdown_actions_NORETURN (tid=1, tids_schedretcode=VgSrc_FatalSig) at m_main.c:2504 #5 0x3808bdfc in run_a_thread_NORETURN (tidW=<value optimized out>) at m_syswrap/syswrap-linux.c:146 #6 0x00000000 in ?? () The valgrind verbose logs: # valgrind -v --tool=memcheck /usr/bin/myapp-1 ==2170== Memcheck, a memory error detector ==2170== Copyright (C) 2002-2009, and GNU GPL'd, by Julian Seward et al. ==2170== Using Valgrind-3.6.0.SVN and LibVEX; rerun with -h for copyright info ==2170== Command: /usr/bin/myapp-1 ==2170== --2170-- Valgrind options: --2170-- -v --2170-- --tool=memcheck --2170-- Contents of /proc/version: --2170-- Linux version 2.6.29.4 136690 43dc57590b601f9371d75258786e839c4849add6 (kmpark@july) (gcc version 4.3.2 (Sourcery G++ Lite 2008q3-72) ) #154 Fri Feb 12 16:48:39 KST 2010 --2170-- Arch and hwcaps: ARM, arm-baseline --2170-- Page sizes: currently 4096, max supported 4096 --2170-- Valgrind library directory: /usr/local/valgrind/lib/valgrind --2170-- Reading syms from /usr/bin/myapp-1 (0x8000) --2170-- Reading syms from /usr/local/valgrind/lib/valgrind/memcheck-arm-linux (0x38000000) --2170-- object doesn't have a dynamic symbol table --2170-- Reading syms from /lib/ld-2.9.so (0x41000000) --2170-- Reading suppressions file: /usr/local/valgrind/lib/valgrind/default.supp --2170-- REDIR: 0x41017050 (memcpy) redirected to 0x3803f238 (???) --2170-- REDIR: 0x410164a0 (strlen) redirected to 0x3803f20c (???) --2170-- Reading syms from /usr/local/valgrind/lib/valgrind/vgpreload_core-arm-linux.so (0x4801000) --2170-- Reading syms from /usr/local/valgrind/lib/valgrind/vgpreload_memcheck-arm-linux.so (0x480a000) --2170-- Reading syms from /usr/lib/libappfwk.so (0x4819000) --2170-- object doesn't have a symbol table --2170-- Reading syms from /usr/lib/libelementary-ver-pre-svn-05.so.0.6.0 (0x42970000) --2170-- Reading debug info from /usr/lib/libelementary-ver-pre-svn-05.so.0.6.0 .. --2170-- .. CRC mismatch (computed d6b43804 wanted 4572207f) --2170-- object doesn't have a symbol table --2170-- Reading syms from /usr/lib/libedje-ver-pre-svn-05.so.0.9.93 (0x428b8000) --2170-- Reading debug info from /usr/lib/libedje-ver-pre-svn-05.so.0.9.93 .. --2170-- .. CRC mismatch (computed ab509fb5 wanted 873b9fbf) --2170-- object doesn't have a symbol table --2170-- Reading syms from /usr/lib/libevas-ver-pre-svn-05.so.0.9.9 (0x42770000) --2170-- Reading debug info from /usr/lib/libevas-ver-pre-svn-05.so.0.9.9 .. --2170-- .. CRC mismatch (computed b66f7866 wanted 7d2abaf3) --2170-- object doesn't have a symbol table --2170-- Reading syms from /lib/libc-2.9.so (0x41d98000) --2170-- Reading syms from /usr/lib/libecore_x-ver-pre-svn-05.so.0.9.9 (0x42700000) --2170-- Reading debug info from /usr/lib/libecore_x-ver-pre-svn-05.so.0.9.9 .. --2170-- .. CRC mismatch (computed 77be5211 wanted 2571f2f9) --2170-- object doesn't have a symbol table --2170-- Reading syms from /usr/lib/libecore-ver-pre-svn-05.so.0.9.9 (0x42320000) --2170-- Reading debug info from /usr/lib/libecore-ver-pre-svn-05.so.0.9.9 .. --2170-- .. CRC mismatch (computed 669282a4 wanted d90b15a9) --2170-- object doesn't have a symbol table --2170-- Reading syms from /usr/lib/libpmapi.so.1.1 (0x429f0000) --2170-- Reading debug info from /usr/lib/libpmapi.so.1.1 .. --2170-- .. CRC mismatch (computed 46670f7a wanted 3e0c6ebb) --2170-- object doesn't have a symbol table --2170-- Reading syms from /usr/lib/libvconf.so.0.2.3 (0x423c8000) --2170-- Reading debug info from /usr/lib/libvconf.so.0.2.3 .. --2170-- .. CRC mismatch (computed 0189140a wanted c701107b) --2170-- object doesn't have a symbol table --2170-- Reading syms from /usr/lib/libutilcore.so.1.0.0 (0x423b0000) --2170-- Reading debug info from /usr/lib/libutilcore.so.1.0.0 .. --2170-- .. CRC mismatch (computed 5dad17ad wanted 27a3c9e6) --2170-- object doesn't have a symbol table --2170-- Reading syms from /usr/lib/libsensor.so (0x42a98000) --2170-- Reading debug info from /usr/lib/libsensor.so .. --2170-- .. CRC mismatch (computed 0e6383af wanted 3ceac3f3) --2170-- object doesn't have a symbol table --2170-- Reading syms from /lib/libdl-2.9.so (0x41ed0000) --2170-- Reading syms from /usr/lib/libecore_evas-ver-pre-svn-05.so.0.9.9 (0x42858000) --2170-- Reading debug info from /usr/lib/libecore_evas-ver-pre-svn-05.so.0.9.9 .. --2170-- .. CRC mismatch (computed 705d3606 wanted 77e6adbe) --2170-- object doesn't have a symbol table --2170-- Reading syms from /usr/lib/libecore_file-ver-pre-svn-05.so.0.9.9 (0x42848000) --2170-- Reading debug info from /usr/lib/libecore_file-ver-pre-svn-05.so.0.9.9 .. --2170-- .. CRC mismatch (computed 6d8f1c91 wanted 97058009) --2170-- object doesn't have a symbol table --2170-- Reading syms from /usr/lib/libecore_con-ver-pre-svn-05.so.0.9.9 (0x42738000) --2170-- Reading debug info from /usr/lib/libecore_con-ver-pre-svn-05.so.0.9.9 .. --2170-- .. CRC mismatch (computed 270268d6 wanted 8da9a4de) --2170-- object doesn't have a symbol table --2170-- Reading syms from /usr/lib/libecore_imf_evas-ver-pre-svn-05.so.0.9.9 (0x42960000) --2170-- Reading debug info from /usr/lib/libecore_imf_evas-ver-pre-svn-05.so.0.9.9 .. --2170-- .. CRC mismatch (computed c7ee1183 wanted dbd7bb63) --2170-- object doesn't have a symbol table --2170-- Reading syms from /lib/libm-2.9.so (0x41ee0000) --2170-- Reading syms from /usr/lib/libembryo-ver-pre-svn-05.so.0.9.9 (0x42890000) --2170-- Reading debug info from /usr/lib/libembryo-ver-pre-svn-05.so.0.9.9 .. --2170-- .. CRC mismatch (computed 3bc8730a wanted 44a5d75b) --2170-- object doesn't have a symbol table --2170-- Reading syms from /usr/lib/libecore_imf-ver-pre-svn-05.so.0.9.9 (0x42950000) --2170-- Reading debug info from /usr/lib/libecore_imf-ver-pre-svn-05.so.0.9.9 .. --2170-- .. CRC mismatch (computed f6ca265b wanted d343e47e) --2170-- object doesn't have a symbol table --2170-- Reading syms from /usr/lib/libeet.so.1.2.3 (0x426c8000) --2170-- Reading debug info from /usr/lib/libeet.so.1.2.3 .. --2170-- .. CRC mismatch (computed d59826db wanted c0e2a167) --2170-- object doesn't have a symbol table --2170-- Reading syms from /usr/lib/libfontconfig.so.1.3.0 (0x42498000) --2170-- object doesn't have a symbol table --2170-- Reading syms from /usr/lib/libfreetype.so.6.3.16 (0x42420000) --2170-- object doesn't have a symbol table --2170-- Reading syms from /usr/lib/libecore_input-ver-pre-svn-05.so.0.9.9 (0x42750000) --2170-- Reading debug info from /usr/lib/libecore_input-ver-pre-svn-05.so.0.9.9 .. --2170-- .. CRC mismatch (computed cb8efd64 wanted fcaf2702) --2170-- object doesn't have a symbol table --2170-- Reading syms from /usr/lib/libecore_txt-ver-pre-svn-05.so.0.9.9 (0x42760000) --2170-- Reading debug info from /usr/lib/libecore_txt-ver-pre-svn-05.so.0.9.9 .. --2170-- .. CRC mismatch (computed a003e96b wanted 8e2d8010) --2170-- object doesn't have a symbol table --2170-- Reading syms from /usr/lib/libecore_fb-ver-pre-svn-05.so.0.9.9 (0x42878000) --2170-- Reading debug info from /usr/lib/libecore_fb-ver-pre-svn-05.so.0.9.9 .. --2170-- .. CRC mismatch (computed 10d63377 wanted 7869caf5) --2170-- object doesn't have a symbol table --2170-- Reading syms from /usr/lib/libglib-2.0.so.0.2200.3 (0x42148000) --2170-- Reading debug info from /usr/lib/libglib-2.0.so.0.2200.3 .. --2170-- .. CRC mismatch (computed 6b2e9eb2 wanted 8206bac7) --2170-- object doesn't have a symbol table --2170-- Reading syms from /usr/lib/libeina-ver-pre-svn-05.so.0.9.9 (0x422d8000) --2170-- Reading debug info from /usr/lib/libeina-ver-pre-svn-05.so.0.9.9 .. --2170-- .. CRC mismatch (computed 9b770510 wanted 04ad2875) --2170-- object doesn't have a symbol table --2170-- Reading syms from /lib/libgcc_s.so.1 (0x41f90000) --2170-- Reading syms from /lib/librt-2.9.so (0x41fd0000) --2170-- Reading syms from /lib/libpthread-2.9.so (0x41fa8000) --2170-- Reading syms from /usr/lib/libXcursor.so.1.0.2 (0x425d8000) --2170-- Reading debug info from /usr/lib/libXcursor.so.1.0.2 .. --2170-- .. CRC mismatch (computed 1c8c6e8a wanted ee73928f) --2170-- object doesn't have a symbol table --2170-- Reading syms from /usr/lib/libXdamage.so.1.1.0 (0x42638000) --2170-- object doesn't have a symbol table --2170-- Reading syms from /usr/lib/libXcomposite.so.1.0.0 (0x42628000) --2170-- Reading debug info from /usr/lib/libXcomposite.so.1.0.0 .. --2170-- .. CRC mismatch (computed 8d240b9a wanted d59889b5) --2170-- object doesn't have a symbol table --2170-- Reading syms from /usr/lib/libXfixes.so.3.1.0 (0x425f0000) --2170-- Reading debug info from /usr/lib/libXfixes.so.3.1.0 .. --2170-- .. CRC mismatch (computed 584669a7 wanted cd2264f3) --2170-- object doesn't have a symbol table --2170-- Reading syms from /usr/lib/libXi.so.6.1.0 (0x425b0000) --2170-- Reading debug info from /usr/lib/libXi.so.6.1.0 .. --2170-- .. CRC mismatch (computed dedebeaa wanted 4830990e) --2170-- object doesn't have a symbol table --2170-- Reading syms from /usr/lib/libXinerama.so.1.0.0 (0x42600000) --2170-- Reading debug info from /usr/lib/libXinerama.so.1.0.0 .. --2170-- .. CRC mismatch (computed 87d0e1e4 wanted 2477710d) --2170-- object doesn't have a symbol table --2170-- Reading syms from /usr/lib/libXrandr.so.2.2.0 (0x425c8000) --2170-- Reading debug info from /usr/lib/libXrandr.so.2.2.0 .. --2170-- .. CRC mismatch (computed 344e6412 wanted 606d1d99) --2170-- object doesn't have a symbol table --2170-- Reading syms from /usr/lib/libXrender.so.1.3.0 (0x423e8000) --2170-- Reading debug info from /usr/lib/libXrender.so.1.3.0 .. --2170-- .. CRC mismatch (computed 99408f2f wanted 36b78e0b) --2170-- object doesn't have a symbol table --2170-- Reading syms from /usr/lib/libXtst.so.6.1.0 (0x42668000) --2170-- Reading debug info from /usr/lib/libXtst.so.6.1.0 .. --2170-- .. CRC mismatch (computed d2839ea0 wanted 4892fa3f) --2170-- object doesn't have a symbol table --2170-- Reading syms from /usr/lib/libXext.so.6.4.0 (0x42228000) --2170-- Reading debug info from /usr/lib/libXext.so.6.4.0 .. --2170-- .. CRC mismatch (computed 657f91b9 wanted 2b36491f) --2170-- object doesn't have a symbol table --2170-- Reading syms from /usr/lib/libX11.so.6.3.0 (0x42008000) --2170-- Reading debug info from /usr/lib/libX11.so.6.3.0 .. --2170-- .. CRC mismatch (computed 37342494 wanted b30de5ff) --2170-- object doesn't have a symbol table --2170-- Reading syms from /usr/lib/libxcb.so.1.1.0 (0x42128000) --2170-- object doesn't have a symbol table --2170-- Reading syms from /usr/lib/libXau.so.6.0.0 (0x41fe8000) --2170-- Reading debug info from /usr/lib/libXau.so.6.0.0 .. --2170-- .. CRC mismatch (computed 4d70c1b5 wanted b0e104a3) --2170-- object doesn't have a symbol table --2170-- Reading syms from /usr/lib/libXdmcp.so.6.0.0 (0x41ff8000) --2170-- Reading debug info from /usr/lib/libXdmcp.so.6.0.0 .. --2170-- .. CRC mismatch (computed 8e6bdd9f wanted 34f714ca) --2170-- object doesn't have a symbol table --2170-- Reading syms from /usr/lib/libgconf-2.so.4.1.0 (0x42378000) --2170-- Reading debug info from /usr/lib/libgconf-2.so.4.1.0 .. --2170-- .. CRC mismatch (computed 3aa6c2ff wanted a13a5035) --2170-- object doesn't have a symbol table --2170-- Reading syms from /usr/lib/libsf_common.so (0x42a80000) --2170-- Reading debug info from /usr/lib/libsf_common.so .. --2170-- .. CRC mismatch (computed 06d4bf77 wanted 51cb0f10) --2170-- object doesn't have a symbol table --2170-- Reading syms from /usr/lib/libstdc++.so.6.0.10 (0x424d0000) --2170-- warning: DiCfSI 0x3ed5c .. 0x3ed77 outside segment 0x425112e8 .. 0x42583bdb --2170-- warning: DiCfSI 0x3ed78 .. 0x3ed93 outside segment 0x425112e8 .. 0x42583bdb --2170-- warning: DiCfSI 0x3ed94 .. 0x3eda7 outside segment 0x425112e8 .. 0x42583bdb --2170-- warning: DiCfSI 0x3eda8 .. 0x3edbb outside segment 0x425112e8 .. 0x42583bdb --2170-- warning: DiCfSI 0x3edbc .. 0x3edcf outside segment 0x425112e8 .. 0x42583bdb --2170-- warning: DiCfSI 0x3edd0 .. 0x3eddb outside segment 0x425112e8 .. 0x42583bdb --2170-- warning: DiCfSI 0x3eddc .. 0x3edeb outside segment 0x425112e8 .. 0x42583bdb --2170-- warning: DiCfSI 0x3edec .. 0x3edf3 outside segment 0x425112e8 .. 0x42583bdb --2170-- warning: DiCfSI 0x3edf4 .. 0x3edfb outside segment 0x425112e8 .. 0x42583bdb --2170-- warning: DiCfSI 0x3edfc .. 0x3ee03 outside segment 0x425112e8 .. 0x42583bdb --2170-- Reading syms from /usr/lib/libecore_input_evas-ver-pre-svn-05.so.0.9.9 (0x428a8000) --2170-- Reading debug info from /usr/lib/libecore_input_evas-ver-pre-svn-05.so.0.9.9 .. --2170-- .. CRC mismatch (computed 0ad68fcd wanted eca66df8) --2170-- object doesn't have a symbol table --2170-- Reading syms from /usr/lib/libecore_data-ver-pre-svn-05.so.0.9.9 (0x42938000) --2170-- Reading debug info from /usr/lib/libecore_data-ver-pre-svn-05.so.0.9.9 .. --2170-- .. CRC mismatch (computed efedf996 wanted 0b38f6ad) --2170-- object doesn't have a symbol table --2170-- Reading syms from /usr/lib/libz.so.1.2.3 (0x42ac0000) --2170-- object doesn't have a symbol table --2170-- Reading syms from /usr/lib/libjpeg.so.7.0.0 (0x42678000) --2170-- Reading debug info from /usr/lib/libjpeg.so.7.0.0 .. --2170-- .. CRC mismatch (computed f3bd6a93 wanted e24f0033) --2170-- object doesn't have a symbol table --2170-- Reading syms from /usr/lib/libexpat.so.1.5.2 (0x423f8000) --2170-- object doesn't have a symbol table --2170-- Reading syms from /usr/lib/libgmodule-2.0.so.0.2200.3 (0x42310000) --2170-- Reading debug info from /usr/lib/libgmodule-2.0.so.0.2200.3 .. --2170-- .. CRC mismatch (computed 9cf5ee0b wanted 23d84557) --2170-- object doesn't have a symbol table --2170-- Reading syms from /usr/lib/libdbus-glib-1.so.2.1.0 (0x42350000) --2170-- Reading debug info from /usr/lib/libdbus-glib-1.so.2.1.0 .. --2170-- .. CRC mismatch (computed 0fd69634 wanted 880b2ab2) --2170-- object doesn't have a symbol table --2170-- Reading syms from /usr/lib/libdbus-1.so.3.4.0 (0x42298000) --2170-- object doesn't have a symbol table --2170-- Reading syms from /usr/lib/libgobject-2.0.so.0.2200.3 (0x42248000) --2170-- Reading debug info from /usr/lib/libgobject-2.0.so.0.2200.3 .. --2170-- .. CRC mismatch (computed 26fcec60 wanted 58a0f0f0) --2170-- object doesn't have a symbol table ==2170== Conditional jump or move depends on uninitialised value(s) ==2170== at 0x4100AFD4: _dl_relocate_object (in /lib/ld-2.9.so) ==2170== ==2170== Conditional jump or move depends on uninitialised value(s) ==2170== at 0x4100B0DC: _dl_relocate_object (in /lib/ld-2.9.so) ==2170== ==2170== Conditional jump or move depends on uninitialised value(s) ==2170== at 0x4100BAD4: _dl_relocate_object (in /lib/ld-2.9.so) ==2170== --2170-- REDIR: 0x41e0e780 (memset) redirected to 0x480ea00 (memset) --2170-- REDIR: 0x41e0ee70 (memcpy) redirected to 0x480fdbc (memcpy) --2170-- REDIR: 0x41e0d0dc (rindex) redirected to 0x480e0cc (rindex) --2170-- REDIR: 0x41e0ccd0 (strlen) redirected to 0x480e50c (strlen) --2170-- REDIR: 0x41e11c98 (strchrnul) redirected to 0x480eac8 (strchrnul) PROF: link & load time: myapp-1: 1115618865 sec 468947 usec --2170-- REDIR: 0x41e09b70 (malloc) redirected to 0x480d0ec (malloc) --2170-- REDIR: 0x41e0c8b4 (strcpy) redirected to 0x481033c (strcpy) --2170-- REDIR: 0x41e11bd0 (rawmemchr) redirected to 0x480eb0c (rawmemchr) --2170-- REDIR: 0x41e0905c (calloc) redirected to 0x480bf90 (calloc) --2170-- REDIR: 0x41e0c854 (strcmp) redirected to 0x480e71c (strcmp) --2170-- REDIR: 0x41e0cee8 (strncmp) redirected to 0x480e5ec (strncmp) --2170-- REDIR: 0x41e0c738 (index) redirected to 0x480e1b4 (index) --2170-- REDIR: 0x41e0e810 (mempcpy) redirected to 0x480f304 (mempcpy) --2170-- REDIR: 0x41e066f0 (free) redirected to 0x480cbbc (free) --2170-- REDIR: 0x41e0cd30 (strnlen) redirected to 0x480e464 (strnlen) --2170-- REDIR: 0x41e0eb84 (stpcpy) redirected to 0x480f778 (stpcpy) --2170-- REDIR: 0x41e0dea8 (memchr) redirected to 0x480e8ac (memchr) --2170-- REDIR: 0x41e0dfd4 (bcmp) redirected to 0x480e958 (bcmp) --2170-- REDIR: 0x41dc60d0 (setenv) redirected to 0x480ec80 (setenv) --2170-- REDIR: 0x41e0a0b4 (realloc) redirected to 0x480d1d4 (realloc) ==2170== Invalid write of size 4 ==2170== at 0x4291F500: ??? (in /usr/lib/libedje-ver-pre-svn-05.so.0.9.93) ==2170== Address 0xbde2d9fc is just below the stack ptr. To suppress, use: --workaround-gcc296-bugs=yes ==2170== --2170-- REDIR: 0x41e0d00c (strncpy) redirected to 0x48100cc (strncpy) ==2170== Invalid write of size 4 ==2170== at 0x429CEAEC: ??? (in /usr/lib/libelementary-ver-pre-svn-05.so.0.6.0) ==2170== Address 0xbde2dad4 is just below the stack ptr. To suppress, use: --workaround-gcc296-bugs=yes ==2170== ==2170== Invalid write of size 4 ==2170== at 0x4232F6E4: ??? (in /usr/lib/libecore-ver-pre-svn-05.so.0.9.9) ==2170== Address 0xbde2dab4 is just below the stack ptr. To suppress, use: --workaround-gcc296-bugs=yes ==2170== --2170-- REDIR: 0x41e0c6fc (strcat) redirected to 0x480ef7c (strcat) --2170-- REDIR: 0x41e0e4d0 (memmove) redirected to 0x480ea64 (memmove) ==2170== Invalid read of size 4 ==2170== at 0x410163BC: index (in /lib/ld-2.9.so) ==2170== Address 0x491abec is 92 bytes inside a block of size 94 alloc'd ==2170== at 0x480D18C: malloc (vg_replace_malloc.c:236) ==2170== by 0x422EB1D3: eina_module_new (in /usr/lib/libeina-ver-pre-svn-05.so.0.9.9) ==2170== --2170-- Reading syms from /usr/lib/evas/modules/engines/software_x11/linux-gnueabi-arm-ver-pre-svn-05/module.so (0x4d6e000) --2170-- Reading debug info from /usr/lib/evas/modules/engines/software_x11/linux-gnueabi-arm-ver-pre-svn-05/module.so .. --2170-- .. CRC mismatch (computed 37864733 wanted 3973621a) --2170-- object doesn't have a symbol table ==2170== Conditional jump or move depends on uninitialised value(s) ==2170== at 0x4100B08C: _dl_relocate_object (in /lib/ld-2.9.so) ==2170== ==2170== Conditional jump or move depends on uninitialised value(s) ==2170== at 0x4100BA70: _dl_relocate_object (in /lib/ld-2.9.so) ==2170== ==2170== Conditional jump or move depends on uninitialised value(s) ==2170== at 0x4100BA74: _dl_relocate_object (in /lib/ld-2.9.so) ==2170== --2170-- Reading syms from /usr/lib/evas/modules/engines/software_generic/linux-gnueabi-arm-ver-pre-svn-05/module.so (0x4d7d000) --2170-- Reading debug info from /usr/lib/evas/modules/engines/software_generic/linux-gnueabi-arm-ver-pre-svn-05/module.so .. --2170-- .. CRC mismatch (computed 3351d286 wanted fee84826) --2170-- object doesn't have a symbol table ==2170== Warning: client syscall shmdt tried to modify addresses 0xffffffff-0xffffffff ==2170== at 0x41E64D9C: shmdt (in /lib/libc-2.9.so) ==2170== Warning: client syscall shmdt tried to modify addresses 0xffffffff-0xffffffff ==2170== at 0x41E64D9C: shmdt (in /lib/libc-2.9.so) ==2170== Invalid write of size 4 ==2170== at 0x42724C28: ??? (in /usr/lib/libecore_x-ver-pre-svn-05.so.0.9.9) ==2170== Address 0xbde2fa04 is just below the stack ptr. To suppress, use: --workaround-gcc296-bugs=yes ==2170== PROF: measure start: app_init ==2170== Invalid write of size 4 ==2170== at 0x41E9C604: __eqdf2 (ieee754-df.S:1120) ==2170== Address 0xbde2b8b4 is just below the stack ptr. To suppress, use: --workaround-gcc296-bugs=yes ==2170== ==2170== Invalid write of size 4 ==2170== at 0x4281EA08: ??? (in /usr/lib/libevas-ver-pre-svn-05.so.0.9.9) ==2170== Address 0xbde2fb14 is just below the stack ptr. To suppress, use: --workaround-gcc296-bugs=yes ==2170== PROF: measure: app_init: 2319 msec --2170-- memcheck GC: 1024 nodes, 1024 survivors (100.0%) --2170-- memcheck GC: increase table size to 2048 ==2170== Invalid write of size 4 ==2170== at 0x424B47B0: ??? (in /usr/lib/libfontconfig.so.1.3.0) ==2170== Address 0xbde2f224 is just below the stack ptr. To suppress, use: --workaround-gcc296-bugs=yes ==2170== ==2170== Invalid write of size 4 ==2170== at 0x427CC4D4: ??? (in /usr/lib/libevas-ver-pre-svn-05.so.0.9.9) ==2170== Address 0x77f is not stack'd, malloc'd or (recently) free'd ==2170== ==2170== ==2170== Process terminating with default action of signal 11 (SIGSEGV) ==2170== Access not within mapped region at address 0x77F ==2170== at 0x427CC4D4: ??? (in /usr/lib/libevas-ver-pre-svn-05.so.0.9.9) ==2170== If you believe this happened as a result of a stack ==2170== overflow in your program's main thread (unlikely but ==2170== possible), you can try to increase the size of the ==2170== main thread stack using the --main-stacksize= flag. ==2170== The main thread stack size used in this run was 8388608. ==2170== ==2170== HEAP SUMMARY: ==2170== in use at exit: 561,260 bytes in 4,918 blocks ==2170== total heap usage: 16,429 allocs, 11,511 frees, 2,036,240 bytes allocated ==2170== ==2170== Searching for pointers to 4,918 not-freed blocks ==2170== Checked 1,001,608 bytes ==2170== ==2170== LEAK SUMMARY: ==2170== definitely lost: 256 bytes in 1 blocks ==2170== indirectly lost: 2,976 bytes in 93 blocks ==2170== possibly lost: 6,209 bytes in 94 blocks ==2170== still reachable: 551,819 bytes in 4,730 blocks ==2170== suppressed: 0 bytes in 0 blocks ==2170== Rerun with --leak-check=full to see details of leaked memory ==2170== ==2170== Use --track-origins=yes to see where uninitialised values come from ==2170== ERROR SUMMARY: 6485 errors from 15 contexts (suppressed: 0 from 0) ==2170== ==2170== 1 errors in context 1 of 15: ==2170== Invalid write of size 4 ==2170== at 0x427CC4D4: ??? (in /usr/lib/libevas-ver-pre-svn-05.so.0.9.9) ==2170== Address 0x77f is not stack'd, malloc'd or (recently) free'd ==2170== ==2170== ==2170== 1 errors in context 2 of 15: ==2170== Invalid write of size 4 ==2170== at 0x4281EA08: ??? (in /usr/lib/libevas-ver-pre-svn-05.so.0.9.9) ==2170== Address 0xbde2fb14 is just below the stack ptr. To suppress, use: --workaround-gcc296-bugs=yes ==2170== ==2170== ==2170== 2 errors in context 3 of 15: ==2170== Conditional jump or move depends on uninitialised value(s) ==2170== at 0x4100BA74: _dl_relocate_object (in /lib/ld-2.9.so) ==2170== ==2170== ==2170== 2 errors in context 4 of 15: ==2170== Conditional jump or move depends on uninitialised value(s) ==2170== at 0x4100BA70: _dl_relocate_object (in /lib/ld-2.9.so) ==2170== ==2170== ==2170== 2 errors in context 5 of 15: ==2170== Conditional jump or move depends on uninitialised value(s) ==2170== at 0x4100B08C: _dl_relocate_object (in /lib/ld-2.9.so) ==2170== ==2170== ==2170== 3 errors in context 6 of 15: ==2170== Conditional jump or move depends on uninitialised value(s) ==2170== at 0x4100BAD4: _dl_relocate_object (in /lib/ld-2.9.so) ==2170== ==2170== ==2170== 3 errors in context 7 of 15: ==2170== Conditional jump or move depends on uninitialised value(s) ==2170== at 0x4100B0DC: _dl_relocate_object (in /lib/ld-2.9.so) ==2170== ==2170== ==2170== 3 errors in context 8 of 15: ==2170== Conditional jump or move depends on uninitialised value(s) ==2170== at 0x4100AFD4: _dl_relocate_object (in /lib/ld-2.9.so) ==2170== ==2170== ==2170== 4 errors in context 9 of 15: ==2170== Invalid read of size 4 ==2170== at 0x410163BC: index (in /lib/ld-2.9.so) ==2170== Address 0x491abec is 92 bytes inside a block of size 94 alloc'd ==2170== at 0x480D18C: malloc (vg_replace_malloc.c:236) ==2170== by 0x422EB1D3: eina_module_new (in /usr/lib/libeina-ver-pre-svn-05.so.0.9.9) ==2170== ==2170== ==2170== 5 errors in context 10 of 15: ==2170== Invalid write of size 4 ==2170== at 0x41E9C604: __eqdf2 (ieee754-df.S:1120) ==2170== Address 0xbde2b8b4 is just below the stack ptr. To suppress, use: --workaround-gcc296-bugs=yes ==2170== ==2170== ==2170== 6 errors in context 11 of 15: ==2170== Invalid write of size 4 ==2170== at 0x42724C28: ??? (in /usr/lib/libecore_x-ver-pre-svn-05.so.0.9.9) ==2170== Address 0xbde2fa04 is just below the stack ptr. To suppress, use: --workaround-gcc296-bugs=yes ==2170== ==2170== ==2170== 10 errors in context 12 of 15: ==2170== Invalid write of size 4 ==2170== at 0x4232F6E4: ??? (in /usr/lib/libecore-ver-pre-svn-05.so.0.9.9) ==2170== Address 0xbde2dab4 is just below the stack ptr. To suppress, use: --workaround-gcc296-bugs=yes ==2170== ==2170== ==2170== 12 errors in context 13 of 15: ==2170== Invalid write of size 4 ==2170== at 0x429CEAEC: ??? (in /usr/lib/libelementary-ver-pre-svn-05.so.0.6.0) ==2170== Address 0xbde2dad4 is just below the stack ptr. To suppress, use: --workaround-gcc296-bugs=yes ==2170== ==2170== ==2170== 351 errors in context 14 of 15: ==2170== Invalid write of size 4 ==2170== at 0x4291F500: ??? (in /usr/lib/libedje-ver-pre-svn-05.so.0.9.93) ==2170== Address 0xbde2d9fc is just below the stack ptr. To suppress, use: --workaround-gcc296-bugs=yes ==2170== ==2170== ==2170== 6080 errors in context 15 of 15: ==2170== Invalid write of size 4 ==2170== at 0x424B47B0: ??? (in /usr/lib/libfontconfig.so.1.3.0) ==2170== Address 0xbde2f224 is just below the stack ptr. To suppress, use: --workaround-gcc296-bugs=yes ==2170== ==2170== ERROR SUMMARY: 6485 errors from 15 contexts (suppressed: 0 from 0) Segmentation fault I hope you can help me on this issue. Please let me know if you require more information. Thanks szihs Bugzilla from jb...@gm... wrote: > > Just an update in case anyone searches the mailinglist. > > The issue is that an unaligned word load on ARM is translated into an > aligned word load with the data rotated. (sigh) > I haven't checked any recent kernel if they've changed the default, but > you can > 'cat /proc/cpu/alignment' to find out if the kernel is configured to > fix unaligned accesses, and you can enable it by executing > echo 2 > /proc/cpu/alignment > > I don't think it's worth to fix the unaligned accesses in valgrind > right now, so if you are going to use the arm port, be aware that you > have to enable kernel fixups of the unaligned word accesses. > > /Johan > > ------------------------------------------------------------------------------ > _______________________________________________ > Valgrind-developers mailing list > Val...@li... > https://lists.sourceforge.net/lists/listinfo/valgrind-developers > > -- View this message in context: http://old.nabble.com/Status-update-on-ARM-patch-tp20675375p27603809.html Sent from the Valgrind - Dev mailing list archive at Nabble.com. |
|
From: Tom H. <th...@cy...> - 2010-02-16 03:36:22
|
Nightly build on mg ( x86_64, Fedora 9 ) Started at 2010-02-16 03:10:06 GMT Ended at 2010-02-16 03:36: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 == 538 tests, 1 stderr failure, 0 stdout failures, 0 post failures == helgrind/tests/tc06_two_races_xml (stderr) |
|
From: Konstantin S. <kon...@gm...> - 2010-02-15 13:23:50
|
On Mon, Feb 15, 2010 at 3:17 PM, Bart Van Assche <bva...@ac...> wrote: > On Mon, Feb 15, 2010 at 12:52 PM, Konstantin Serebryany > <kon...@gm...> wrote: >> On Mon, Feb 15, 2010 at 2:45 PM, Bart Van Assche <bva...@ac...> wrote: >>> On Mon, Feb 15, 2010 at 12:11 PM, <dat...@go...> wrote: >>>> Revision: 1655 >>>> Author: kon...@gm... >>>> Date: Mon Feb 15 03:10:36 2010 >>>> Log: added ANNOTATE_BENIGN_RACE_SIZED; ANNOTATE_BENIGN_RACE_STATIC uses >>>> *_SIZED variant now >>>> http://code.google.com/p/data-race-test/source/detail?r=1655 >>> [ ... ] >>> >>> Hello Konstantin, >>> >>> Have you already considered deprecating ANNOTATE_BENIGN_RACE(), since >>> this annotation doesn't have precisely defined semantics ? >> >> Well, it does have precisely defined semantics now. :) >> It is equivalent to ANNOTATE_BENIGN_RACE_SIZED(mem, 1, descr); > > As far as I know this is the first time it is specified how many bytes > ANNOTATE_BENIGN_RACE() applies to. I'm not sure it is a good idea to > choose a range of one byte, given that e.g. the following code is > present in the TSAN unittests: > > int GLOB = 0; > ... > ANNOTATE_BENIGN_RACE(&GLOB, "test56. Use of ANNOTATE_BENIGN_RACE."); Yes, I agree. In ThreadSanitizer, when 2, 4 or 8 bytes are accessed by a single instruction and all previous accesses had the same size, the tool will only deal with the first byte. So, the annotation in this test still works correctly with ThreadSanitizer. This does not have to be a part of the definition of this annotation though. What do you think? The lack of 'size' argument in this annotation is my mistake from almost 2 years ago, but I can't just drop the current code now... :( --kcc > > Bart. > > -- > You received this message because you are subscribed to the Google Groups "data-race-test" group. > To post to this group, send email to dat...@go.... > To unsubscribe from this group, send email to dat...@go.... > For more options, visit this group at http://groups.google.com/group/data-race-test?hl=en. > > |