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
(14) |
2
(16) |
3
(7) |
|
4
(7) |
5
(9) |
6
(8) |
7
(10) |
8
(16) |
9
(15) |
10
(9) |
|
11
(11) |
12
(13) |
13
(8) |
14
(8) |
15
(10) |
16
(25) |
17
(7) |
|
18
(7) |
19
(13) |
20
(10) |
21
(14) |
22
(11) |
23
(12) |
24
(8) |
|
25
(19) |
26
(10) |
27
(16) |
28
(13) |
|
|
|
|
From: Ashley P. <as...@qu...> - 2007-02-21 17:46:19
|
On Wed, 2007-02-21 at 13:14 +0000, Ashley Pittman wrote: > As discussed on valgrind-users here is a patch to add the offset into a > seginfo to each frame of a stack trace when using xml. This allows you > to use external tools to resolve symbols if required. Replying to myself here I know but I've been looking at this further, I've managed to trim down the patch and not modify the tool interface which is good, I've attached a better version. When I try it on a actual case where I'm not seeing stack traces for errors in icc generated code I find that addr2line can't resole the symbol name either although it does tell me the exact offset to look at, in this case 0x47d18. I guess this means it's probably a Intel problem rather than a Valgrind one. 00047d10 <movdqa8>: 47d10: 83 e9 20 sub $0x20,%ecx 47d13: 66 0f 6f 5e 10 movdqa 0x10(%esi),%xmm3 47d18: 66 0f 6f 46 20 movdqa 0x20(%esi),%xmm0 47d1d: 83 c6 20 add $0x20,%esi 47d20: 66 0f 73 d9 08 psrldq $0x8,%xmm1 47d25: 66 0f 6f d3 movdqa %xmm3,%xmm2 47d29: 66 0f 73 fb 08 pslldq $0x8,%xmm3 47d2e: 66 0f eb d9 por %xmm1,%xmm3 47d32: 66 0f 73 da 08 psrldq $0x8,%xmm2 47d37: 66 0f 6f c8 movdqa %xmm0,%xmm1 47d3b: 66 0f 73 f8 08 pslldq $0x8,%xmm0 47d40: 66 0f eb c2 por %xmm2,%xmm0 47d44: 66 0f 7f 1a movdqa %xmm3,(%edx) 47d48: 66 0f 7f 42 10 movdqa %xmm0,0x10(%edx) 47d4d: 83 c2 20 add $0x20,%edx 47d50: 83 f9 20 cmp $0x20,%ecx 47d53: 7d bb jge 47d10 <movdqa8> 47d55: e9 2b 02 00 00 jmp 47f85 <movdqa.epi> 47d5a: 8d b6 00 00 00 00 lea 0x0(%esi),%esi Ashley, |
|
From: Ashley P. <as...@qu...> - 2007-02-21 13:14:21
|
As discussed on valgrind-users here is a patch to add the offset into a
seginfo to each frame of a stack trace when using xml. This allows you
to use external tools to resolve symbols if required.
Ashley,
<error>
<tid>1</tid>
<kind>Signal</kind>
<signal>11</signal>
<what>Process terminating with default action of signal 11 (SIGSEGV):
dumping core</what>
<event>Access not within mapped region</event>
<address>0x2</address>
<stack>
<frame>
<ip>0x4907121</ip>
<obj>/opt/valgrind-3.3.0.SVN-quadrics-20070215/lib/valgrind/amd64-linux/vgpreload_memcheck.so</obj>
<offset>0x4121</offset>
<fn>memcpy</fn>
<dir>/home/ashley/q/valgrind/working/valgrind/memcheck</dir>
<file>mc_replace_strmem.c</file>
<line>402</line>
</frame>
<frame>
<ip>0x4004BF</ip>
<obj>/tmp/a.out</obj>
<offset>0x4004BF</offset>
<fn>main</fn>
<dir>/tmp</dir>
<file>segv.c</file>
<line>3</line>
</frame>
</stack>
</error>
$ addr2line
--exe /opt/valgrind-3.3.0.SVN-quadrics-20070215/lib/valgrind/amd64-linux/vgpreload_memcheck.so 0x4121
/home/ashley/q/valgrind/working/valgrind/memcheck/mc_replace_strmem.c:402
$ addr2line --exe /tmp/a.out 0x4004BF
/tmp/segv.c:3
|
|
From: <sv...@va...> - 2007-02-21 10:51:44
|
Author: njn
Date: 2007-02-21 10:51:41 +0000 (Wed, 21 Feb 2007)
New Revision: 6607
Log:
Improved stats gathering about how many origins might be identified.
Added an extra number to "origin unknown" origin which gives some info (to
the educated reader) about why no origin was found. This breaks the
origin-* reg tests.
Added some notes about ideas to improve the frequency of correct
identification.
A few other things.
Modified:
branches/ORIGIN_TRACKING/coregrind/m_execontext.c
branches/ORIGIN_TRACKING/coregrind/m_tooliface.c
branches/ORIGIN_TRACKING/coregrind/pub_core_tooliface.h
branches/ORIGIN_TRACKING/helgrind/hg_main.c
branches/ORIGIN_TRACKING/include/pub_tool_execontext.h
branches/ORIGIN_TRACKING/memcheck/mc_main.c
branches/ORIGIN_TRACKING/memcheck/mc_translate.c
Modified: branches/ORIGIN_TRACKING/coregrind/m_execontext.c
===================================================================
--- branches/ORIGIN_TRACKING/coregrind/m_execontext.c 2007-02-20 19:23:19 UTC (rev 6606)
+++ branches/ORIGIN_TRACKING/coregrind/m_execontext.c 2007-02-21 10:51:41 UTC (rev 6607)
@@ -325,7 +325,7 @@
// iterator, or a first-match predicate? But don't want to slow this down
// too much? Maybe it doesn't matter, since it's only called on non-dup
// errors.
-ExeContext* is_an_ExeContext(UInt maybe_ec_low32)
+ExeContext* VG_(is_an_ExeContext)(UInt maybe_ec_low32)
{
Int i;
ExeContext* curr;
Modified: branches/ORIGIN_TRACKING/coregrind/m_tooliface.c
===================================================================
--- branches/ORIGIN_TRACKING/coregrind/m_tooliface.c 2007-02-20 19:23:19 UTC (rev 6606)
+++ branches/ORIGIN_TRACKING/coregrind/m_tooliface.c 2007-02-21 10:51:41 UTC (rev 6607)
@@ -270,8 +270,8 @@
VG_(tdict).fn = f; \
}
-#define DEF2(fn, args...) \
-void VG_(fn)(VG_REGPARM(1) void(*f)(args)) \
+#define DEF2(regparm, fn, args...) \
+void VG_(fn)(VG_REGPARM(regparm) void(*f)(args)) \
{ \
VG_(tdict).fn = f; \
}
@@ -287,27 +287,27 @@
DEF(track_die_mem_brk, Addr, SizeT)
DEF(track_die_mem_munmap, Addr, SizeT)
-DEF2(track_new_mem_stack_4, Addr)
-DEF2(track_new_mem_stack_8, Addr)
-DEF2(track_new_mem_stack_12, Addr)
-DEF2(track_new_mem_stack_16, Addr)
-DEF2(track_new_mem_stack_32, Addr)
+DEF2(1, track_new_mem_stack_4, Addr)
+DEF2(1, track_new_mem_stack_8, Addr)
+DEF2(1, track_new_mem_stack_12, Addr)
+DEF2(1, track_new_mem_stack_16, Addr)
+DEF2(1, track_new_mem_stack_32, Addr)
//DEF2(track_new_mem_stack_112, Addr)
//DEF2(track_new_mem_stack_128, Addr)
//DEF2(track_new_mem_stack_144, Addr)
//DEF2(track_new_mem_stack_160, Addr)
-DEF (track_new_mem_stack, Addr, SizeT)
+DEF2(2, track_new_mem_stack, Addr, SizeT)
-DEF2(track_die_mem_stack_4, Addr)
-DEF2(track_die_mem_stack_8, Addr)
-DEF2(track_die_mem_stack_12, Addr)
-DEF2(track_die_mem_stack_16, Addr)
-DEF2(track_die_mem_stack_32, Addr)
+DEF2(1, track_die_mem_stack_4, Addr)
+DEF2(1, track_die_mem_stack_8, Addr)
+DEF2(1, track_die_mem_stack_12, Addr)
+DEF2(1, track_die_mem_stack_16, Addr)
+DEF2(1, track_die_mem_stack_32, Addr)
//DEF2(track_die_mem_stack_112, Addr)
//DEF2(track_die_mem_stack_128, Addr)
//DEF2(track_die_mem_stack_144, Addr)
//DEF2(track_die_mem_stack_160, Addr)
-DEF (track_die_mem_stack, Addr, SizeT)
+DEF2(2, track_die_mem_stack, Addr, SizeT)
DEF(track_ban_mem_stack, Addr, SizeT)
Modified: branches/ORIGIN_TRACKING/coregrind/pub_core_tooliface.h
===================================================================
--- branches/ORIGIN_TRACKING/coregrind/pub_core_tooliface.h 2007-02-20 19:23:19 UTC (rev 6606)
+++ branches/ORIGIN_TRACKING/coregrind/pub_core_tooliface.h 2007-02-21 10:51:41 UTC (rev 6607)
@@ -177,7 +177,7 @@
// void VG_REGPARM(1) (*track_new_mem_stack_128)(Addr);
// void VG_REGPARM(1) (*track_new_mem_stack_144)(Addr);
// void VG_REGPARM(1) (*track_new_mem_stack_160)(Addr);
- void (*track_new_mem_stack)(Addr, SizeT);
+ void VG_REGPARM(2) (*track_new_mem_stack)(Addr, SizeT);
void VG_REGPARM(1) (*track_die_mem_stack_4) (Addr);
void VG_REGPARM(1) (*track_die_mem_stack_8) (Addr);
@@ -188,7 +188,7 @@
// void VG_REGPARM(1) (*track_die_mem_stack_128)(Addr);
// void VG_REGPARM(1) (*track_die_mem_stack_144)(Addr);
// void VG_REGPARM(1) (*track_die_mem_stack_160)(Addr);
- void (*track_die_mem_stack)(Addr, SizeT);
+ void VG_REGPARM(2) (*track_die_mem_stack)(Addr, SizeT);
void (*track_ban_mem_stack)(Addr, SizeT);
Modified: branches/ORIGIN_TRACKING/helgrind/hg_main.c
===================================================================
--- branches/ORIGIN_TRACKING/helgrind/hg_main.c 2007-02-20 19:23:19 UTC (rev 6606)
+++ branches/ORIGIN_TRACKING/helgrind/hg_main.c 2007-02-21 10:51:41 UTC (rev 6607)
@@ -3348,8 +3348,9 @@
else
stack_tracker = & hg_new_mem_stack;
- VG_(track_new_mem_stack) (stack_tracker);
- VG_(track_new_mem_stack_signal) (stack_tracker);
+// XXX: commented out because the prototypes changed...
+// VG_(track_new_mem_stack) (stack_tracker);
+// VG_(track_new_mem_stack_signal) (stack_tracker);
}
Modified: branches/ORIGIN_TRACKING/include/pub_tool_execontext.h
===================================================================
--- branches/ORIGIN_TRACKING/include/pub_tool_execontext.h 2007-02-20 19:23:19 UTC (rev 6606)
+++ branches/ORIGIN_TRACKING/include/pub_tool_execontext.h 2007-02-21 10:51:41 UTC (rev 6607)
@@ -60,7 +60,7 @@
// Returns true if the given pointer is a real ExeContext pointer. Does
// a linear (slow) lookup by value.
-extern ExeContext* is_an_ExeContext(UInt maybe_ec_low32);
+extern ExeContext* VG_(is_an_ExeContext)(UInt maybe_ec_low32);
// Apply a function to every element in the ExeContext. The parameter 'n'
// gives the index of the passed ip. Doesn't go below main() unless
Modified: branches/ORIGIN_TRACKING/memcheck/mc_main.c
===================================================================
--- branches/ORIGIN_TRACKING/memcheck/mc_main.c 2007-02-20 19:23:19 UTC (rev 6606)
+++ branches/ORIGIN_TRACKING/memcheck/mc_main.c 2007-02-21 10:51:41 UTC (rev 6607)
@@ -30,6 +30,22 @@
The GNU General Public License is contained in the file COPYING.
*/
+// XXX: improving things:
+// - chase backwards through put/get pairs. Will allow FP ones to be
+// recognised.
+// - For 1B and 2B cases, maybe try to match the 1B or 2B value against the
+// ExeContext. Likely to have more possible matches, but that's ok,
+// better to give several possibilities, one of which is correct, than
+// nothing. Could even extend this more generally, and make the
+// origin-values word-sized instead of 32B?
+// - Could do similar things to handle misalignment -- try rotating the
+// values.
+// - Could also do similar things to handle some modifications -- eg. a
+// change may well only affect the bottom few bits of a 32-bit value.
+// - With all these changes, seems like we'd want to report some kind of
+// confidence level on the matches. Eg. a full match is much more likely
+// to be right than a partial one.
+
#include "pub_tool_basics.h"
#include "pub_tool_aspacemgr.h"
#include "pub_tool_hashtable.h" // For mc_include.h
@@ -2813,7 +2829,8 @@
VG_(pp_ExeContext)( VG_(get_error_where)(err) );
}
-static void mc_pp_origins ( ExeContext* origins[], Int n_origins )
+static void mc_pp_origins ( ExeContext* origins[], Int n_origins,
+ Int n_obfusc_origins_low32 )
{
// XXX: in origin-yes, we get two origins for the 64-bit stack case --
// should remove dup'd origins from the list.
@@ -2833,8 +2850,8 @@
}
} else {
VG_(message)(Vg_UserMsg,
- "%sUninitialised value has unknown origin%s",
- xpre, xpost);
+ "%sUninitialised value has unknown origin (%d)%s",
+ xpre, n_obfusc_origins_low32, xpost);
}
}
@@ -2863,7 +2880,9 @@
"Use of uninitialised value of size %d",
extra->Err.Value.szB);
}
- mc_pp_origins(extra->Err.Value.origins, extra->Err.Value.n_origins);
+ mc_pp_origins(extra->Err.Value.origins,
+ extra->Err.Value.n_origins,
+ extra->Err.Value.n_obfusc_origins_low32);
break;
case Err_RegParam:
@@ -3367,7 +3386,7 @@
for (i = 0; i < extra->Err.Value.n_obfusc_origins_low32; i++) {
UInt origin_low32 = MC_(deobfuscate_ExeContext_low32)(
extra->Err.Value.obfusc_origins_low32[i]);
- ExeContext* origin = is_an_ExeContext(origin_low32);
+ ExeContext* origin = VG_(is_an_ExeContext)(origin_low32);
if (NULL != origin) {
origins_tmp[ n_origins++ ] = origin;
}
@@ -3384,7 +3403,10 @@
// Zero the "obfusc" fields (obfusc_origins_low32 is stack-allocated
// so we don't need to free it). And set the "origins" fields,
// copying the origins from stack memory into new heap memory.
- extra->Err.Value.n_obfusc_origins_low32 = 0;
+
+// XXX: don't zero n_obfusc_origins_low32 yet -- it can tell us why an origin
+// failed to be identified.
+// extra->Err.Value.n_obfusc_origins_low32 = 0;
extra->Err.Value.obfusc_origins_low32 = NULL;
extra->Err.Value.n_origins = n_origins;
extra->Err.Value.origins = origins;
@@ -4101,6 +4123,8 @@
mc_record_value_error ( VG_(get_running_tid)(), (Int)szB, origins, n_origins );
}
+// XXX: move all these into mc_translate, make mc_record_value_error public.
+
// Here we specialise the common cases (0, 1 and 2 origins with szB of 0 and
// VG_WORDSIZE) to reduce the number of args passed. Remaining cases are
// done with the more general functions.
Modified: branches/ORIGIN_TRACKING/memcheck/mc_translate.c
===================================================================
--- branches/ORIGIN_TRACKING/memcheck/mc_translate.c 2007-02-20 19:23:19 UTC (rev 6606)
+++ branches/ORIGIN_TRACKING/memcheck/mc_translate.c 2007-02-21 10:51:41 UTC (rev 6607)
@@ -812,30 +812,35 @@
/*--- Undefined value origin-tracking ---*/
/*------------------------------------------------------------*/
-static UInt origin_tracking_0 = 0,
- origin_tracking_1 = 0,
- origin_tracking_2 = 0;
+// Buckets: 0..6 and 7+
+static UInt n_found_origins[8];
void MC_(print_origin_tracking_stats)(void)
{
- Char perc0[7], perc1[7], perc2[7];
- UInt n_total = origin_tracking_2 + origin_tracking_1 + origin_tracking_0;
+// Char perc0[7], perc1[7], perc2[7];
+// UInt n_total = origin_tracking_2 + origin_tracking_1 + origin_tracking_0;
+//
+// // XXX: there's an off-by-one error in percentify -- if I use 6 instead
+// // of 5 here, the buffers get overrun. (there's one in snprintf, too)
+// // [XXX: the snprintf one has been fixed, I think]
+// VG_(percentify)(origin_tracking_2, n_total, 1, 7, perc2);
+// VG_(percentify)(origin_tracking_1, n_total, 1, 7, perc1);
+// VG_(percentify)(origin_tracking_0, n_total, 1, 7, perc0);
- // XXX: there's an off-by-one error in percentify -- if I use 6 instead
- // of 5 here, the buffers get overrun. (there's one in snprintf, too)
- // [XXX: the snprintf one has been fixed, I think]
- VG_(percentify)(origin_tracking_2, n_total, 1, 7, perc2);
- VG_(percentify)(origin_tracking_1, n_total, 1, 7, perc1);
- VG_(percentify)(origin_tracking_0, n_total, 1, 7, perc0);
- VG_(message)(Vg_DebugMsg,
- " memcheck: origins: static cmps with 2 args = %6d (%s)",
- origin_tracking_2, perc2);
- VG_(message)(Vg_DebugMsg,
- " memcheck: origins: static cmps with 1 arg = %6d (%s)",
- origin_tracking_1, perc1);
- VG_(message)(Vg_DebugMsg,
- " memcheck: origins: static cmps with 0 args = %6d (%s)",
- origin_tracking_0, perc0);
+ Char perc[7];
+ UInt n_total;
+ Int i;
+
+ n_total = 0;
+ for (i = 0; i <= 7; i++) {
+ n_total += n_found_origins[i];
+ }
+ for (i = 0; i <= 7; i++) {
+ VG_(percentify)(n_found_origins[i], n_total, 1, 6, perc);
+ VG_(message)(Vg_DebugMsg,
+ " memcheck: origins: found %d%s origins = %8u (%6s)",
+ i, ( i == 7 ? "+" : " " ), n_found_origins[i], perc);
+ }
}
/*------------------------------------------------------------*/
@@ -995,6 +1000,11 @@
case Iex_Load: {
// tX = GET:I<ty>(N), or tX = LDxx:I<ty>(tY)
// If tX is 32 or 64 bits, add it to the finish_list.
+ //
+ // Otherwise (or sometimes even if -- giving longer
+ // chains back?), should look for a put to the same
+ // register, and trace back through it.
+ // That will allow the float cases to work.
Int szB =
sizeofIRType(typeOfIRTemp(mce->bb_in->tyenv, tX));
if (4 == szB || 8 == szB) {
@@ -1005,6 +1015,12 @@
case Iex_GetI:
// XXX: should treat similarly to Get/Load
+ //
+ // XXX: a temp used as the ix should arguably be
+ // ignored!
+ // XXX: can also ignore the temp assigned by a GETI?
+ // can certainly ignore it if it's an I8 (ie. an
+ // FPTAG)
break;
case Iex_CCall: {
@@ -1227,6 +1243,11 @@
szHWordExpr = mkIRExpr_HWord( sz );
+ if (n_origins_found >= 7)
+ n_found_origins[7]++;
+ else
+ n_found_origins[n_origins_found]++;
+
if (0 == n_origins_found) {
if (VG_WORDSIZE == sz) {
// Specialise the word-sized case
|
|
From: <js...@ac...> - 2007-02-21 09:42:02
|
Nightly build on minnie ( SuSE 10.0, ppc32 ) started at 2007-02-21 09:00:01 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 == 219 tests, 10 stderr failures, 6 stdout failures, 0 posttest failures == memcheck/tests/leak-tree (stderr) memcheck/tests/leakotron (stdout) memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_changes (stderr) memcheck/tests/xml1 (stderr) none/tests/faultstatus (stderr) none/tests/fdleak_cmsg (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) none/tests/ppc32/jm-fp (stdout) none/tests/ppc32/jm-fp (stderr) none/tests/ppc32/round (stdout) none/tests/ppc32/round (stderr) none/tests/ppc32/test_fx (stdout) none/tests/ppc32/test_fx (stderr) none/tests/ppc32/test_gx (stdout) |
|
From: Bart V. A. <bar...@gm...> - 2007-02-21 08:37:51
|
All you have to change is line 39 in file drd/drd_mutex.c:
struct mutex_info s_mutex[256];
But I'm afraid that if your application is large, that drd will be killed
soon by the Linux kernel because it runs out of memory.
Bart.
On 2/21/07, Maxim Osipov <max...@gm...> wrote:
>
> Aha, thanks! I know and understand about development status :)
>
> Is there are chances to increase number of supported mutexes by some
> simple drd code modification?
>
> Maxim
>
|
|
From: Maxim O. <max...@gm...> - 2007-02-21 08:30:56
|
Aha, thanks! I know and understand about development status :) Is there are chances to increase number of supported mutexes by some simple drd code modification? Maxim On 2/21/07, Bart Van Assche <bar...@gm...> wrote: > Hello Maxim, > > Please note that the drd tool is still under development -- currently it > works for small test programs, but not yet for large applications. The > assertion failure you reported means that your application is using more > than 256 mutexes -- that is the maximum number of mutexes drd currently > supports. > > Bart Van Assche. > > > On 2/21/07, Maxim Osipov <max...@gm...> wrote: > > Hello! > > > > In case if someone is interested in DRD bug reports. Cannot start drd > > with a big threaded application (on x86 uml and ppc with same > > symptoms). Other tools work fine. > > > > Rgrds, > > Maxim > > |
|
From: Bart V. A. <bar...@gm...> - 2007-02-21 08:20:09
|
Hello Maxim,
Please note that the drd tool is still under development -- currently it
works for small test programs, but not yet for large applications. The
assertion failure you reported means that your application is using more
than 256 mutexes -- that is the maximum number of mutexes drd currently
supports.
Bart Van Assche.
On 2/21/07, Maxim Osipov <max...@gm...> wrote:
>
> Hello!
>
> In case if someone is interested in DRD bug reports. Cannot start drd
> with a big threaded application (on x86 uml and ppc with same
> symptoms). Other tools work fine.
>
> Rgrds,
> Maxim
|
|
From: Maxim O. <max...@gm...> - 2007-02-21 08:09:31
|
Hello! In case if someone is interested in DRD bug reports. Cannot start drd with a big threaded application (on x86 uml and ppc with same symptoms). Other tools work fine. Rgrds, Maxim |
|
From: <js...@ac...> - 2007-02-21 05:31:18
|
Nightly build on phoenix ( SuSE 10.0 ) started at 2007-02-21 04:55:01 GMT Checking out vex source tree ... done Building vex ... done Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 254 tests, 6 stderr failures, 1 stdout failure, 0 posttest failures == memcheck/tests/leak-tree (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) |
|
From: Tom H. <th...@cy...> - 2007-02-21 04:44:01
|
Nightly build on gill ( x86_64, Fedora Core 2 ) started at 2007-02-21 03:00:05 GMT Results differ from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 290 tests, 6 stderr failures, 3 stdout failures, 0 posttest failures == memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) none/tests/fdleak_fcntl (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) none/tests/pth_detached (stdout) none/tests/tls (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 == 290 tests, 6 stderr failures, 2 stdout failures, 0 posttest failures == memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) none/tests/fdleak_fcntl (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) none/tests/tls (stdout) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Wed Feb 21 03:52:17 2007 --- new.short Wed Feb 21 04:43:50 2007 *************** *** 8,10 **** ! == 290 tests, 6 stderr failures, 2 stdout failures, 0 posttest failures == memcheck/tests/pointer-trace (stderr) --- 8,10 ---- ! == 290 tests, 6 stderr failures, 3 stdout failures, 0 posttest failures == memcheck/tests/pointer-trace (stderr) *************** *** 16,17 **** --- 16,18 ---- none/tests/mremap2 (stdout) + none/tests/pth_detached (stdout) none/tests/tls (stdout) |
|
From: Tom H. <th...@cy...> - 2007-02-21 03:25:20
|
Nightly build on dellow ( x86_64, Fedora Core 6 ) started at 2007-02-21 03:10:08 GMT Results differ from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 288 tests, 4 stderr failures, 1 stdout failure, 0 posttest failures == memcheck/tests/pointer-trace (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/xml1 (stderr) none/tests/mremap (stderr) none/tests/mremap2 (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 == 288 tests, 4 stderr failures, 2 stdout failures, 0 posttest failures == memcheck/tests/pointer-trace (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/xml1 (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) none/tests/pth_detached (stdout) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Wed Feb 21 03:18:21 2007 --- new.short Wed Feb 21 03:25:08 2007 *************** *** 8,10 **** ! == 288 tests, 4 stderr failures, 2 stdout failures, 0 posttest failures == memcheck/tests/pointer-trace (stderr) --- 8,10 ---- ! == 288 tests, 4 stderr failures, 1 stdout failure, 0 posttest failures == memcheck/tests/pointer-trace (stderr) *************** *** 14,16 **** none/tests/mremap2 (stdout) - none/tests/pth_detached (stdout) --- 14,15 ---- |
|
From: Tom H. <th...@cy...> - 2007-02-21 03:22:55
|
Nightly build on alvis ( i686, Red Hat 7.3 ) started at 2007-02-21 03:15:02 GMT Results differ from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Last 20 lines of verbose log follow echo /tmp/ccPPDQn5.s:4393: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/ccPPDQn5.s:4513: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/ccPPDQn5.s:4633: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/ccPPDQn5.s:4753: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/ccPPDQn5.s:4873: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/ccPPDQn5.s:4993: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/ccPPDQn5.s:5113: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/ccPPDQn5.s:5233: Error: no such instruction: `fisttpq -56(%ebp)' make[5]: *** [insn_sse3.o] Error 1 rm insn_mmx.c insn_sse2.c insn_fpu.c insn_mmxext.c insn_sse.c insn_sse3.c insn_cmov.c insn_basic.c make[5]: Leaving directory `/tmp/valgrind.27790/valgrind/none/tests/x86' make[4]: *** [check-am] Error 2 make[4]: Leaving directory `/tmp/valgrind.27790/valgrind/none/tests/x86' make[3]: *** [check-recursive] Error 1 make[3]: Leaving directory `/tmp/valgrind.27790/valgrind/none/tests' make[2]: *** [check-recursive] Error 1 make[2]: Leaving directory `/tmp/valgrind.27790/valgrind/none' make[1]: *** [check-recursive] Error 1 make[1]: Leaving directory `/tmp/valgrind.27790/valgrind' make: *** [check] Error 2 ================================================= == Results from 24 hours ago == ================================================= Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Last 20 lines of verbose log follow echo /tmp/ccKYWLda.s:4393: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/ccKYWLda.s:4513: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/ccKYWLda.s:4633: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/ccKYWLda.s:4753: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/ccKYWLda.s:4873: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/ccKYWLda.s:4993: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/ccKYWLda.s:5113: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/ccKYWLda.s:5233: Error: no such instruction: `fisttpq -56(%ebp)' make[5]: *** [insn_sse3.o] Error 1 rm insn_mmx.c insn_sse2.c insn_fpu.c insn_mmxext.c insn_sse.c insn_sse3.c insn_cmov.c insn_basic.c make[5]: Leaving directory `/tmp/valgrind.27790/valgrind/none/tests/x86' make[4]: *** [check-am] Error 2 make[4]: Leaving directory `/tmp/valgrind.27790/valgrind/none/tests/x86' make[3]: *** [check-recursive] Error 1 make[3]: Leaving directory `/tmp/valgrind.27790/valgrind/none/tests' make[2]: *** [check-recursive] Error 1 make[2]: Leaving directory `/tmp/valgrind.27790/valgrind/none' make[1]: *** [check-recursive] Error 1 make[1]: Leaving directory `/tmp/valgrind.27790/valgrind' make: *** [check] Error 2 ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Wed Feb 21 03:18:58 2007 --- new.short Wed Feb 21 03:22:47 2007 *************** *** 7,16 **** Last 20 lines of verbose log follow echo ! /tmp/ccKYWLda.s:4393: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/ccKYWLda.s:4513: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/ccKYWLda.s:4633: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/ccKYWLda.s:4753: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/ccKYWLda.s:4873: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/ccKYWLda.s:4993: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/ccKYWLda.s:5113: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/ccKYWLda.s:5233: Error: no such instruction: `fisttpq -56(%ebp)' make[5]: *** [insn_sse3.o] Error 1 --- 7,16 ---- Last 20 lines of verbose log follow echo ! /tmp/ccPPDQn5.s:4393: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/ccPPDQn5.s:4513: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/ccPPDQn5.s:4633: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/ccPPDQn5.s:4753: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/ccPPDQn5.s:4873: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/ccPPDQn5.s:4993: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/ccPPDQn5.s:5113: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/ccPPDQn5.s:5233: Error: no such instruction: `fisttpq -56(%ebp)' make[5]: *** [insn_sse3.o] Error 1 |
|
From: Tom H. <th...@cy...> - 2007-02-21 03:18:57
|
Nightly build on lloyd ( x86_64, Fedora Core 3 ) started at 2007-02-21 03:05:07 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 == 288 tests, 6 stderr failures, 1 stdout failure, 0 posttest failures == memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/xml1 (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) |
|
From: <js...@ac...> - 2007-02-21 01:16:42
|
Nightly build on g5 ( SuSE 10.1, ppc970 ) started at 2007-02-21 02:00:01 CET 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 == 225 tests, 6 stderr failures, 2 stdout failures, 0 posttest failures == memcheck/tests/deep_templates (stdout) memcheck/tests/leak-cycle (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/pointer-trace (stderr) none/tests/faultstatus (stderr) none/tests/fdleak_cmsg (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) |