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
|
2
(2) |
3
(7) |
|
4
|
5
(11) |
6
(13) |
7
(7) |
8
(5) |
9
(12) |
10
(19) |
|
11
(12) |
12
(7) |
13
(14) |
14
(8) |
15
(5) |
16
(5) |
17
(7) |
|
18
(12) |
19
(14) |
20
(12) |
21
(8) |
22
(4) |
23
(4) |
24
|
|
25
(11) |
26
(17) |
27
(15) |
28
(10) |
29
(19) |
30
(18) |
|
|
From: <sv...@va...> - 2011-09-20 22:41:12
|
Author: sewardj
Date: 2011-09-20 23:36:26 +0100 (Tue, 20 Sep 2011)
New Revision: 12042
Log:
Un-break Darwin build following r12041 (creation of struct _DebugInfoFSM)
Modified:
trunk/coregrind/m_debuginfo/readmacho.c
Modified: trunk/coregrind/m_debuginfo/readmacho.c
===================================================================
--- trunk/coregrind/m_debuginfo/readmacho.c 2011-09-20 21:59:50 UTC (rev 12041)
+++ trunk/coregrind/m_debuginfo/readmacho.c 2011-09-20 22:36:26 UTC (rev 12042)
@@ -682,17 +682,18 @@
if (VG_(clo_verbosity) > 1)
VG_(message)(Vg_DebugMsg,
- "%s (%#lx)\n", di->filename, di->rx_map_avma );
+ "%s (%#lx)\n", di->fsm.filename, di->fsm.rx_map_avma );
- /* This should be ensured by our caller. */
- vg_assert(di->have_rx_map);
- vg_assert(di->have_rw_map);
+ /* This should be ensured by our caller (that we're in the accept
+ state). */
+ vg_assert(di->fsm.have_rx_map);
+ vg_assert(di->fsm.have_rw_map);
VG_(memset)(&ii, 0, sizeof(ii));
VG_(memset)(&iid, 0, sizeof(iid));
VG_(memset)(&uuid, 0, sizeof(uuid));
- ok = map_image_aboard( di, &ii, di->filename );
+ ok = map_image_aboard( di, &ii, di->fsm.filename );
if (!ok) goto fail;
vg_assert(ii.macho_img != NULL && ii.macho_img_szB > 0);
@@ -778,7 +779,7 @@
&& seg->fileoff == 0 && seg->filesize != 0) {
di->text_present = True;
di->text_svma = (Addr)seg->vmaddr;
- di->text_avma = di->rx_map_avma;
+ di->text_avma = di->fsm.rx_map_avma;
di->text_size = seg->vmsize;
di->text_bias = di->text_avma - di->text_svma;
/* Make the _debug_ values be the same as the
@@ -795,7 +796,7 @@
/* && DDD:seg->fileoff == 0 */ && seg->filesize != 0) {
di->data_present = True;
di->data_svma = (Addr)seg->vmaddr;
- di->data_avma = di->rw_map_avma;
+ di->data_avma = di->fsm.rw_map_avma;
di->data_size = seg->vmsize;
di->data_bias = di->data_avma - di->data_svma;
di->data_debug_svma = di->data_svma;
@@ -903,7 +904,7 @@
/* mmap the dSYM file to look for DWARF debug info. If successful,
use the .macho_img and .macho_img_szB in iid. */
- dsymfilename = find_separate_debug_file( di->filename );
+ dsymfilename = find_separate_debug_file( di->fsm.filename );
/* Try to load it. */
if (dsymfilename) {
@@ -936,13 +937,13 @@
give up. (possible reasons: is system lib, or in /usr etc, or
the dsym dir would not be writable by the user, or we're running
as root) */
- vg_assert(di->filename);
- if (is_systemish_library_name(di->filename))
+ vg_assert(di->fsm.filename);
+ if (is_systemish_library_name(di->fsm.filename))
goto success;
if (!VG_(clo_dsymutil)) {
if (VG_(clo_verbosity) == 1) {
- VG_(message)(Vg_DebugMsg, "%s:\n", di->filename);
+ VG_(message)(Vg_DebugMsg, "%s:\n", di->fsm.filename);
}
if (VG_(clo_verbosity) > 0)
VG_(message)(Vg_DebugMsg, "%sdSYM directory %s; consider using "
@@ -958,19 +959,19 @@
HChar* dsymutil = "/usr/bin/dsymutil ";
HChar* cmd = ML_(dinfo_zalloc)( "di.readmacho.tmp1",
VG_(strlen)(dsymutil)
- + VG_(strlen)(di->filename)
+ + VG_(strlen)(di->fsm.filename)
+ 32 /* misc */ );
VG_(strcpy)(cmd, dsymutil);
if (0) VG_(strcat)(cmd, "--verbose ");
VG_(strcat)(cmd, "\"");
- VG_(strcat)(cmd, di->filename);
+ VG_(strcat)(cmd, di->fsm.filename);
VG_(strcat)(cmd, "\"");
VG_(message)(Vg_DebugMsg, "run: %s\n", cmd);
r = VG_(system)( cmd );
if (r)
VG_(message)(Vg_DebugMsg, "run: %s FAILED\n", dsymutil);
ML_(dinfo_free)(cmd);
- dsymfilename = find_separate_debug_file(di->filename);
+ dsymfilename = find_separate_debug_file(di->fsm.filename);
}
/* Try again to load it. */
@@ -1000,7 +1001,7 @@
(UInt)uuid[11], (UInt)uuid[12], (UInt)uuid[13],
(UInt)uuid[14], (UInt)uuid[15] );
VG_(message)(Vg_DebugMsg,
- "WARNING: for %s\n", di->filename);
+ "WARNING: for %s\n", di->fsm.filename);
}
unmap_image( &iid );
/* unmap_image zeroes the fields, so the following test makes
@@ -1057,7 +1058,7 @@
VG_(message)(Vg_DebugMsg,
"Reading dwarf3 for %s (%#lx) from %s"
" (%ld %ld %ld %ld %ld %ld)\n",
- di->filename, di->text_avma, dsymfilename,
+ di->fsm.filename, di->text_avma, dsymfilename,
debug_info_sz, debug_abbv_sz, debug_line_sz,
debug_str_sz, debug_ranges_sz, debug_loc_sz
);
|
|
From: <sv...@va...> - 2011-09-20 22:04:38
|
Author: sewardj
Date: 2011-09-20 22:59:50 +0100 (Tue, 20 Sep 2011)
New Revision: 12041
Log:
A refactoring change; no functional effect. struct _DebugInfo
contains a bunch of fields which are used as a very simple state
machine that observes mmap calls and decides when to read debuginfo
for the associated file. This change moves these fields into their
own structure, struct _DebugInfoFSM, for cleanness, so as to make it
clear they have a common purpose.
Modified:
trunk/coregrind/m_debuginfo/debuginfo.c
trunk/coregrind/m_debuginfo/priv_storage.h
trunk/coregrind/m_debuginfo/readdwarf.c
trunk/coregrind/m_debuginfo/readelf.c
trunk/coregrind/m_debuginfo/readpdb.c
trunk/coregrind/m_debuginfo/storage.c
Modified: trunk/coregrind/m_debuginfo/debuginfo.c
===================================================================
--- trunk/coregrind/m_debuginfo/debuginfo.c 2011-09-20 16:10:59 UTC (rev 12040)
+++ trunk/coregrind/m_debuginfo/debuginfo.c 2011-09-20 21:59:50 UTC (rev 12041)
@@ -176,8 +176,8 @@
vg_assert(filename);
di = ML_(dinfo_zalloc)("di.debuginfo.aDI.1", sizeof(DebugInfo));
- di->handle = handle_counter++;
- di->filename = ML_(dinfo_strdup)("di.debuginfo.aDI.2", filename);
+ di->handle = handle_counter++;
+ di->fsm.filename = ML_(dinfo_strdup)("di.debuginfo.aDI.2", filename);
/* Everything else -- pointers, sizes, arrays -- is zeroed by
ML_(dinfo_zalloc). Now set up the debugging-output flags. */
@@ -204,11 +204,11 @@
GExpr* gexpr;
vg_assert(di != NULL);
- if (di->filename) ML_(dinfo_free)(di->filename);
- if (di->loctab) ML_(dinfo_free)(di->loctab);
- if (di->cfsi) ML_(dinfo_free)(di->cfsi);
- if (di->cfsi_exprs) VG_(deleteXA)(di->cfsi_exprs);
- if (di->fpo) ML_(dinfo_free)(di->fpo);
+ if (di->fsm.filename) ML_(dinfo_free)(di->fsm.filename);
+ if (di->loctab) ML_(dinfo_free)(di->loctab);
+ if (di->cfsi) ML_(dinfo_free)(di->cfsi);
+ if (di->cfsi_exprs) VG_(deleteXA)(di->cfsi_exprs);
+ if (di->fpo) ML_(dinfo_free)(di->fpo);
if (di->symtab) {
/* We have to visit all the entries so as to free up any
@@ -307,7 +307,8 @@
"Discarding syms at %#lx-%#lx in %s due to %s()\n",
di->text_avma,
di->text_avma + di->text_size,
- curr->filename ? curr->filename : (UChar*)"???",
+ curr->fsm.filename ? curr->fsm.filename
+ : (UChar*)"???",
reason);
vg_assert(*prev_next_ptr == curr);
*prev_next_ptr = curr->next;
@@ -390,24 +391,24 @@
vg_assert(di1);
vg_assert(di2);
- if (di1->have_rx_map && di2->have_rx_map
- && ranges_overlap(di1->rx_map_avma, di1->rx_map_size,
- di2->rx_map_avma, di2->rx_map_size))
+ if (di1->fsm.have_rx_map && di2->fsm.have_rx_map
+ && ranges_overlap(di1->fsm.rx_map_avma, di1->fsm.rx_map_size,
+ di2->fsm.rx_map_avma, di2->fsm.rx_map_size))
return True;
- if (di1->have_rx_map && di2->have_rw_map
- && ranges_overlap(di1->rx_map_avma, di1->rx_map_size,
- di2->rw_map_avma, di2->rw_map_size))
+ if (di1->fsm.have_rx_map && di2->fsm.have_rw_map
+ && ranges_overlap(di1->fsm.rx_map_avma, di1->fsm.rx_map_size,
+ di2->fsm.rw_map_avma, di2->fsm.rw_map_size))
return True;
- if (di1->have_rw_map && di2->have_rx_map
- && ranges_overlap(di1->rw_map_avma, di1->rw_map_size,
- di2->rx_map_avma, di2->rx_map_size))
+ if (di1->fsm.have_rw_map && di2->fsm.have_rx_map
+ && ranges_overlap(di1->fsm.rw_map_avma, di1->fsm.rw_map_size,
+ di2->fsm.rx_map_avma, di2->fsm.rx_map_size))
return True;
- if (di1->have_rw_map && di2->have_rw_map
- && ranges_overlap(di1->rw_map_avma, di1->rw_map_size,
- di2->rw_map_avma, di2->rw_map_size))
+ if (di1->fsm.have_rw_map && di2->fsm.have_rw_map
+ && ranges_overlap(di1->fsm.rw_map_avma, di1->fsm.rw_map_size,
+ di2->fsm.rw_map_avma, di2->fsm.rw_map_size))
return True;
return False;
@@ -467,8 +468,8 @@
DebugInfo* di;
vg_assert(filename);
for (di = debugInfo_list; di; di = di->next) {
- vg_assert(di->filename);
- if (0==VG_(strcmp)(di->filename, filename))
+ vg_assert(di->fsm.filename);
+ if (0==VG_(strcmp)(di->fsm.filename, filename))
break;
}
if (!di) {
@@ -492,31 +493,33 @@
/* This fn isn't called until after debuginfo for this object has
been successfully read. And that shouldn't happen until we have
both a r-x and rw- mapping for the object. Hence: */
- vg_assert(di->have_rx_map);
- vg_assert(di->have_rw_map);
+ vg_assert(di->fsm.have_rx_map);
+ vg_assert(di->fsm.have_rw_map);
/* degenerate case: r-x section is empty */
- if (di->rx_map_size == 0) {
+ if (di->fsm.rx_map_size == 0) {
vg_assert(di->cfsi == NULL);
return;
}
/* normal case: r-x section is nonempty */
/* invariant (0) */
- vg_assert(di->rx_map_size > 0);
+ vg_assert(di->fsm.rx_map_size > 0);
/* invariant (1) */
for (di2 = debugInfo_list; di2; di2 = di2->next) {
if (di2 == di)
continue;
- if (di2->rx_map_size == 0)
+ if (di2->fsm.rx_map_size == 0)
continue;
- vg_assert(di->rx_map_avma + di->rx_map_size <= di2->rx_map_avma
- || di2->rx_map_avma + di2->rx_map_size <= di->rx_map_avma);
+ vg_assert(
+ di->fsm.rx_map_avma + di->fsm.rx_map_size <= di2->fsm.rx_map_avma
+ || di2->fsm.rx_map_avma + di2->fsm.rx_map_size <= di->fsm.rx_map_avma
+ );
}
di2 = NULL;
/* invariant (2) */
if (di->cfsi) {
vg_assert(di->cfsi_minavma <= di->cfsi_maxavma); /* duh! */
- vg_assert(di->cfsi_minavma >= di->rx_map_avma);
- vg_assert(di->cfsi_maxavma < di->rx_map_avma + di->rx_map_size);
+ vg_assert(di->cfsi_minavma >= di->fsm.rx_map_avma);
+ vg_assert(di->cfsi_maxavma < di->fsm.rx_map_avma + di->fsm.rx_map_size);
}
/* invariants (3) and (4) */
if (di->cfsi) {
@@ -643,7 +646,7 @@
Bool quiet = VG_(strstr)(filename, "/var/run/nscd/") != NULL;
if (!quiet && VG_(clo_verbosity) > 1) {
VG_(memset)(&fake_di, 0, sizeof(fake_di));
- fake_di.filename = filename;
+ fake_di.fsm.filename = filename;
ML_(symerr)(&fake_di, True, "failed to stat64/stat this file");
}
return 0;
@@ -737,7 +740,7 @@
if (sr_Err(fd) != VKI_EACCES) {
DebugInfo fake_di;
VG_(memset)(&fake_di, 0, sizeof(fake_di));
- fake_di.filename = filename;
+ fake_di.fsm.filename = filename;
ML_(symerr)(&fake_di, True, "can't open file to inspect ELF header");
}
return 0;
@@ -750,7 +753,7 @@
if (nread < 0) {
DebugInfo fake_di;
VG_(memset)(&fake_di, 0, sizeof(fake_di));
- fake_di.filename = filename;
+ fake_di.fsm.filename = filename;
ML_(symerr)(&fake_di, True, "can't read file to inspect ELF header");
return 0;
}
@@ -774,11 +777,11 @@
if (is_rx_map) {
/* We have a text-like mapping. Note the details. */
- if (!di->have_rx_map) {
- di->have_rx_map = True;
- di->rx_map_avma = a;
- di->rx_map_size = seg->end + 1 - seg->start;
- di->rx_map_foff = seg->offset;
+ if (!di->fsm.have_rx_map) {
+ di->fsm.have_rx_map = True;
+ di->fsm.rx_map_avma = a;
+ di->fsm.rx_map_size = seg->end + 1 - seg->start;
+ di->fsm.rx_map_foff = seg->offset;
} else {
/* FIXME: complain about a second text-like mapping */
}
@@ -786,11 +789,11 @@
if (is_rw_map) {
/* We have a data-like mapping. Note the details. */
- if (!di->have_rw_map) {
- di->have_rw_map = True;
- di->rw_map_avma = a;
- di->rw_map_size = seg->end + 1 - seg->start;
- di->rw_map_foff = seg->offset;
+ if (!di->fsm.have_rw_map) {
+ di->fsm.have_rw_map = True;
+ di->fsm.rw_map_avma = a;
+ di->fsm.rw_map_size = seg->end + 1 - seg->start;
+ di->fsm.rw_map_foff = seg->offset;
} else {
/* FIXME: complain about a second data-like mapping */
}
@@ -799,15 +802,15 @@
/* If we don't have an rx and rw mapping, or if we already have
debuginfo for this mapping for whatever reason, go no
further. */
- if ( ! (di->have_rx_map && di->have_rw_map && !di->have_dinfo) )
+ if ( ! (di->fsm.have_rx_map && di->fsm.have_rw_map && !di->have_dinfo) )
return 0;
/* Ok, so, finally, let's try to read the debuginfo. */
- vg_assert(di->filename);
+ vg_assert(di->fsm.filename);
TRACE_SYMTAB("\n");
TRACE_SYMTAB("------ start ELF OBJECT "
"------------------------------\n");
- TRACE_SYMTAB("------ name = %s\n", di->filename);
+ TRACE_SYMTAB("------ name = %s\n", di->fsm.filename);
TRACE_SYMTAB("\n");
/* We're going to read symbols and debug info for the avma
@@ -855,7 +858,7 @@
}
TRACE_SYMTAB("\n");
- TRACE_SYMTAB("------ name = %s\n", di->filename);
+ TRACE_SYMTAB("------ name = %s\n", di->fsm.filename);
TRACE_SYMTAB("------ end ELF OBJECT "
"------------------------------\n");
TRACE_SYMTAB("\n");
@@ -1100,7 +1103,7 @@
{ DebugInfo* di = find_or_create_DebugInfo_for(exename);
/* this di must be new, since we just nuked any old stuff in the range */
- vg_assert(di && !di->have_rx_map && !di->have_rw_map);
+ vg_assert(di && !di->fsm.have_rx_map && !di->fsm.have_rw_map);
vg_assert(!di->have_dinfo);
/* don't set up any of the di-> fields; let
@@ -1172,10 +1175,10 @@
/* Consider any symbol in the r-x mapped area to be text.
See Comment_Regarding_Text_Range_Checks in storage.c for
details. */
- inRange = di->have_rx_map
- && di->rx_map_size > 0
- && di->rx_map_avma <= ptr
- && ptr < di->rx_map_avma + di->rx_map_size;
+ inRange = di->fsm.have_rx_map
+ && di->fsm.rx_map_size > 0
+ && di->fsm.rx_map_avma <= ptr
+ && ptr < di->fsm.rx_map_avma + di->fsm.rx_map_size;
} else {
inRange = (di->data_present
&& di->data_size > 0
@@ -1467,7 +1470,7 @@
&& di->text_size > 0
&& di->text_avma <= a
&& a < di->text_avma + di->text_size) {
- VG_(strncpy_safely)(buf, di->filename, nbuf);
+ VG_(strncpy_safely)(buf, di->fsm.filename, nbuf);
buf[nbuf-1] = 0;
return True;
}
@@ -3602,7 +3605,7 @@
const UChar* VG_(DebugInfo_get_filename)(const DebugInfo* di)
{
- return di->filename;
+ return di->fsm.filename;
}
PtrdiffT VG_(DebugInfo_get_text_bias)(const DebugInfo* di)
@@ -3674,7 +3677,7 @@
VG_(printf)(
"addr=%#lx di=%p %s got=%#lx,%ld plt=%#lx,%ld "
"data=%#lx,%ld bss=%#lx,%ld\n",
- a, di, di->filename,
+ a, di, di->fsm.filename,
di->got_avma, di->got_size,
di->plt_avma, di->plt_size,
di->data_avma, di->data_size,
@@ -3744,9 +3747,9 @@
vg_assert(n_name >= 8);
- if (di && di->filename) {
+ if (di && di->fsm.filename) {
Int i, j;
- Int fnlen = VG_(strlen)(di->filename);
+ Int fnlen = VG_(strlen)(di->fsm.filename);
Int start_at = 1 + fnlen - n_name;
if (start_at < 0) start_at = 0;
vg_assert(start_at < fnlen);
@@ -3754,8 +3757,8 @@
while (True) {
vg_assert(j >= 0 && j < n_name);
vg_assert(i >= 0 && i <= fnlen);
- name[j] = di->filename[i];
- if (di->filename[i] == 0) break;
+ name[j] = di->fsm.filename[i];
+ if (di->fsm.filename[i] == 0) break;
i++; j++;
}
vg_assert(i == fnlen);
Modified: trunk/coregrind/m_debuginfo/priv_storage.h
===================================================================
--- trunk/coregrind/m_debuginfo/priv_storage.h 2011-09-20 16:10:59 UTC (rev 12040)
+++ trunk/coregrind/m_debuginfo/priv_storage.h 2011-09-20 21:59:50 UTC (rev 12041)
@@ -394,14 +394,54 @@
information pertaining to one mapped ELF object. This type is
exported only abstractly - in pub_tool_debuginfo.h. */
+/* First though, here's an auxiliary data structure. It is only ever
+ used as part of a struct _DebugInfo. We use it to record
+ observations about mappings and permission changes to the
+ associated file, so as to decide when to read debug info. It's
+ essentially an ultra-trivial finite state machine which, when it
+ reaches an accept state, signals that we should now read debug info
+ from the object into the associated struct _DebugInfo. The accept
+ state is arrived at when have_rx_map and have_rw_map both become
+ true.
+
+ This is all rather ad-hoc; for example it has no way to record more
+ than one rw or rx mapping for a given object, not because such
+ events have never been observed, but because we've never needed to
+ note more than the first one of any such in order when to decide to
+ read debug info. It may be that in future we need to track more
+ state in order to make the decision, so this struct would then get
+ expanded.
+*/
+struct _DebugInfoFSM
+{
+ UChar* filename; /* in mallocville (VG_AR_DINFO) */
+
+ Bool have_rx_map; /* did we see a r?x mapping yet for the file? */
+ Bool have_rw_map; /* did we see a rw? mapping yet for the file? */
+
+ Addr rx_map_avma; /* these fields record the file offset, length */
+ SizeT rx_map_size; /* and map address of the r?x mapping we believe */
+ OffT rx_map_foff; /* is the .text segment mapping */
+
+ Addr rw_map_avma; /* ditto, for the rw? mapping we believe is the */
+ SizeT rw_map_size; /* .data segment mapping */
+ OffT rw_map_foff;
+};
+
+
+/* To do with the string table in struct _DebugInfo (::strchunks) */
#define SEGINFO_STRCHUNKSIZE (64*1024)
+
/* We may encounter more than one .eh_frame section in an object --
unusual but apparently allowed by ELF. See
http://sourceware.org/bugzilla/show_bug.cgi?id=12675
*/
#define N_EHFRAME_SECTS 2
+
+/* So, the main structure for holding debug info for one object. */
+
struct _DebugInfo {
/* Admin stuff */
@@ -431,28 +471,20 @@
Bool ddump_line; /* mimic /usr/bin/readelf --debug-dump=line */
Bool ddump_frames; /* mimic /usr/bin/readelf --debug-dump=frames */
- /* Fields that must be filled in before we can start reading
- anything from the ELF file. These fields are filled in by
- VG_(di_notify_mmap) and its immediate helpers. */
+ /* The "decide when it is time to read debuginfo" state machine.
+ This structure must get filled in before we can start reading
+ anything from the ELF/MachO file. This structure is filled in
+ by VG_(di_notify_mmap) and its immediate helpers. */
+ struct _DebugInfoFSM fsm;
- UChar* filename; /* in mallocville (VG_AR_DINFO) */
-
- Bool have_rx_map; /* did we see a r?x mapping yet for the file? */
- Bool have_rw_map; /* did we see a rw? mapping yet for the file? */
-
- Addr rx_map_avma; /* these fields record the file offset, length */
- SizeT rx_map_size; /* and map address of the r?x mapping we believe */
- OffT rx_map_foff; /* is the .text segment mapping */
-
- Addr rw_map_avma; /* ditto, for the rw? mapping we believe is the */
- SizeT rw_map_size; /* .data segment mapping */
- OffT rw_map_foff;
-
- /* Once both a rw? and r?x mapping for .filename have been
- observed, we can go on to read the symbol tables and debug info.
- .have_dinfo flags when that has happened. */
- /* If have_dinfo is False, then all fields except "*rx_map*" and
- "*rw_map*" are invalid and should not be consulted. */
+ /* Once the ::fsm has reached an accept state -- typically, when
+ both a rw? and r?x mapping for .filename have been observed --
+ we can go on to read the symbol tables and debug info.
+ .have_dinfo changes from False to True when the debug info has
+ been completely read in and postprocessed (canonicalised) and is
+ now suitable for querying. */
+ /* If have_dinfo is False, then all fields below this point are
+ invalid and should not be consulted. */
Bool have_dinfo; /* initially False */
/* All the rest of the fields in this structure are filled in once
Modified: trunk/coregrind/m_debuginfo/readdwarf.c
===================================================================
--- trunk/coregrind/m_debuginfo/readdwarf.c 2011-09-20 16:10:59 UTC (rev 12040)
+++ trunk/coregrind/m_debuginfo/readdwarf.c 2011-09-20 21:59:50 UTC (rev 12041)
@@ -3765,7 +3765,7 @@
VG_(printf)("CFI info: szB %ld, _avma %#lx, _image %p\n",
frame_size, frame_avma, frame_image );
VG_(printf)("CFI info: name %s\n",
- di->filename );
+ di->fsm.filename );
}
/* Loop over CIEs/FDEs */
Modified: trunk/coregrind/m_debuginfo/readelf.c
===================================================================
--- trunk/coregrind/m_debuginfo/readelf.c 2011-09-20 16:10:59 UTC (rev 12040)
+++ trunk/coregrind/m_debuginfo/readelf.c 2011-09-20 21:59:50 UTC (rev 12041)
@@ -532,9 +532,10 @@
"Comment_Regarding_Text_Range_Checks" in storage.c for
background. */
Bool in_rx;
- vg_assert(di->have_rx_map);
- in_rx = (!(*sym_avma_out + *sym_size_out <= di->rx_map_avma
- || *sym_avma_out >= di->rx_map_avma + di->rx_map_size));
+ vg_assert(di->fsm.have_rx_map);
+ in_rx = (!(*sym_avma_out + *sym_size_out <= di->fsm.rx_map_avma
+ || *sym_avma_out >= di->fsm.rx_map_avma
+ + di->fsm.rx_map_size));
if (in_text)
vg_assert(in_rx);
if (!in_rx) {
@@ -548,7 +549,8 @@
} else {
if (!(in_data || in_sdata || in_rodata || in_bss || in_sbss)) {
TRACE_SYMTAB(
- "ignore -- %#lx .. %#lx outside .data / .sdata / .rodata / .bss / .sbss svma ranges\n",
+ "ignore -- %#lx .. %#lx outside .data / .sdata / .rodata "
+ "/ .bss / .sbss svma ranges\n",
*sym_avma_out, *sym_avma_out + *sym_size_out);
return False;
}
@@ -876,7 +878,8 @@
Word i;
for (i = 0; i < ehdr->e_phnum; i++) {
- ElfXX_Phdr* phdr = (ElfXX_Phdr*)(image + ehdr->e_phoff + i * ehdr->e_phentsize);
+ ElfXX_Phdr* phdr
+ = (ElfXX_Phdr*)(image + ehdr->e_phoff + i * ehdr->e_phentsize);
if (phdr->p_type == PT_NOTE) {
ElfXX_Off offset = phdr->p_offset;
@@ -889,10 +892,12 @@
if (VG_(strcmp)(name, ELF_NOTE_GNU) == 0 &&
note->n_type == NT_GNU_BUILD_ID) {
- buildid = ML_(dinfo_zalloc)("di.fbi.1", note->n_descsz * 2 + 1);
+ buildid = ML_(dinfo_zalloc)("di.fbi.1",
+ note->n_descsz * 2 + 1);
for (j = 0; j < note->n_descsz; j++) {
- VG_(sprintf)(buildid + VG_(strlen)(buildid), "%02x", desc[j]);
+ VG_(sprintf)(buildid + VG_(strlen)(buildid),
+ "%02x", desc[j]);
}
}
@@ -1018,7 +1023,8 @@
vg_assert(!sr_isError(res));
if (VG_(clo_verbosity) > 1)
VG_(message)(Vg_DebugMsg,
- " .. build-id mismatch (found %s wanted %s)\n", debug_buildid, buildid);
+ " .. build-id mismatch (found %s wanted %s)\n",
+ debug_buildid, buildid);
ML_(dinfo_free)(debug_buildid);
return 0;
}
@@ -1211,12 +1217,12 @@
Char* buildid = NULL;
vg_assert(di);
- vg_assert(di->have_rx_map == True);
- vg_assert(di->have_rw_map == True);
- vg_assert(di->rx_map_size > 0);
- vg_assert(di->rw_map_size > 0);
+ vg_assert(di->fsm.have_rx_map == True);
+ vg_assert(di->fsm.have_rw_map == True);
+ vg_assert(di->fsm.rx_map_size > 0);
+ vg_assert(di->fsm.rw_map_size > 0);
vg_assert(di->have_dinfo == False);
- vg_assert(di->filename);
+ vg_assert(di->fsm.filename);
vg_assert(!di->symtab);
vg_assert(!di->loctab);
vg_assert(!di->cfsi);
@@ -1227,8 +1233,8 @@
/* If these don't hold true, it means that m_syswrap/m_aspacemgr
managed to do a mapping where the start isn't page aligned.
Which sounds pretty bogus to me. */
- vg_assert(VG_IS_PAGE_ALIGNED(di->rx_map_avma));
- vg_assert(VG_IS_PAGE_ALIGNED(di->rw_map_avma));
+ vg_assert(VG_IS_PAGE_ALIGNED(di->fsm.rx_map_avma));
+ vg_assert(VG_IS_PAGE_ALIGNED(di->fsm.rw_map_avma));
/* ----------------------------------------------------------
At this point, there is very little information in the
@@ -1247,13 +1253,13 @@
oimage = (Addr)NULL;
if (VG_(clo_verbosity) > 1 || VG_(clo_trace_redir))
VG_(message)(Vg_DebugMsg, "Reading syms from %s (%#lx)\n",
- di->filename, di->rx_map_avma );
+ di->fsm.filename, di->fsm.rx_map_avma );
/* mmap the object image aboard, so that we can read symbols and
line number info out of it. It will be munmapped immediately
thereafter; it is only aboard transiently. */
- fd = VG_(open)(di->filename, VKI_O_RDONLY, 0);
+ fd = VG_(open)(di->fsm.filename, VKI_O_RDONLY, 0);
if (sr_isError(fd)) {
ML_(symerr)(di, True, "Can't open .so/.exe to read symbols?!");
return False;
@@ -1274,7 +1280,8 @@
VG_(close)(sr_Res(fd));
if (sr_isError(sres)) {
- VG_(message)(Vg_UserMsg, "warning: mmap failed on %s\n", di->filename );
+ VG_(message)(Vg_UserMsg, "warning: mmap failed on %s\n",
+ di->fsm.filename );
VG_(message)(Vg_UserMsg, " no symbols or debug info loaded\n" );
return False;
}
@@ -1322,9 +1329,9 @@
TRACE_SYMTAB("shdr: img %p nent %ld ent_szB %ld\n",
shdr_img, shdr_nent, shdr_ent_szB);
TRACE_SYMTAB("rx_map: avma %#lx size %lu foff %lu\n",
- di->rx_map_avma, di->rx_map_size, di->rx_map_foff);
+ di->fsm.rx_map_avma, di->fsm.rx_map_size, di->fsm.rx_map_foff);
TRACE_SYMTAB("rw_map: avma %#lx size %lu foff %lu\n",
- di->rw_map_avma, di->rw_map_size, di->rw_map_foff);
+ di->fsm.rw_map_avma, di->fsm.rw_map_size, di->fsm.rw_map_foff);
if (phdr_nent == 0
|| !contained_within(
@@ -1394,35 +1401,39 @@
goto out;
}
prev_svma = phdr->p_vaddr;
- if (phdr->p_offset >= di->rx_map_foff
- && phdr->p_offset < di->rx_map_foff + di->rx_map_size
- && phdr->p_offset + phdr->p_filesz <= di->rx_map_foff + di->rx_map_size
+ if (phdr->p_offset >= di->fsm.rx_map_foff
+ && phdr->p_offset < di->fsm.rx_map_foff + di->fsm.rx_map_size
+ && phdr->p_offset + phdr->p_filesz
+ <= di->fsm.rx_map_foff + di->fsm.rx_map_size
&& (phdr->p_flags & (PF_R | PF_W | PF_X)) == (PF_R | PF_X)) {
if (n_rx == N_RX_RW_AREAS) {
ML_(symerr)(di, True,
- "N_RX_RW_AREAS is too low; increase and recompile.");
+ "N_RX_RW_AREAS is too low; "
+ "increase and recompile.");
goto out;
}
rx[n_rx].svma_base = phdr->p_vaddr;
rx[n_rx].svma_limit = phdr->p_vaddr + phdr->p_memsz;
- rx[n_rx].bias = di->rx_map_avma - di->rx_map_foff
+ rx[n_rx].bias = di->fsm.rx_map_avma - di->fsm.rx_map_foff
+ phdr->p_offset - phdr->p_vaddr;
n_rx++;
TRACE_SYMTAB("PT_LOAD[%ld]: acquired as rx\n", i);
}
else
- if (phdr->p_offset >= di->rw_map_foff
- && phdr->p_offset < di->rw_map_foff + di->rw_map_size
- && phdr->p_offset + phdr->p_filesz <= di->rw_map_foff + di->rw_map_size
+ if (phdr->p_offset >= di->fsm.rw_map_foff
+ && phdr->p_offset < di->fsm.rw_map_foff + di->fsm.rw_map_size
+ && phdr->p_offset + phdr->p_filesz
+ <= di->fsm.rw_map_foff + di->fsm.rw_map_size
&& (phdr->p_flags & (PF_R | PF_W | PF_X)) == (PF_R | PF_W)) {
if (n_rw == N_RX_RW_AREAS) {
ML_(symerr)(di, True,
- "N_RX_RW_AREAS is too low; increase and recompile.");
+ "N_RX_RW_AREAS is too low; "
+ "increase and recompile.");
goto out;
}
rw[n_rw].svma_base = phdr->p_vaddr;
rw[n_rw].svma_limit = phdr->p_vaddr + phdr->p_memsz;
- rw[n_rw].bias = di->rw_map_avma - di->rw_map_foff
+ rw[n_rw].bias = di->fsm.rw_map_avma - di->fsm.rw_map_foff
+ phdr->p_offset - phdr->p_vaddr;
n_rw++;
TRACE_SYMTAB("PT_LOAD[%ld]: acquired as rw\n", i);
@@ -1491,15 +1502,17 @@
TRACE_SYMTAB("\n");
TRACE_SYMTAB("------ Examining the section headers ------\n");
TRACE_SYMTAB("rx: at %#lx are mapped foffsets %ld .. %ld\n",
- di->rx_map_avma,
- di->rx_map_foff, di->rx_map_foff + di->rx_map_size - 1 );
+ di->fsm.rx_map_avma,
+ di->fsm.rx_map_foff,
+ di->fsm.rx_map_foff + di->fsm.rx_map_size - 1 );
for (i = 0; i < n_rx; i++) {
TRACE_SYMTAB("rx[%ld]: contains svmas %#lx .. %#lx with bias %#lx\n",
i, rx[i].svma_base, rx[i].svma_limit - 1, rx[i].bias );
}
TRACE_SYMTAB("rw: at %#lx are mapped foffsets %ld .. %ld\n",
- di->rw_map_avma,
- di->rw_map_foff, di->rw_map_foff + di->rw_map_size - 1 );
+ di->fsm.rw_map_avma,
+ di->fsm.rw_map_foff,
+ di->fsm.rw_map_foff + di->fsm.rw_map_size - 1 );
for (i = 0; i < n_rw; i++) {
TRACE_SYMTAB("rw[%ld]: contains svmas %#lx .. %#lx with bias %#lx\n",
i, rw[i].svma_base, rw[i].svma_limit - 1, rw[i].bias );
@@ -1724,8 +1737,8 @@
VG_(message)(Vg_UserMsg,
"Warning: the following file's .bss is "
"mapped r-x only - ignoring .bss syms\n");
- VG_(message)(Vg_UserMsg, " %s\n", di->filename
- ? di->filename
+ VG_(message)(Vg_UserMsg, " %s\n", di->fsm.filename
+ ? di->fsm.filename
: (UChar*)"(null?!)" );
}
} else
@@ -2079,11 +2092,12 @@
crc = *(UInt *)(debuglink_img + crc_offset);
/* See if we can find a matching debug file */
- dimage = find_debug_file( di, di->filename, buildid,
+ dimage = find_debug_file( di, di->fsm.filename, buildid,
debuglink_img, crc, &n_dimage );
} else {
/* See if we can find a matching debug file */
- dimage = find_debug_file( di, di->filename, buildid, NULL, 0, &n_dimage );
+ dimage = find_debug_file( di, di->fsm.filename, buildid,
+ NULL, 0, &n_dimage );
}
ML_(dinfo_free)(buildid);
@@ -2162,21 +2176,27 @@
i, phdr_ent_szB );
if (phdr->p_type == PT_LOAD) {
if (rx_dsvma_limit == 0
- && phdr->p_offset >= di->rx_map_foff
- && phdr->p_offset < di->rx_map_foff + di->rx_map_size
- && phdr->p_offset + phdr->p_filesz <= di->rx_map_foff + di->rx_map_size) {
+ && phdr->p_offset >= di->fsm.rx_map_foff
+ && phdr->p_offset
+ < di->fsm.rx_map_foff + di->fsm.rx_map_size
+ && phdr->p_offset + phdr->p_filesz
+ <= di->fsm.rx_map_foff + di->fsm.rx_map_size) {
/* rx_dsvma_base = phdr->p_vaddr; */ /* UNUSED */
rx_dsvma_limit = phdr->p_vaddr + phdr->p_memsz;
- rx_dbias = di->rx_map_avma - di->rx_map_foff + phdr->p_offset - phdr->p_vaddr;
+ rx_dbias = di->fsm.rx_map_avma - di->fsm.rx_map_foff
+ + phdr->p_offset - phdr->p_vaddr;
}
else
if (rw_dsvma_limit == 0
- && phdr->p_offset >= di->rw_map_foff
- && phdr->p_offset < di->rw_map_foff + di->rw_map_size
- && phdr->p_offset + phdr->p_filesz <= di->rw_map_foff + di->rw_map_size) {
+ && phdr->p_offset >= di->fsm.rw_map_foff
+ && phdr->p_offset
+ < di->fsm.rw_map_foff + di->fsm.rw_map_size
+ && phdr->p_offset + phdr->p_filesz
+ <= di->fsm.rw_map_foff + di->fsm.rw_map_size) {
/* rw_dsvma_base = phdr->p_vaddr; */ /* UNUSED */
rw_dsvma_limit = phdr->p_vaddr + phdr->p_memsz;
- rw_dbias = di->rw_map_avma - di->rw_map_foff + phdr->p_offset - phdr->p_vaddr;
+ rw_dbias = di->fsm.rw_map_avma - di->fsm.rw_map_foff
+ + phdr->p_offset - phdr->p_vaddr;
}
}
}
@@ -2204,7 +2224,8 @@
di->sec##_debug_bias \
= di->sec##_bias + \
di->sec##_svma - di->sec##_debug_svma; \
- TRACE_SYMTAB("acquiring ." #sec " debug svma = %#lx .. %#lx\n", \
+ TRACE_SYMTAB("acquiring ." #sec \
+ " debug svma = %#lx .. %#lx\n", \
di->sec##_debug_svma, \
di->sec##_debug_svma + di->sec##_size - 1); \
TRACE_SYMTAB("acquiring ." #sec " debug bias = %#lx\n", \
@@ -2402,7 +2423,7 @@
}
}
VG_(umsg)("VARINFO: %7lu vars %7ld text_size %s\n",
- nVars, di->text_size, di->filename);
+ nVars, di->text_size, di->fsm.filename);
}
out: {
Modified: trunk/coregrind/m_debuginfo/readpdb.c
===================================================================
--- trunk/coregrind/m_debuginfo/readpdb.c 2011-09-20 16:10:59 UTC (rev 12040)
+++ trunk/coregrind/m_debuginfo/readpdb.c 2011-09-20 21:59:50 UTC (rev 12041)
@@ -86,8 +86,8 @@
doesn't make much sense. Here, we use text_bias as empirically
producing the most ranges that fall inside the text segments for a
multi-dll program. Of course, it could still be nonsense :-) */
-#define BIAS_FOR_SYMBOLS (di->rx_map_avma)
-#define BIAS_FOR_LINETAB (di->rx_map_avma)
+#define BIAS_FOR_SYMBOLS (di->fsm.rx_map_avma)
+#define BIAS_FOR_LINETAB (di->fsm.rx_map_avma)
#define BIAS_FOR_LINETAB2 (di->text_bias)
#define BIAS_FOR_FPO (di->text_bias)
/* Using di->text_bias for the FPOs causes 981 in range and 1 out of
@@ -2259,7 +2259,7 @@
+ OFFSET_OF(IMAGE_NT_HEADERS, OptionalHeader)
+ ntheaders_avma->FileHeader.SizeOfOptionalHeader;
- di->rx_map_avma = (Addr)obj_avma;
+ di->fsm.rx_map_avma = (Addr)obj_avma;
/* Iterate over PE(?) headers. Try to establish the text_bias,
that's all we really care about. */
@@ -2290,35 +2290,35 @@
the real text section and valgrind will compute the wrong
avma value and hence the wrong bias. */
if (!(pe_sechdr_avma->Characteristics & IMAGE_SCN_CNT_UNINITIALIZED_DATA)) {
- di->have_rx_map = True;
- if (di->rx_map_avma == 0) {
- di->rx_map_avma = mapped_avma;
+ di->fsm.have_rx_map = True;
+ if (di->fsm.rx_map_avma == 0) {
+ di->fsm.rx_map_avma = mapped_avma;
}
- if (di->rx_map_size==0) {
- di->rx_map_foff = pe_sechdr_avma->PointerToRawData;
+ if (di->fsm.rx_map_size==0) {
+ di->fsm.rx_map_foff = pe_sechdr_avma->PointerToRawData;
}
di->text_present = True;
if (di->text_avma==0) {
di->text_avma = mapped_avma;
}
di->text_size += pe_sechdr_avma->Misc.VirtualSize;
- di->rx_map_size += pe_sechdr_avma->Misc.VirtualSize;
+ di->fsm.rx_map_size += pe_sechdr_avma->Misc.VirtualSize;
}
}
else if (pe_sechdr_avma->Characteristics
& IMAGE_SCN_CNT_INITIALIZED_DATA) {
- di->have_rw_map = True;
- if (di->rw_map_avma == 0) {
- di->rw_map_avma = mapped_avma;
+ di->fsm.have_rw_map = True;
+ if (di->fsm.rw_map_avma == 0) {
+ di->fsm.rw_map_avma = mapped_avma;
}
- if (di->rw_map_size==0) {
- di->rw_map_foff = pe_sechdr_avma->PointerToRawData;
+ if (di->fsm.rw_map_size==0) {
+ di->fsm.rw_map_foff = pe_sechdr_avma->PointerToRawData;
}
di->data_present = True;
if (di->data_avma==0) {
di->data_avma = mapped_avma;
}
- di->rw_map_size += pe_sechdr_avma->Misc.VirtualSize;
+ di->fsm.rw_map_size += pe_sechdr_avma->Misc.VirtualSize;
di->data_size += pe_sechdr_avma->Misc.VirtualSize;
}
else if (pe_sechdr_avma->Characteristics
@@ -2331,29 +2331,29 @@
mapped_avma = VG_PGROUNDDN(mapped_avma);
mapped_end_avma = VG_PGROUNDUP(mapped_end_avma);
- /* Urr. These tests are bogus; ->rx_map_avma is not necessarily
+ /* Urr. These tests are bogus; ->fsm.rx_map_avma is not necessarily
the start of the text section. */
if ((1 /*VG_(needs).data_syms*/
|| (pe_sechdr_avma->Characteristics & IMAGE_SCN_CNT_CODE))
- && mapped_avma >= di->rx_map_avma
- && mapped_avma <= (di->rx_map_avma+di->text_size)
- && mapped_end_avma > (di->rx_map_avma+di->text_size)) {
- UInt newsz = mapped_end_avma - di->rx_map_avma;
+ && mapped_avma >= di->fsm.rx_map_avma
+ && mapped_avma <= (di->fsm.rx_map_avma+di->text_size)
+ && mapped_end_avma > (di->fsm.rx_map_avma+di->text_size)) {
+ UInt newsz = mapped_end_avma - di->fsm.rx_map_avma;
if (newsz > di->text_size) {
/* extending the mapping is always needed for PE files
under WINE */
di->text_size = newsz;
- di->rx_map_size = newsz;
+ di->fsm.rx_map_size = newsz;
}
}
}
- if (di->have_rx_map && di->have_rw_map && !di->have_dinfo) {
- vg_assert(di->filename);
+ if (di->fsm.have_rx_map && di->fsm.have_rw_map && !di->have_dinfo) {
+ vg_assert(di->fsm.filename);
TRACE_SYMTAB("\n");
TRACE_SYMTAB("------ start PE OBJECT with PDB INFO "
"---------------------\n");
- TRACE_SYMTAB("------ name = %s\n", di->filename);
+ TRACE_SYMTAB("------ name = %s\n", di->fsm.filename);
TRACE_SYMTAB("\n");
}
@@ -2366,14 +2366,17 @@
if (VG_(clo_verbosity) > 1) {
VG_(message)(Vg_DebugMsg,
"rx_map: avma %#lx size %7lu foff %llu\n",
- di->rx_map_avma, di->rx_map_size, (Off64T)di->rx_map_foff);
+ di->fsm.rx_map_avma, di->fsm.rx_map_size,
+ (Off64T)di->fsm.rx_map_foff);
VG_(message)(Vg_DebugMsg,
"rw_map: avma %#lx size %7lu foff %llu\n",
- di->rw_map_avma, di->rw_map_size, (Off64T)di->rw_map_foff);
+ di->fsm.rw_map_avma, di->fsm.rw_map_size,
+ (Off64T)di->fsm.rw_map_foff);
VG_(message)(Vg_DebugMsg,
" text: avma %#lx svma %#lx size %7lu bias %#lx\n",
- di->text_avma, di->text_svma, di->text_size, di->text_bias);
+ di->text_avma, di->text_svma,
+ di->text_size, di->text_bias);
}
/*
@@ -2429,7 +2432,7 @@
}
TRACE_SYMTAB("\n");
- TRACE_SYMTAB("------ name = %s\n", di->filename);
+ TRACE_SYMTAB("------ name = %s\n", di->fsm.filename);
TRACE_SYMTAB("------ end PE OBJECT with PDB INFO "
"--------------------\n");
TRACE_SYMTAB("\n");
Modified: trunk/coregrind/m_debuginfo/storage.c
===================================================================
--- trunk/coregrind/m_debuginfo/storage.c 2011-09-20 16:10:59 UTC (rev 12040)
+++ trunk/coregrind/m_debuginfo/storage.c 2011-09-20 21:59:50 UTC (rev 12041)
@@ -74,7 +74,8 @@
or below, since that won't already have been shown */
VG_(message)(Vg_DebugMsg,
"When reading debug info from %s:\n",
- (di && di->filename) ? di->filename : (UChar*)"???");
+ (di && di->fsm.filename) ? di->fsm.filename
+ : (UChar*)"???");
}
VG_(message)(Vg_DebugMsg, "%s\n", msg);
@@ -396,9 +397,9 @@
/* Rule out ones which are completely outside the r-x mapped area.
See "Comment_Regarding_Text_Range_Checks" elsewhere in this file
for background and rationale. */
- vg_assert(di->have_rx_map && di->have_rw_map);
- if (next-1 < di->rx_map_avma
- || this >= di->rx_map_avma + di->rx_map_size ) {
+ vg_assert(di->fsm.have_rx_map && di->fsm.have_rw_map);
+ if (next-1 < di->fsm.rx_map_avma
+ || this >= di->fsm.rx_map_avma + di->fsm.rx_map_size ) {
if (0)
VG_(message)(Vg_DebugMsg,
"warning: ignoring line info entry falling "
@@ -467,17 +468,17 @@
would fall within a single procedure. */
vg_assert(cfsi.len < 5000000);
- vg_assert(di->have_rx_map && di->have_rw_map);
+ vg_assert(di->fsm.have_rx_map && di->fsm.have_rw_map);
/* If we have an empty r-x mapping (is that possible?) then the
DiCfSI can't possibly fall inside it. In which case skip. */
- if (di->rx_map_size == 0)
+ if (di->fsm.rx_map_size == 0)
return;
/* Rule out ones which are completely outside the r-x mapped area.
See "Comment_Regarding_Text_Range_Checks" elsewhere in this file
for background and rationale. */
- if (cfsi.base + cfsi.len - 1 < di->rx_map_avma
- || cfsi.base >= di->rx_map_avma + di->rx_map_size) {
+ if (cfsi.base + cfsi.len - 1 < di->fsm.rx_map_avma
+ || cfsi.base >= di->fsm.rx_map_avma + di->fsm.rx_map_size) {
static Int complaints = 10;
if (VG_(clo_trace_cfi) || complaints > 0) {
complaints--;
@@ -505,25 +506,26 @@
will fail. See
"Comment_on_IMPORTANT_CFSI_REPRESENTATIONAL_INVARIANTS" in
priv_storage.h for background. */
- if (cfsi.base < di->rx_map_avma) {
+ if (cfsi.base < di->fsm.rx_map_avma) {
/* Lower end is outside the mapped area. Hence upper end must
be inside it. */
if (0) VG_(printf)("XXX truncate lower\n");
- vg_assert(cfsi.base + cfsi.len - 1 >= di->rx_map_avma);
- delta = (SSizeT)(di->rx_map_avma - cfsi.base);
+ vg_assert(cfsi.base + cfsi.len - 1 >= di->fsm.rx_map_avma);
+ delta = (SSizeT)(di->fsm.rx_map_avma - cfsi.base);
vg_assert(delta > 0);
vg_assert(delta < (SSizeT)cfsi.len);
cfsi.base += delta;
cfsi.len -= delta;
}
else
- if (cfsi.base + cfsi.len - 1 > di->rx_map_avma + di->rx_map_size - 1) {
+ if (cfsi.base + cfsi.len - 1 > di->fsm.rx_map_avma
+ + di->fsm.rx_map_size - 1) {
/* Upper end is outside the mapped area. Hence lower end must be
inside it. */
if (0) VG_(printf)("XXX truncate upper\n");
- vg_assert(cfsi.base <= di->rx_map_avma + di->rx_map_size - 1);
+ vg_assert(cfsi.base <= di->fsm.rx_map_avma + di->fsm.rx_map_size - 1);
delta = (SSizeT)( (cfsi.base + cfsi.len - 1)
- - (di->rx_map_avma + di->rx_map_size - 1) );
+ - (di->fsm.rx_map_avma + di->fsm.rx_map_size - 1) );
vg_assert(delta > 0); vg_assert(delta < (SSizeT)cfsi.len);
cfsi.len -= delta;
}
@@ -537,9 +539,9 @@
vg_assert(cfsi.len > 0);
/* Similar logic applies for the next two assertions. */
- vg_assert(cfsi.base >= di->rx_map_avma);
+ vg_assert(cfsi.base >= di->fsm.rx_map_avma);
vg_assert(cfsi.base + cfsi.len - 1
- <= di->rx_map_avma + di->rx_map_size - 1);
+ <= di->fsm.rx_map_avma + di->fsm.rx_map_size - 1);
if (di->cfsi_used == di->cfsi_size) {
new_sz = 2 * di->cfsi_size;
@@ -927,10 +929,10 @@
/* This is assured us by top level steering logic in debuginfo.c,
and it is re-checked at the start of
ML_(read_elf_debug_info). */
- vg_assert(di->have_rx_map && di->have_rw_map);
+ vg_assert(di->fsm.have_rx_map && di->fsm.have_rw_map);
if (level > 0
- && (aMax < di->rx_map_avma
- || aMin >= di->rx_map_avma + di->rx_map_size)) {
+ && (aMax < di->fsm.rx_map_avma
+ || aMin >= di->fsm.rx_map_avma + di->fsm.rx_map_size)) {
if (VG_(clo_verbosity) >= 0) {
VG_(message)(Vg_DebugMsg,
"warning: addVar: in range %#lx .. %#lx outside "
@@ -1858,7 +1860,7 @@
Word ML_(search_one_fpotab) ( struct _DebugInfo* di, Addr ptr )
{
- Addr const addr = ptr - di->rx_map_avma;
+ Addr const addr = ptr - di->fsm.rx_map_avma;
Addr a_mid_lo, a_mid_hi;
Word mid, size,
lo = 0,
|
|
From: Christian B. <bor...@de...> - 2011-09-20 20:33:17
|
Nightly build on sless390 ( SUSE Linux Enterprise Server 11 SP1 gcc 4.3.4 on z196 (s390x) ) Started at 2011-09-20 22:05:01 CEST Ended at 2011-09-20 22:33:01 CEST 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 == 499 tests, 14 stderr failures, 0 stdout failures, 8 stderrB failures, 0 stdoutB failures, 0 post failures == gdbserver_tests/mcbreak (stderrB) gdbserver_tests/mcclean_after_fork (stderrB) gdbserver_tests/mcleak (stderrB) gdbserver_tests/mcmain_pic (stderrB) gdbserver_tests/mcvabits (stderrB) gdbserver_tests/mssnapshot (stderrB) gdbserver_tests/nlpasssigalrm (stderrB) gdbserver_tests/nlsigvgdb (stderrB) memcheck/tests/err_disable3 (stderr) memcheck/tests/err_disable4 (stderr) memcheck/tests/linux/timerfd-syscall (stderr) helgrind/tests/locked_vs_unlocked1_fwd (stderr) helgrind/tests/locked_vs_unlocked1_rev (stderr) helgrind/tests/locked_vs_unlocked2 (stderr) helgrind/tests/locked_vs_unlocked3 (stderr) helgrind/tests/pth_barrier3 (stderr) helgrind/tests/tc06_two_races_xml (stderr) helgrind/tests/tc18_semabuse (stderr) helgrind/tests/tc20_verifywrap (stderr) helgrind/tests/tc23_bogus_condwait (stderr) drd/tests/tc04_free_lock (stderr) drd/tests/tc09_bad_unlock (stderr) |
|
From: ilya s. <ily...@gm...> - 2011-09-20 20:26:49
|
> of myfunc() influence its runtime. Callgrind would allow you to embed > information for bins of this parameter setting into the function name. > E.g. for myfunc(int a), the profile results would show you two functions: > > "myfunc:a>=5" : 90 calls, 1 billion instructions executed > "myfunc:a<5" : 5 calls, 2 million instructions executed Thanks, that's very helpful, and is actually another extension I wanted to suggest :) But, I want to bin functions by their actual execution cost (whether in Ir, Dr etc), which is only known when the function has run; and then, print the arguments of a few representative function invocations falling into a given _cost_ bin. Here's a simpler request that would let me manually simulate what I want to do: Is it possible to create a client request that returns the current value of a particular statistic (Ir, Dr, ...) gathered by cachegrind/callgrind -- just as I can get the "processor time spent so far" using standard function calls? (I know I can dump this to a file, but that's too slow. Can I get this with a simple client request/API function call?) I could then do with that statistic what I now do with runtime (which isn't too reliable) -- both make histograms and print the args for representative invocations falling into a given bin. Thanks a lot, ilya On Tue, Sep 20, 2011 at 8:54 AM, Josef Weidendorfer <Jos...@gm...> wrote: > On Monday 19 September 2011, ilya shlyakhter wrote: >> I've been doing this manually by manually timing myFunc(), building a >> histogram of its runtimes, finding which bins >> dominate the histogram; then, looking at the inputs of some >> representative invocations that fall in these runtime bins, >> by: putting a static counter inside the function so you know when >> you're on its N'th invocation; printing the counter >> value for the first few invocations whose runtime falls into the bins >> of interest; then adding code at the start of function, >> "if counter == one of the printed counter values, print the function arguments". >> Building this into the profiler would let me 1) avoid doing the above >> for each function I want to optimize, and 2) do this >> not just for runtime but for all other statistics gathered by >> cachegrind/callgrind. >> >> Does this explanation help, or should I write some more detailed examples? > > I think I got the idea of this 2-stage procedure. > > What about the following approach: you expect that some parameter settings > of myfunc() influence its runtime. Callgrind would allow you to embed > information for bins of this parameter setting into the function name. > E.g. for myfunc(int a), the profile results would show you two functions: > > "myfunc:a>=5" : 90 calls, 1 billion instructions executed > "myfunc:a<5" : 5 calls, 2 million instructions executed > > I think in the end you should be able to reach the same goal you get with > your 2-stage approach. > > We did such an extension in the past, see > http://www.lrr.in.tum.de/~kuestner/proper09.pdf > > Attached is a patch for that (not sure it applies against current SVN or > 3.6.1), with the following short doc: > > Format is > --separate-par=<fn_pattern>':'<intpar_num>[':'<intval>(','<intval>)*] > If no value is given, separate by every different value > Otherwise, this allows for multiple buckets: > x < intval1, intval1 < x <= intval2, ... , intvalX <= x > with x being the <intpar_num>s int parameter of functions > matching fn_pattern. > > Multiple seppar requests for same function are allowed > > It never made it into a release, as the usage was too low-level and > the feature is platform-dependent (only works with 32bit x86 for now!): > you have to know the stack layout. But it proved to be quite useful. > >> >If writing millions of files is to expensive, >> it would be too expensive in my case. >> >> >easier to think about a way to pass measurements to a script >> >in a more light-weight way (e.g. via pipes). You should >> >be able to implement your suggestions in your own script then. >> >> thanks, that might work for making histograms (esp. if I limit >> data-gathering to that one function). >> but it wouldn't work for printing the arguments of some representative >> function invocations falling into a given range of runtimes. > > If one sends the measurement data for every function invocation via > pipe to an external process, one can also send a string identifying > the parameters with every invocation. > > Josef > >> >> ilya >> >> On Mon, Sep 19, 2011 at 4:24 PM, Josef Weidendorfer >> <Jos...@gm...> wrote: >> > Hi Ilya, >> > >> > On Monday 19 September 2011, ilya shlyakhter wrote: >> >> how hard would it be to implement the following extension to >> >> cachegrind/callgrind: >> >> ... >> > >> > this list (which I do not understand completely) suggests that >> > you have some concrete use case in mind. What do you want to >> > accomplish in the end? >> > >> >> right now, when reporting the cost of a function, the cost of all >> >> invocations is aggregated together. >> >> (callgrind separates the invocations by caller, but that's as >> >> fine-grained as it goes). >> > >> > Hmm.. you can also dump counters to a file anytime you want, >> > e.g. with "--dump-after=<func>". You then can post-process >> > the files, and do your own statistics on it. >> > For how to parse the files in PERL, see "callgrind_annotate". >> > >> > If writing millions of files is to expensive, it probably is >> > easier to think about a way to pass measurements to a script >> > in a more light-weight way (e.g. via pipes). You should >> > be able to implement your suggestions in your own script then. >> > >> >> the proposed extension would do the following: >> >> - for each function (or for requested functions), for a chosen >> >> statistic (Ir, DLmr, etc), produce a _histogram_ of invocation costs. >> >> in each bin, keep the # of invocations and their total cost. >> > >> >> an additional extension would let the user print their own debug >> >> information for representative >> >> invocations falling into a given bin. this would work only for >> >> completely deterministic user programs. >> >> - there would be a valgrind client request, VALGRIND_SHOULD_PRINT, >> >> which the user would >> >> add to their function to tell them whether to print debug >> >> information for this invocation: >> >> >> >> void myFunc( ComplexStructure *arg ) { >> >> if( VALGRIND_SHOULD_PRINT ) >> >> arg->print(); >> >> ... >> >> } >> >> - there would be an option to cachegrind/callgrind to record and >> >> save in an output file, for a given function and >> >> a given range of costs, the "invocation ids" of some small number >> >> of invocations of that function in that cost range. >> >> "invocation id" of a function is simply the order number of its >> >> invocation (e.g. the 134701st invocation of this function). >> >> >> >> - there would be another option to cachegrind/callgrind to read the >> >> file recorded above and to have VALGRIND_SHOULD_PRINT return 1 >> >> for the recorded invocations, and 0 for all others. >> > >> > I don't understand the benefit. How would you use that feature? >> > >> >> this would allow finer-grained profiling than is currently possible. >> >> how hard would this be to add? >> > >> > If you come up with a patch, you still need to prove that it is worth >> > merging and maintaining. It seems easier to me to try to come up >> > with a general solution which allows users to implement their own >> > post-processing/statistics, as mentioned above. >> > >> > E.g. for adding histograms, you not only need to change cachegrind/callgrind, >> > but also extend the format and parsers, such as {cg,callgrind}_annotate, >> > and the KCachegrind GUI. >> > >> > That said, it would be cool to have histograms. >> > >> > Josef >> > >> >> >> >> thanks, >> >> >> >> ilya >> >> >> >> ------------------------------------------------------------------------------ >> >> BlackBerry® DevCon Americas, Oct. 18-20, San Francisco, CA >> >> Learn about the latest advances in developing for the >> >> BlackBerry® mobile platform with sessions, labs & more. >> >> See new tools and technologies. Register for BlackBerry® DevCon today! >> >> http://p.sf.net/sfu/rim-devcon-copy1 >> >> _______________________________________________ >> >> Valgrind-developers mailing list >> >> Val...@li... >> >> https://lists.sourceforge.net/lists/listinfo/valgrind-developers >> >> >> > >> > >> > >> >> ------------------------------------------------------------------------------ >> All the data continuously generated in your IT infrastructure contains a >> definitive record of customers, application performance, security >> threats, fraudulent activity and more. Splunk takes this data and makes >> sense of it. Business sense. IT sense. Common sense. >> http://p.sf.net/sfu/splunk-d2dcopy1 >> _______________________________________________ >> Valgrind-developers mailing list >> Val...@li... >> https://lists.sourceforge.net/lists/listinfo/valgrind-developers >> > > |
|
From: Christian B. <bor...@de...> - 2011-09-20 20:10:43
|
Nightly build on fedora390 ( Fedora 13/14/15 mix with gcc 3.5.3 on z196 (s390x) ) Started at 2011-09-20 21:45:01 CEST Ended at 2011-09-20 22:10:50 CEST 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 == 498 tests, 13 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/err_disable3 (stderr) memcheck/tests/err_disable4 (stderr) memcheck/tests/linux/timerfd-syscall (stderr) helgrind/tests/locked_vs_unlocked1_fwd (stderr) helgrind/tests/locked_vs_unlocked1_rev (stderr) helgrind/tests/locked_vs_unlocked2 (stderr) helgrind/tests/locked_vs_unlocked3 (stderr) helgrind/tests/pth_barrier3 (stderr) helgrind/tests/tc06_two_races_xml (stderr) helgrind/tests/tc18_semabuse (stderr) helgrind/tests/tc20_verifywrap (stderr) drd/tests/tc04_free_lock (stderr) drd/tests/tc09_bad_unlock (stderr) |
|
From: <sv...@va...> - 2011-09-20 16:15:47
|
Author: sewardj
Date: 2011-09-20 17:10:59 +0100 (Tue, 20 Sep 2011)
New Revision: 12040
Log:
Get rid of DebugInfo::memname, a hangover from the now-removed
AIX5 support.
Modified:
trunk/coregrind/m_debuginfo/debuginfo.c
trunk/coregrind/m_debuginfo/priv_storage.h
trunk/coregrind/m_debuginfo/readelf.c
Modified: trunk/coregrind/m_debuginfo/debuginfo.c
===================================================================
--- trunk/coregrind/m_debuginfo/debuginfo.c 2011-09-19 02:33:35 UTC (rev 12039)
+++ trunk/coregrind/m_debuginfo/debuginfo.c 2011-09-20 16:10:59 UTC (rev 12040)
@@ -168,8 +168,7 @@
/* Allocate and zero out a new DebugInfo record. */
static
-DebugInfo* alloc_DebugInfo( const UChar* filename,
- const UChar* memname )
+DebugInfo* alloc_DebugInfo( const UChar* filename )
{
Bool traceme;
DebugInfo* di;
@@ -179,15 +178,11 @@
di = ML_(dinfo_zalloc)("di.debuginfo.aDI.1", sizeof(DebugInfo));
di->handle = handle_counter++;
di->filename = ML_(dinfo_strdup)("di.debuginfo.aDI.2", filename);
- di->memname = memname ? ML_(dinfo_strdup)("di.debuginfo.aDI.3", memname)
- : NULL;
/* Everything else -- pointers, sizes, arrays -- is zeroed by
ML_(dinfo_zalloc). Now set up the debugging-output flags. */
traceme
- = VG_(string_match)( VG_(clo_trace_symtab_patt), filename )
- || (memname && VG_(string_match)( VG_(clo_trace_symtab_patt),
- memname ));
+ = VG_(string_match)( VG_(clo_trace_symtab_patt), filename );
if (traceme) {
di->trace_symtab = VG_(clo_trace_symtab);
di->trace_cfi = VG_(clo_trace_cfi);
@@ -464,25 +459,20 @@
}
-/* Find the existing DebugInfo for (memname,filename) or if not found,
- create one. In the latter case memname and filename are strdup'd
- into VG_AR_DINFO, and the new DebugInfo is added to
- debugInfo_list. */
-static
-DebugInfo* find_or_create_DebugInfo_for ( UChar* filename, UChar* memname )
+/* Find the existing DebugInfo for |filename| or if not found, create
+ one. In the latter case |filename| is strdup'd into VG_AR_DINFO,
+ and the new DebugInfo is added to debugInfo_list. */
+static DebugInfo* find_or_create_DebugInfo_for ( UChar* filename )
{
DebugInfo* di;
vg_assert(filename);
for (di = debugInfo_list; di; di = di->next) {
vg_assert(di->filename);
- if (0==VG_(strcmp)(di->filename, filename)
- && ( (memname && di->memname)
- ? 0==VG_(strcmp)(memname, di->memname)
- : True ))
+ if (0==VG_(strcmp)(di->filename, filename))
break;
}
if (!di) {
- di = alloc_DebugInfo(filename, memname);
+ di = alloc_DebugInfo(filename);
vg_assert(di);
di->next = debugInfo_list;
debugInfo_list = di;
@@ -779,7 +769,7 @@
/* See if we have a DebugInfo for this filename. If not,
create one. */
- di = find_or_create_DebugInfo_for( filename, NULL/*membername*/ );
+ di = find_or_create_DebugInfo_for( filename );
vg_assert(di);
if (is_rx_map) {
@@ -1107,7 +1097,7 @@
/* dump old info for this range, if any */
discard_syms_in_range( avma_obj, total_size );
- { DebugInfo* di = find_or_create_DebugInfo_for(exename, NULL/*membername*/ );
+ { DebugInfo* di = find_or_create_DebugInfo_for(exename);
/* this di must be new, since we just nuked any old stuff in the range */
vg_assert(di && !di->have_rx_map && !di->have_rw_map);
@@ -1466,7 +1456,6 @@
require debug info. Caller supplies buf and nbuf. */
Bool VG_(get_objname) ( Addr a, Char* buf, Int nbuf )
{
- Int used;
DebugInfo* di;
const NSegment *seg;
HChar* filename;
@@ -1479,17 +1468,6 @@
&& di->text_avma <= a
&& a < di->text_avma + di->text_size) {
VG_(strncpy_safely)(buf, di->filename, nbuf);
- if (di->memname) {
- used = VG_(strlen)(buf);
- if (used < nbuf)
- VG_(strncpy_safely)(&buf[used], "(", nbuf-used);
- used = VG_(strlen)(buf);
- if (used < nbuf)
- VG_(strncpy_safely)(&buf[used], di->memname, nbuf-used);
- used = VG_(strlen)(buf);
- if (used < nbuf)
- VG_(strncpy_safely)(&buf[used], ")", nbuf-used);
- }
buf[nbuf-1] = 0;
return True;
}
Modified: trunk/coregrind/m_debuginfo/priv_storage.h
===================================================================
--- trunk/coregrind/m_debuginfo/priv_storage.h 2011-09-19 02:33:35 UTC (rev 12039)
+++ trunk/coregrind/m_debuginfo/priv_storage.h 2011-09-20 16:10:59 UTC (rev 12040)
@@ -436,7 +436,6 @@
VG_(di_notify_mmap) and its immediate helpers. */
UChar* filename; /* in mallocville (VG_AR_DINFO) */
- UChar* memname; /* also in VG_AR_DINFO. AIX5 only: .a member name */
Bool have_rx_map; /* did we see a r?x mapping yet for the file? */
Bool have_rw_map; /* did we see a rw? mapping yet for the file? */
Modified: trunk/coregrind/m_debuginfo/readelf.c
===================================================================
--- trunk/coregrind/m_debuginfo/readelf.c 2011-09-19 02:33:35 UTC (rev 12039)
+++ trunk/coregrind/m_debuginfo/readelf.c 2011-09-20 16:10:59 UTC (rev 12040)
@@ -1217,7 +1217,6 @@
vg_assert(di->rw_map_size > 0);
vg_assert(di->have_dinfo == False);
vg_assert(di->filename);
- vg_assert(!di->memname);
vg_assert(!di->symtab);
vg_assert(!di->loctab);
vg_assert(!di->cfsi);
|
|
From: Josef W. <Jos...@gm...> - 2011-09-20 12:54:49
|
On Monday 19 September 2011, ilya shlyakhter wrote: > I've been doing this manually by manually timing myFunc(), building a > histogram of its runtimes, finding which bins > dominate the histogram; then, looking at the inputs of some > representative invocations that fall in these runtime bins, > by: putting a static counter inside the function so you know when > you're on its N'th invocation; printing the counter > value for the first few invocations whose runtime falls into the bins > of interest; then adding code at the start of function, > "if counter == one of the printed counter values, print the function arguments". > Building this into the profiler would let me 1) avoid doing the above > for each function I want to optimize, and 2) do this > not just for runtime but for all other statistics gathered by > cachegrind/callgrind. > > Does this explanation help, or should I write some more detailed examples? I think I got the idea of this 2-stage procedure. What about the following approach: you expect that some parameter settings of myfunc() influence its runtime. Callgrind would allow you to embed information for bins of this parameter setting into the function name. E.g. for myfunc(int a), the profile results would show you two functions: "myfunc:a>=5" : 90 calls, 1 billion instructions executed "myfunc:a<5" : 5 calls, 2 million instructions executed I think in the end you should be able to reach the same goal you get with your 2-stage approach. We did such an extension in the past, see http://www.lrr.in.tum.de/~kuestner/proper09.pdf Attached is a patch for that (not sure it applies against current SVN or 3.6.1), with the following short doc: Format is --separate-par=<fn_pattern>':'<intpar_num>[':'<intval>(','<intval>)*] If no value is given, separate by every different value Otherwise, this allows for multiple buckets: x < intval1, intval1 < x <= intval2, ... , intvalX <= x with x being the <intpar_num>s int parameter of functions matching fn_pattern. Multiple seppar requests for same function are allowed It never made it into a release, as the usage was too low-level and the feature is platform-dependent (only works with 32bit x86 for now!): you have to know the stack layout. But it proved to be quite useful. > >If writing millions of files is to expensive, > it would be too expensive in my case. > > >easier to think about a way to pass measurements to a script > >in a more light-weight way (e.g. via pipes). You should > >be able to implement your suggestions in your own script then. > > thanks, that might work for making histograms (esp. if I limit > data-gathering to that one function). > but it wouldn't work for printing the arguments of some representative > function invocations falling into a given range of runtimes. If one sends the measurement data for every function invocation via pipe to an external process, one can also send a string identifying the parameters with every invocation. Josef > > ilya > > On Mon, Sep 19, 2011 at 4:24 PM, Josef Weidendorfer > <Jos...@gm...> wrote: > > Hi Ilya, > > > > On Monday 19 September 2011, ilya shlyakhter wrote: > >> how hard would it be to implement the following extension to > >> cachegrind/callgrind: > >> ... > > > > this list (which I do not understand completely) suggests that > > you have some concrete use case in mind. What do you want to > > accomplish in the end? > > > >> right now, when reporting the cost of a function, the cost of all > >> invocations is aggregated together. > >> (callgrind separates the invocations by caller, but that's as > >> fine-grained as it goes). > > > > Hmm.. you can also dump counters to a file anytime you want, > > e.g. with "--dump-after=<func>". You then can post-process > > the files, and do your own statistics on it. > > For how to parse the files in PERL, see "callgrind_annotate". > > > > If writing millions of files is to expensive, it probably is > > easier to think about a way to pass measurements to a script > > in a more light-weight way (e.g. via pipes). You should > > be able to implement your suggestions in your own script then. > > > >> the proposed extension would do the following: > >> - for each function (or for requested functions), for a chosen > >> statistic (Ir, DLmr, etc), produce a _histogram_ of invocation costs. > >> in each bin, keep the # of invocations and their total cost. > > > >> an additional extension would let the user print their own debug > >> information for representative > >> invocations falling into a given bin. this would work only for > >> completely deterministic user programs. > >> - there would be a valgrind client request, VALGRIND_SHOULD_PRINT, > >> which the user would > >> add to their function to tell them whether to print debug > >> information for this invocation: > >> > >> void myFunc( ComplexStructure *arg ) { > >> if( VALGRIND_SHOULD_PRINT ) > >> arg->print(); > >> ... > >> } > >> - there would be an option to cachegrind/callgrind to record and > >> save in an output file, for a given function and > >> a given range of costs, the "invocation ids" of some small number > >> of invocations of that function in that cost range. > >> "invocation id" of a function is simply the order number of its > >> invocation (e.g. the 134701st invocation of this function). > >> > >> - there would be another option to cachegrind/callgrind to read the > >> file recorded above and to have VALGRIND_SHOULD_PRINT return 1 > >> for the recorded invocations, and 0 for all others. > > > > I don't understand the benefit. How would you use that feature? > > > >> this would allow finer-grained profiling than is currently possible. > >> how hard would this be to add? > > > > If you come up with a patch, you still need to prove that it is worth > > merging and maintaining. It seems easier to me to try to come up > > with a general solution which allows users to implement their own > > post-processing/statistics, as mentioned above. > > > > E.g. for adding histograms, you not only need to change cachegrind/callgrind, > > but also extend the format and parsers, such as {cg,callgrind}_annotate, > > and the KCachegrind GUI. > > > > That said, it would be cool to have histograms. > > > > Josef > > > >> > >> thanks, > >> > >> ilya > >> > >> ------------------------------------------------------------------------------ > >> BlackBerry® DevCon Americas, Oct. 18-20, San Francisco, CA > >> Learn about the latest advances in developing for the > >> BlackBerry® mobile platform with sessions, labs & more. > >> See new tools and technologies. Register for BlackBerry® DevCon today! > >> http://p.sf.net/sfu/rim-devcon-copy1 > >> _______________________________________________ > >> Valgrind-developers mailing list > >> Val...@li... > >> https://lists.sourceforge.net/lists/listinfo/valgrind-developers > >> > > > > > > > > ------------------------------------------------------------------------------ > All the data continuously generated in your IT infrastructure contains a > definitive record of customers, application performance, security > threats, fraudulent activity and more. Splunk takes this data and makes > sense of it. Business sense. IT sense. Common sense. > http://p.sf.net/sfu/splunk-d2dcopy1 > _______________________________________________ > Valgrind-developers mailing list > Val...@li... > https://lists.sourceforge.net/lists/listinfo/valgrind-developers > |
|
From: Rich C. <rc...@wi...> - 2011-09-20 02:59:04
|
Nightly build on ultra ( gcc 4.5.1 Linux 2.6.37.1-1.2-desktop x86_64 )
Started at 2011-09-19 21:30:01 CDT
Ended at 2011-09-19 21:58:54 CDT
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
== 584 tests, 11 stderr failures, 0 stdout failures, 1 stderrB failure, 0 stdoutB failures, 0 post failures ==
gdbserver_tests/mssnapshot (stderrB)
memcheck/tests/err_disable3 (stderr)
memcheck/tests/err_disable4 (stderr)
memcheck/tests/linux/stack_switch (stderr)
memcheck/tests/origin5-bz2 (stderr)
helgrind/tests/locked_vs_unlocked1_fwd (stderr)
helgrind/tests/locked_vs_unlocked1_rev (stderr)
helgrind/tests/locked_vs_unlocked2 (stderr)
helgrind/tests/locked_vs_unlocked3 (stderr)
helgrind/tests/pth_barrier3 (stderr)
helgrind/tests/tc06_two_races_xml (stderr)
exp-sgcheck/tests/bad_percentify (stderr)
=================================================
./valgrind-new/exp-sgcheck/tests/bad_percentify.stderr.diff-glibc28-amd64
=================================================
--- bad_percentify.stderr.exp-glibc28-amd64 2011-09-19 21:45:40.964485184 -0500
+++ bad_percentify.stderr.out 2011-09-19 21:58:44.728362651 -0500
@@ -16,7 +16,7 @@
by 0x........: myvprintf_str (bad_percentify.c:187)
by 0x........: VG_debugLog_vprintf (bad_percentify.c:479)
by 0x........: vprintf_to_buf (bad_percentify.c:89)
- by 0x........: vprintf_WRK (bad_percentify.c:102)
+ by 0x........: vprintf_WRK (bad_percentify.c:101)
by 0x........: VG_vprintf (bad_percentify.c:115)
by 0x........: VG_printf (bad_percentify.c:124)
by 0x........: VG_print_translation_stats (bad_percentify.c:622)
=================================================
./valgrind-new/gdbserver_tests/mssnapshot.stderrB.diff
=================================================
--- mssnapshot.stderrB.exp 2011-09-19 21:45:20.830794670 -0500
+++ mssnapshot.stderrB.out 2011-09-19 21:51:27.351364432 -0500
@@ -1,5 +1,11 @@
relaying data between gdb and process ....
+Missing separate debuginfo for /lib64/ld-linux-x86-64.so.2
+Try: zypper install -C "debuginfo(build-id)=b1d398a5cb1609e7ac1c51a26588e87fc20f753c"
vgdb-error value changed from 0 to 999999
+Missing separate debuginfo for /lib64/libpthread.so.0
+Try: zypper install -C "debuginfo(build-id)=e23cbc772e670af00bea9874f925e2e61afda713"
+Missing separate debuginfo for /lib64/libc.so.6
+Try: zypper install -C "debuginfo(build-id)=1493bf69b1d671cbad9be1d1b0284fbd9138444b"
general valgrind monitor commands:
help [debug] : monitor command help. With debug: + debugging commands
v.wait [<ms>] : sleep <ms> (default 0) then continue
=================================================
./valgrind-new/helgrind/tests/locked_vs_unlocked1_fwd.stderr.diff
=================================================
--- locked_vs_unlocked1_fwd.stderr.exp 2011-09-19 21:45:18.087700591 -0500
+++ locked_vs_unlocked1_fwd.stderr.out 2011-09-19 21:55:52.732464882 -0500
@@ -2,15 +2,15 @@
Thread #x was created
at 0x........: clone (in /...libc...)
+ by 0x........: do_clone.clone.0 (in /...libpthread...)
by 0x........: pthread_create@@GLIBC_2.2.5 (in /...libpthread...)
- by 0x........: pthread_create_WRK (hg_intercepts.c:...)
---Thread-Announcement------------------------------------------
Thread #x was created
at 0x........: clone (in /...libc...)
+ by 0x........: do_clone.clone.0 (in /...libpthread...)
by 0x........: pthread_create@@GLIBC_2.2.5 (in /...libpthread...)
- by 0x........: pthread_create_WRK (hg_intercepts.c:...)
----------------------------------------------------------------
=================================================
./valgrind-new/helgrind/tests/locked_vs_unlocked1_rev.stderr.diff
=================================================
--- locked_vs_unlocked1_rev.stderr.exp 2011-09-19 21:45:18.094700831 -0500
+++ locked_vs_unlocked1_rev.stderr.out 2011-09-19 21:55:54.053510182 -0500
@@ -2,15 +2,15 @@
Thread #x was created
at 0x........: clone (in /...libc...)
+ by 0x........: do_clone.clone.0 (in /...libpthread...)
by 0x........: pthread_create@@GLIBC_2.2.5 (in /...libpthread...)
- by 0x........: pthread_create_WRK (hg_intercepts.c:...)
---Thread-Announcement------------------------------------------
Thread #x was created
at 0x........: clone (in /...libc...)
+ by 0x........: do_clone.clone.0 (in /...libpthread...)
by 0x........: pthread_create@@GLIBC_2.2.5 (in /...libpthread...)
- by 0x........: pthread_create_WRK (hg_intercepts.c:...)
----------------------------------------------------------------
=================================================
./valgrind-new/helgrind/tests/locked_vs_unlocked2.stderr.diff
=================================================
--- locked_vs_unlocked2.stderr.exp 2011-09-19 21:45:18.094700831 -0500
+++ locked_vs_unlocked2.stderr.out 2011-09-19 21:55:55.376555551 -0500
@@ -2,15 +2,15 @@
Thread #x was created
at 0x........: clone (in /...libc...)
+ by 0x........: do_clone.clone.0 (in /...libpthread...)
by 0x........: pthread_create@@GLIBC_2.2.5 (in /...libpthread...)
- by 0x........: pthread_create_WRK (hg_intercepts.c:...)
---Thread-Announcement------------------------------------------
Thread #x was created
at 0x........: clone (in /...libc...)
+ by 0x........: do_clone.clone.0 (in /...libpthread...)
by 0x........: pthread_create@@GLIBC_2.2.5 (in /...libpthread...)
- by 0x........: pthread_create_WRK (hg_intercepts.c:...)
----------------------------------------------------------------
=================================================
./valgrind-new/helgrind/tests/locked_vs_unlocked3.stderr.diff
=================================================
--- locked_vs_unlocked3.stderr.exp 2011-09-19 21:45:18.078700282 -0500
+++ locked_vs_unlocked3.stderr.out 2011-09-19 21:55:56.701600987 -0500
@@ -2,15 +2,15 @@
Thread #x was created
at 0x........: clone (in /...libc...)
+ by 0x........: do_clone.clone.0 (in /...libpthread...)
by 0x........: pthread_create@@GLIBC_2.2.5 (in /...libpthread...)
- by 0x........: pthread_create_WRK (hg_intercepts.c:...)
---Thread-Announcement------------------------------------------
Thread #x was created
at 0x........: clone (in /...libc...)
+ by 0x........: do_clone.clone.0 (in /...libpthread...)
by 0x........: pthread_create@@GLIBC_2.2.5 (in /...libpthread...)
- by 0x........: pthread_create_WRK (hg_intercepts.c:...)
----------------------------------------------------------------
=================================================
./valgrind-new/helgrind/tests/pth_barrier3.stderr.diff
=================================================
--- pth_barrier3.stderr.exp 2011-09-19 21:45:18.082700421 -0500
+++ pth_barrier3.stderr.out 2011-09-19 21:55:57.652633598 -0500
@@ -2,15 +2,15 @@
Thread #x was created
at 0x........: clone (in /...libc...)
+ by 0x........: do_clone.clone.0 (in /...libpthread...)
by 0x........: pthread_create@@GLIBC_2.2.5 (in /...libpthread...)
- by 0x........: pthread_create_WRK (hg_intercepts.c:...)
---Thread-Announcement------------------------------------------
Thread #x was created
at 0x........: clone (in /...libc...)
+ by 0x........: do_clone.clone.0 (in /...libpthread...)
by 0x........: pthread_create@@GLIBC_2.2.5 (in /...libpthread...)
- by 0x........: pthread_create_WRK (hg_intercepts.c:...)
----------------------------------------------------------------
=================================================
./valgrind-new/helgrind/tests/tc06_two_races_xml.stderr.diff
=================================================
--- tc06_two_races_xml.stderr.exp 2011-09-19 21:45:18.095700866 -0500
+++ tc06_two_races_xml.stderr.out 2011-09-19 21:56:05.000885576 -0500
@@ -40,17 +40,16 @@
<ip>0x........</ip>
<obj>...</obj>
<fn>clone</fn>
- <dir>...</dir>
- <file>clone.S</file>
- <line>...</line>
+ </frame>
+ <frame>
+ <ip>0x........</ip>
+ <obj>...</obj>
+ <fn>do_clone.clone.0</fn>
</frame>
<frame>
<ip>0x........</ip>
<obj>...</obj>
<fn>pthread_create@@GLIBC_2.2.5</fn>
- <dir>...</dir>
- <file>createthread.c</file>
- <line>...</line>
</frame>
<frame>
<ip>0x........</ip>
@@ -122,12 +121,6 @@
<ip>0x........</ip>
<obj>...</obj>
<fn>start_thread</fn>
- <dir>...</dir>
- <file>pthread_create.c</file>
- <line>...</line>
- </frame>
- <frame>
- <ip>0x........</ip>
</frame>
</stack>
<auxwhat>Location 0x........ is 0 bytes inside global var "unprot1"</auxwhat>
@@ -177,12 +170,6 @@
<ip>0x........</ip>
<obj>...</obj>
<fn>start_thread</fn>
- <dir>...</dir>
- <file>pthread_create.c</file>
- <line>...</line>
- </frame>
- <frame>
- <ip>0x........</ip>
</frame>
</stack>
<auxwhat>Location 0x........ is 0 bytes inside global var "unprot1"</auxwhat>
@@ -232,12 +219,6 @@
<ip>0x........</ip>
<obj>...</obj>
<fn>start_thread</fn>
- <dir>...</dir>
- <file>pthread_create.c</file>
- <line>...</line>
- </frame>
- <frame>
- <ip>0x........</ip>
</frame>
</stack>
<auxwhat>Location 0x........ is 0 bytes inside global var "unprot2"</auxwhat>
@@ -287,12 +268,6 @@
<ip>0x........</ip>
<obj>...</obj>
<fn>start_thread</fn>
- <dir>...</dir>
- <file>pthread_create.c</file>
- <line>...</line>
- </frame>
- <frame>
- <ip>0x........</ip>
</frame>
</stack>
<auxwhat>Location 0x........ is 0 bytes inside global var "unprot2"</auxwhat>
=================================================
./valgrind-new/memcheck/tests/err_disable3.stderr.diff
=================================================
--- err_disable3.stderr.exp 2011-09-19 21:45:28.038041854 -0500
+++ err_disable3.stderr.out 2011-09-19 21:52:06.428704509 -0500
@@ -11,8 +11,7 @@
Invalid read of size 1
at 0x........: err (err_disable3.c:25)
by 0x........: child_fn (err_disable3.c:31)
- by 0x........: start_thread (pthread_create.c:300)
- by 0x........: ???
+ by 0x........: start_thread (in /lib64/libpthread-2.11.3.so)
Address 0x........ is 5 bytes inside a block of size 10 free'd
at 0x........: free (vg_replace_malloc.c:...)
by 0x........: main (err_disable3.c:42)
=================================================
./valgrind-new/memcheck/tests/err_disable4.stderr.diff
=================================================
--- err_disable4.stderr.exp 2011-09-19 21:45:28.009040859 -0500
+++ err_disable4.stderr.out 2011-09-19 21:52:07.833752693 -0500
@@ -1503,1001 +1503,7 @@
at 0x........: err (err_disable4.c:41)
by 0x........: child_fn_2 (err_disable4.c:55)
by 0x........: start_thread (in /...libpthread...)
- by 0x........: ???
Address 0x........ is 5 bytes inside a block of size 10 free'd
at 0x........: free (vg_replace_malloc.c:...)
by 0x........: main (err_disable4.c:68)
-Thread x:
-Invalid read of size 1
- at 0x........: err (err_disable4.c:41)
- by 0x........: child_fn_2 (err_disable4.c:55)
- by 0x........: start_thread (in /...libpthread...)
- by 0x........: ???
- Address 0x........ is 5 bytes inside a block of size 10 free'd
- at 0x........: free (vg_replace_malloc.c:...)
- by 0x........: main (err_disable4.c:68)
-
-Thread x:
-Invalid read of size 1
- at 0x........: err (err_disable4.c:41)
- by 0x........: child_fn_2 (err_disable4.c:55)
- by 0x........: start_thread (in /...libpthread...)
- by 0x........: ???
- Address 0x........ is 5 bytes inside a block of size 10 free'd
- at 0x........: free (vg_replace_malloc.c:...)
- by 0x........: main (err_disable4.c:68)
-
-Thread x:
-Invalid read of size 1
- at 0x........: err (err_disable4.c:41)
- by 0x........: child_fn_2 (err_disable4.c:55)
- by 0x........: start_thread (in /...libpthread...)
- by 0x........: ???
- Address 0x........ is 5 bytes inside a block of size 10 free'd
- at 0x........: free (vg_replace_malloc.c:...)
- by 0x........: main (err_disable4.c:68)
-
-Thread x:
-Invalid read of size 1
- at 0x........: err (err_disable4.c:41)
- by 0x........: child_fn_2 (err_disable4.c:55)
- by 0x........: start_thread (in /...libpthread...)
- by 0x........: ???
- Address 0x........ is 5 bytes inside a block of size 10 free'd
- at 0x........: free (vg_replace_malloc.c:...)
- by 0x........: main (err_disable4.c:68)
-
-Thread x:
-Invalid read of size 1
- at 0x........: err (err_disable4.c:41)
- by 0x........: child_fn_2 (err_disable4.c:55)
- by 0x........: start_thread (in /...libpthread...)
- by 0x........: ???
- Address 0x........ is 5 bytes inside a block of size 10 free'd
- at 0x........: free (vg_replace_malloc.c:...)
- by 0x........: main (err_disable4.c:68)
-
-Thread x:
-Invalid read of size 1
- at 0x........: err (err_disable4.c:41)
- by 0x........: child_fn_2 (err_disable4.c:55)
- by 0x........: start_thread (in /...libpthread...)
- by 0x........: ???
- Address 0x........ is 5 bytes inside a block of size 10 free'd
- at 0x........: free (vg_replace_malloc.c:...)
- by 0x........: main (err_disable4.c:68)
-
-Thread x:
-Invalid read of size 1
- at 0x........: err (err_disable4.c:41)
- by 0x........: child_fn_2 (err_disable4.c:55)
- by 0x........: start_thread (in /...libpthread...)
- by 0x........: ???
- Address 0x........ is 5 bytes inside a block of size 10 free'd
- at 0x........: free (vg_replace_malloc.c:...)
- by 0x........: main (err_disable4.c:68)
-
-Thread x:
-Invalid read of size 1
- at 0x........: err (err_disable4.c:41)
- by 0x........: child_fn_2 (err_disable4.c:55)
- by 0x........: start_thread (in /...libpthread...)
- by 0x........: ???
- Address 0x........ is 5 bytes inside a block of size 10 free'd
- at 0x........: free (vg_replace_malloc.c:...)
- by 0x........: main (err_disable4.c:68)
-
-Thread x:
-Invalid read of size 1
- at 0x........: err (err_disable4.c:41)
- by 0x........: child_fn_2 (err_disable4.c:55)
- by 0x........: start_thread (in /...libpthread...)
- by 0x........: ???
- Address 0x........ is 5 bytes inside a block of size 10 free'd
- at 0x........: free (vg_replace_malloc.c:...)
- by 0x........: main (err_disable4.c:68)
<truncated beyond 100 lines>
=================================================
./valgrind-new/memcheck/tests/linux/stack_switch.stderr.diff
=================================================
--- stack_switch.stderr.exp 2011-09-19 21:45:26.642994009 -0500
+++ stack_switch.stderr.out 2011-09-19 21:52:23.569292308 -0500
@@ -0,0 +1,3 @@
+Syscall param clone(child_tidptr) contains uninitialised byte(s)
+ ...
+
=================================================
./valgrind-new/memcheck/tests/origin5-bz2.stderr.diff-glibc212-s390x
=================================================
--- origin5-bz2.stderr.exp-glibc212-s390x 2011-09-19 21:45:28.052042334 -0500
+++ origin5-bz2.stderr.out 2011-09-19 21:52:46.755087408 -0500
@@ -72,17 +72,6 @@
at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
- at 0x........: mainSort (origin5-bz2.c:2859)
- by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
- by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
- by 0x........: handle_compress (origin5-bz2.c:4753)
- by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
- by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
- by 0x........: main (origin5-bz2.c:6484)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
-
-Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2963)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -128,6 +117,12 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6512)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
+ Uninitialised value was created by a heap allocation
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: g_serviceFn (origin5-bz2.c:6429)
+ by 0x........: default_bzalloc (origin5-bz2.c:4470)
+ by 0x........: BZ2_decompress (origin5-bz2.c:1578)
+ by 0x........: BZ2_bzDecompress (origin5-bz2.c:5192)
+ by 0x........: BZ2_bzBuffToBuffDecompress (origin5-bz2.c:5678)
+ by 0x........: main (origin5-bz2.c:6498)
=================================================
./valgrind-new/memcheck/tests/origin5-bz2.stderr.diff-glibc234-s390x
=================================================
--- origin5-bz2.stderr.exp-glibc234-s390x 2011-09-19 21:45:28.023041338 -0500
+++ origin5-bz2.stderr.out 2011-09-19 21:52:46.755087408 -0500
@@ -4,8 +4,7 @@
at 0x........: main (origin5-bz2.c:6479)
Conditional jump or move depends on uninitialised value(s)
- at 0x........: copy_input_until_stop (origin5-bz2.c:4686)
- by 0x........: handle_compress (origin5-bz2.c:4750)
+ at 0x........: handle_compress (origin5-bz2.c:4686)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
@@ -13,8 +12,7 @@
at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
- at 0x........: copy_input_until_stop (origin5-bz2.c:4686)
- by 0x........: handle_compress (origin5-bz2.c:4750)
+ at 0x........: handle_compress (origin5-bz2.c:4686)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
@@ -22,8 +20,7 @@
at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
- at 0x........: copy_input_until_stop (origin5-bz2.c:4686)
- by 0x........: handle_compress (origin5-bz2.c:4750)
+ at 0x........: handle_compress (origin5-bz2.c:4686)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
@@ -120,6 +117,12 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6512)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
+ Uninitialised value was created by a heap allocation
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: g_serviceFn (origin5-bz2.c:6429)
+ by 0x........: default_bzalloc (origin5-bz2.c:4470)
+ by 0x........: BZ2_decompress (origin5-bz2.c:1578)
+ by 0x........: BZ2_bzDecompress (origin5-bz2.c:5192)
+ by 0x........: BZ2_bzBuffToBuffDecompress (origin5-bz2.c:5678)
+ by 0x........: main (origin5-bz2.c:6498)
=================================================
./valgrind-new/memcheck/tests/origin5-bz2.stderr.diff-glibc25-amd64
=================================================
--- origin5-bz2.stderr.exp-glibc25-amd64 2011-09-19 21:45:28.006040757 -0500
+++ origin5-bz2.stderr.out 2011-09-19 21:52:46.755087408 -0500
@@ -117,6 +117,12 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6512)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
+ Uninitialised value was created by a heap allocation
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: g_serviceFn (origin5-bz2.c:6429)
+ by 0x........: default_bzalloc (origin5-bz2.c:4470)
+ by 0x........: BZ2_decompress (origin5-bz2.c:1578)
+ by 0x........: BZ2_bzDecompress (origin5-bz2.c:5192)
+ by 0x........: BZ2_bzBuffToBuffDecompress (origin5-bz2.c:5678)
+ by 0x........: main (origin5-bz2.c:6498)
=================================================
./valgrind-new/memcheck/tests/origin5-bz2.stderr.diff-glibc25-x86
=================================================
--- origin5-bz2.stderr.exp-glibc25-x86 2011-09-19 21:45:28.065042779 -0500
+++ origin5-bz2.stderr.out 2011-09-19 21:52:46.755087408 -0500
@@ -11,7 +11,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: handle_compress (origin5-bz2.c:4686)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
@@ -19,7 +19,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: handle_compress (origin5-bz2.c:4686)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
@@ -27,8 +27,9 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
- at 0x........: BZ2_blockSort (origin5-bz2.c:2820)
+Use of uninitialised value of size 8
+ at 0x........: mainSort (origin5-bz2.c:2820)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -37,8 +38,9 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
- at 0x........: BZ2_blockSort (origin5-bz2.c:2823)
+Use of uninitialised value of size 8
+ at 0x........: mainSort (origin5-bz2.c:2823)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -47,8 +49,9 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
- at 0x........: BZ2_blockSort (origin5-bz2.c:2855)
+Use of uninitialised value of size 8
+ at 0x........: mainSort (origin5-bz2.c:2854)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -57,8 +60,9 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
- at 0x........: BZ2_blockSort (origin5-bz2.c:2859)
+Use of uninitialised value of size 8
+ at 0x........: mainSort (origin5-bz2.c:2858)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -67,8 +71,9 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
- at 0x........: BZ2_blockSort (origin5-bz2.c:2963)
+Use of uninitialised value of size 8
+ at 0x........: mainSort (origin5-bz2.c:2963)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -77,8 +82,9 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
- at 0x........: BZ2_blockSort (origin5-bz2.c:2964)
+Use of uninitialised value of size 8
+ at 0x........: mainSort (origin5-bz2.c:2964)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -87,7 +93,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: fallbackSort (origin5-bz2.c:2269)
by 0x........: BZ2_blockSort (origin5-bz2.c:3116)
<truncated beyond 100 lines>
=================================================
./valgrind-new/memcheck/tests/origin5-bz2.stderr.diff-glibc27-ppc64
=================================================
--- origin5-bz2.stderr.exp-glibc27-ppc64 2011-09-19 21:45:28.003040652 -0500
+++ origin5-bz2.stderr.out 2011-09-19 21:52:46.755087408 -0500
@@ -1,7 +1,7 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6481)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Conditional jump or move depends on uninitialised value(s)
at 0x........: handle_compress (origin5-bz2.c:4686)
@@ -9,7 +9,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: handle_compress (origin5-bz2.c:4686)
@@ -17,7 +17,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: handle_compress (origin5-bz2.c:4686)
@@ -25,7 +25,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2820)
@@ -36,7 +36,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2823)
@@ -47,7 +47,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2854)
@@ -58,7 +58,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2858)
@@ -69,7 +69,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2963)
@@ -80,7 +80,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2964)
@@ -91,7 +91,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: fallbackSort (origin5-bz2.c:2269)
@@ -102,7 +102,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
<truncated beyond 100 lines>
=================================================
./valgrind-old/exp-sgcheck/tests/bad_percentify.stderr.diff-glibc28-amd64
=================================================
--- bad_percentify.stderr.exp-glibc28-amd64 2011-09-19 21:30:30.594266622 -0500
+++ bad_percentify.stderr.out 2011-09-19 21:45:00.353092353 -0500
@@ -16,7 +16,7 @@
by 0x........: myvprintf_str (bad_percentify.c:187)
by 0x........: VG_debugLog_vprintf (bad_percentify.c:479)
by 0x........: vprintf_to_buf (bad_percentify.c:89)
- by 0x........: vprintf_WRK (bad_percentify.c:102)
+ by 0x........: vprintf_WRK (bad_percentify.c:101)
by 0x........: VG_vprintf (bad_percentify.c:115)
by 0x........: VG_printf (bad_percentify.c:124)
by 0x........: VG_print_translation_stats (bad_percentify.c:622)
=================================================
./valgrind-old/gdbserver_tests/mssnapshot.stderrB.diff
=================================================
--- mssnapshot.stderrB.exp 2011-09-19 21:30:13.318674161 -0500
+++ mssnapshot.stderrB.out 2011-09-19 21:37:48.302276299 -0500
@@ -1,5 +1,11 @@
relaying data between gdb and process ....
+Missing separate debuginfo for /lib64/ld-linux-x86-64.so.2
+Try: zypper install -C "debuginfo(build-id)=b1d398a5cb1609e7ac1c51a26588e87fc20f753c"
vgdb-error value changed from 0 to 999999
+Missing separate debuginfo for /lib64/libpthread.so.0
+Try: zypper install -C "debuginfo(build-id)=e23cbc772e670af00bea9874f925e2e61afda713"
+Missing separate debuginfo for /lib64/libc.so.6
+Try: zypper install -C "debuginfo(build-id)=1493bf69b1d671cbad9be1d1b0284fbd9138444b"
general valgrind monitor commands:
help [debug] : monitor command help. With debug: + debugging commands
v.wait [<ms>] : sleep <ms> (default 0) then continue
=================================================
./valgrind-old/helgrind/tests/locked_vs_unlocked1_fwd.stderr.diff
=================================================
--- locked_vs_unlocked1_fwd.stderr.exp 2011-09-19 21:30:11.179600801 -0500
+++ locked_vs_unlocked1_fwd.stderr.out 2011-09-19 21:42:10.839278437 -0500
@@ -2,15 +2,15 @@
Thread #x was created
at 0x........: clone (in /...libc...)
+ by 0x........: do_clone.clone.0 (in /...libpthread...)
by 0x........: pthread_create@@GLIBC_2.2.5 (in /...libpthread...)
- by 0x........: pthread_create_WRK (hg_intercepts.c:...)
---Thread-Announcement------------------------------------------
Thread #x was created
at 0x........: clone (in /...libc...)
+ by 0x........: do_clone.clone.0 (in /...libpthread...)
by 0x........: pthread_create@@GLIBC_2.2.5 (in /...libpthread...)
- by 0x........: pthread_create_WRK (hg_intercepts.c:...)
----------------------------------------------------------------
=================================================
./valgrind-old/helgrind/tests/locked_vs_unlocked1_rev.stderr.diff
=================================================
--- locked_vs_unlocked1_rev.stderr.exp 2011-09-19 21:30:11.186601042 -0500
+++ locked_vs_unlocked1_rev.stderr.out 2011-09-19 21:42:12.162323816 -0500
@@ -2,15 +2,15 @@
Thread #x was created
at 0x........: clone (in /...libc...)
+ by 0x........: do_clone.clone.0 (in /...libpthread...)
by 0x........: pthread_create@@GLIBC_2.2.5 (in /...libpthread...)
- by 0x........: pthread_create_WRK (hg_intercepts.c:...)
---Thread-Announcement------------------------------------------
Thread #x was created
at 0x........: clone (in /...libc...)
+ by 0x........: do_clone.clone.0 (in /...libpthread...)
by 0x........: pthread_create@@GLIBC_2.2.5 (in /...libpthread...)
- by 0x........: pthread_create_WRK (hg_intercepts.c:...)
----------------------------------------------------------------
=================================================
./valgrind-old/helgrind/tests/locked_vs_unlocked2.stderr.diff
=================================================
--- locked_vs_unlocked2.stderr.exp 2011-09-19 21:30:11.185601008 -0500
+++ locked_vs_unlocked2.stderr.out 2011-09-19 21:42:13.480369021 -0500
@@ -2,15 +2,15 @@
Thread #x was created
at 0x........: clone (in /...libc...)
+ by 0x........: do_clone.clone.0 (in /...libpthread...)
by 0x........: pthread_create@@GLIBC_2.2.5 (in /...libpthread...)
- by 0x........: pthread_create_WRK (hg_intercepts.c:...)
---Thread-Announcement------------------------------------------
Thread #x was created
at 0x........: clone (in /...libc...)
+ by 0x........: do_clone.clone.0 (in /...libpthread...)
by 0x........: pthread_create@@GLIBC_2.2.5 (in /...libpthread...)
- by 0x........: pthread_create_WRK (hg_intercepts.c:...)
----------------------------------------------------------------
=================================================
./valgrind-old/helgrind/tests/locked_vs_unlocked3.stderr.diff
=================================================
--- locked_vs_unlocked3.stderr.exp 2011-09-19 21:30:11.170600493 -0500
+++ locked_vs_unlocked3.stderr.out 2011-09-19 21:42:14.799414263 -0500
@@ -2,15 +2,15 @@
Thread #x was created
at 0x........: clone (in /...libc...)
+ by 0x........: do_clone.clone.0 (in /...libpthread...)
by 0x........: pthread_create@@GLIBC_2.2.5 (in /...libpthread...)
- by 0x........: pthread_create_WRK (hg_intercepts.c:...)
---Thread-Announcement------------------------------------------
Thread #x was created
at 0x........: clone (in /...libc...)
+ by 0x........: do_clone.clone.0 (in /...libpthread...)
by 0x........: pthread_create@@GLIBC_2.2.5 (in /...libpthread...)
- by 0x........: pthread_create_WRK (hg_intercepts.c:...)
----------------------------------------------------------------
=================================================
./valgrind-old/helgrind/tests/pth_barrier3.stderr.diff
=================================================
--- pth_barrier3.stderr.exp 2011-09-19 21:30:11.174600629 -0500
+++ pth_barrier3.stderr.out 2011-09-19 21:42:15.748446814 -0500
@@ -2,15 +2,15 @@
Thread #x was created
at 0x........: clone (in /...libc...)
+ by 0x........: do_clone.clone.0 (in /...libpthread...)
by 0x........: pthread_create@@GLIBC_2.2.5 (in /...libpthread...)
- by 0x........: pthread_create_WRK (hg_intercepts.c:...)
---Thread-Announcement------------------------------------------
Thread #x was created
at 0x........: clone (in /...libc...)
+ by 0x........: do_clone.clone.0 (in /...libpthread...)
by 0x........: pthread_create@@GLIBC_2.2.5 (in /...libpthread...)
- by 0x........: pthread_create_WRK (hg_intercepts.c:...)
----------------------------------------------------------------
=================================================
./valgrind-old/helgrind/tests/tc06_two_races_xml.stderr.diff
=================================================
--- tc06_two_races_xml.stderr.exp 2011-09-19 21:30:11.187601076 -0500
+++ tc06_two_races_xml.stderr.out 2011-09-19 21:42:22.991695245 -0500
@@ -40,17 +40,16 @@
<ip>0x........</ip>
<obj>...</obj>
<fn>clone</fn>
- <dir>...</dir>
- <file>clone.S</file>
- <line>...</line>
+ </frame>
+ <frame>
+ <ip>0x........</ip>
+ <obj>...</obj>
+ <fn>do_clone.clone.0</fn>
</frame>
<frame>
<ip>0x........</ip>
<obj>...</obj>
<fn>pthread_create@@GLIBC_2.2.5</fn>
- <dir>...</dir>
- <file>createthread.c</file>
- <line>...</line>
</frame>
<frame>
<ip>0x........</ip>
@@ -122,12 +121,6 @@
<ip>0x........</ip>
<obj>...</obj>
<fn>start_thread</fn>
- <dir>...</dir>
- <file>pthread_create.c</file>
- <line>...</line>
- </frame>
- <frame>
- <ip>0x........</ip>
</frame>
</stack>
<auxwhat>Location 0x........ is 0 bytes inside global var "unprot1"</auxwhat>
@@ -177,12 +170,6 @@
<ip>0x........</ip>
<obj>...</obj>
<fn>start_thread</fn>
- <dir>...</dir>
- <file>pthread_create.c</file>
- <line>...</line>
- </frame>
- <frame>
- <ip>0x........</ip>
</frame>
</stack>
<auxwhat>Location 0x........ is 0 bytes inside global var "unprot1"</auxwhat>
@@ -232,12 +219,6 @@
<ip>0x........</ip>
<obj>...</obj>
<fn>start_thread</fn>
- <dir>...</dir>
- <file>pthread_create.c</file>
- <line>...</line>
- </frame>
- <frame>
- <ip>0x........</ip>
</frame>
</stack>
<auxwhat>Location 0x........ is 0 bytes inside global var "unprot2"</auxwhat>
@@ -287,12 +268,6 @@
<ip>0x........</ip>
<obj>...</obj>
<fn>start_thread</fn>
- <dir>...</dir>
- <file>pthread_create.c</file>
- <line>...</line>
- </frame>
- <frame>
- <ip>0x........</ip>
</frame>
</stack>
<auxwhat>Location 0x........ is 0 bytes inside global var "unprot2"</auxwhat>
=================================================
./valgrind-old/memcheck/tests/err_disable3.stderr.diff
=================================================
--- err_disable3.stderr.exp 2011-09-19 21:30:17.861829967 -0500
+++ err_disable3.stderr.out 2011-09-19 21:38:26.781595690 -0500
@@ -11,8 +11,7 @@
Invalid read of size 1
at 0x........: err (err_disable3.c:25)
by 0x........: child_fn (err_disable3.c:31)
- by 0x........: start_thread (pthread_create.c:300)
- by 0x........: ???
+ by 0x........: start_thread (in /lib64/libpthread-2.11.3.so)
Address 0x........ is 5 bytes inside a block of size 10 free'd
at 0x........: free (vg_replace_malloc.c:...)
by 0x........: main (err_disable3.c:42)
=================================================
./valgrind-old/memcheck/tests/err_disable4.stderr.diff
=================================================
--- err_disable4.stderr.exp 2011-09-19 21:30:17.832828972 -0500
+++ err_disable4.stderr.out 2011-09-19 21:38:28.198644280 -0500
@@ -1503,1001 +1503,7 @@
at 0x........: err (err_disable4.c:41)
by 0x........: child_fn_2 (err_disable4.c:55)
by 0x........: start_thread (in /...libpthread...)
- by 0x........: ???
Address 0x........ is 5 bytes inside a block of size 10 free'd
at 0x........: free (vg_replace_malloc.c:...)
by 0x........: main (err_disable4.c:68)
-Thread x:
-Invalid read of size 1
- at 0x........: err (err_disable4.c:41)
- by 0x........: child_fn_2 (err_disable4.c:55)
- by 0x........: start_thread (in /...libpthread...)
- by 0x........: ???
- Address 0x........ is 5 bytes inside a block of size 10 free'd
- at 0x........: free (vg_replace_malloc.c:...)
- by 0x........: main (err_disable4.c:68)
-
-Thread x:
-Invalid read of size 1
- at 0x........: err (err_disable4.c:41)
- by 0x........: child_fn_2 (err_disable4.c:55)
- by 0x........: start_thread (in /...libpthread...)
- by 0x........: ???
- Address 0x........ is 5 bytes inside a block of size 10 free'd
- at 0x........: free (vg_replace_malloc.c:...)
- by 0x........: main (err_disable4.c:68)
-
-Thread x:
-Invalid read of size 1
- at 0x........: err (err_disable4.c:41)
- by 0x........: child_fn_2 (err_disable4.c:55)
- by 0x........: start_thread (in /...libpthread...)
- by 0x........: ???
- Address 0x........ is 5 bytes inside a block of size 10 free'd
- at 0x........: free (vg_replace_malloc.c:...)
- by 0x........: main (err_disable4.c:68)
-
-Thread x:
-Invalid read of size 1
- at 0x........: err (err_disable4.c:41)
- by 0x........: child_fn_2 (err_disable4.c:55)
- by 0x........: start_thread (in /...libpthread...)
- by 0x........: ???
- Address 0x........ is 5 bytes inside a block of size 10 free'd
- at 0x........: free (vg_replace_malloc.c:...)
- by 0x........: main (err_disable4.c:68)
-
-Thread x:
-Invalid read of size 1
- at 0x........: err (err_disable4.c:41)
- by 0x........: child_fn_2 (err_disable4.c:55)
- by 0x........: start_thread (in /...libpthread...)
- by 0x........: ???
- Address 0x........ is 5 bytes inside a block of size 10 free'd
- at 0x........: free (vg_replace_malloc.c:...)
- by 0x........: main (err_disable4.c:68)
-
-Thread x:
-Invalid read of size 1
- at 0x........: err (err_disable4.c:41)
- by 0x........: child_fn_2 (err_disable4.c:55)
- by 0x........: start_thread (in /...libpthread...)
- by 0x........: ???
- Address 0x........ is 5 bytes inside a block of size 10 free'd
- at 0x........: free (vg_replace_malloc.c:...)
- by 0x........: main (err_disable4.c:68)
-
-Thread x:
-Invalid read of size 1
- at 0x........: err (err_disable4.c:41)
- by 0x........: child_fn_2 (err_disable4.c:55)
- by 0x........: start_thread (in /...libpthread...)
- by 0x........: ???
- Address 0x........ is 5 bytes inside a block of size 10 free'd
- at 0x........: free (vg_replace_malloc.c:...)
- by 0x........: main (err_disable4.c:68)
-
-Thread x:
-Invalid read of size 1
- at 0x........: err (err_disable4.c:41)
- by 0x........: child_fn_2 (err_disable4.c:55)
- by 0x........: start_thread (in /...libpthread...)
- by 0x........: ???
- Address 0x........ is 5 bytes inside a block of size 10 free'd
- at 0x........: free (vg_replace_malloc.c:...)
- by 0x........: main (err_disable4.c:68)
-
-Thread x:
-Invalid read of size 1
- at 0x........: err (err_disable4.c:41)
- by 0x........: child_fn_2 (err_disable4.c:55)
- by 0x........: start_thread (in /...libpthread...)
- by 0x........: ???
- Address 0x........ is 5 bytes inside a block of size 10 free'd
- at 0x........: free (vg_replace_malloc.c:...)
- by 0x........: main (err_disable4.c:68)
<truncated beyond 100 lines>
=================================================
./valgrind-old/memcheck/tests/linux/stack_switch.stderr.diff
=================================================
--- stack_switch.stderr.exp 2011-09-19 21:30:16.956798930 -0500
+++ stack_switch.stderr.out 2011-09-19 21:38:44.086189030 -0500
@@ -0,0 +1,3 @@
+Syscall param clone(child_tidptr) contains uninitialised byte(s)
+ ...
+
=================================================
./valgrind-old/memcheck/tests/origin5-bz2.stderr.diff-glibc212-s390x
=================================================
--- origin5-bz2.stderr.exp-glibc212-s390x 2011-09-19 21:30:17.875830448 -0500
+++ origin5-bz2.stderr.out 2011-09-19 21:39:06.904971432 -0500
@@ -72,17 +72,6 @@
at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
- at 0x........: mainSort (origin5-bz2.c:2859)
- by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
- by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
- by 0x........: handle_compress (origin5-bz2.c:4753)
- by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
- by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
- by 0x........: main (origin5-bz2.c:6484)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
-
-Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2963)
by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
@@ -128,6 +117,12 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6512)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
+ Uninitialised value was created by a heap allocation
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: g_serviceFn (origin5-bz2.c:6429)
+ by 0x........: default_bzalloc (origin5-bz2.c:4470)
+ by 0x........: BZ2_decompress (origin5-bz2.c:1578)
+ by 0x........: BZ2_bzDecompress (origin5-bz2.c:5192)
+ by 0x........: BZ2_bzBuffToBuffDecompress (origin5-bz2.c:5678)
+ by 0x........: main (origin5-bz2.c:6498)
=================================================
./valgrind-old/memcheck/tests/origin5-bz2.stderr.diff-glibc234-s390x
=================================================
--- origin5-bz2.stderr.exp-glibc234-s390x 2011-09-19 21:30:17.845829417 -0500
+++ origin5-bz2.stderr.out 2011-09-19 21:39:06.904971432 -0500
@@ -4,8 +4,7 @@
at 0x........: main (origin5-bz2.c:6479)
Conditional jump or move depends on uninitialised value(s)
- at 0x........: copy_input_until_stop (origin5-bz2.c:4686)
- by 0x........: handle_compress (origin5-bz2.c:4750)
+ at 0x........: handle_compress (origin5-bz2.c:4686)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
@@ -13,8 +12,7 @@
at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
- at 0x........: copy_input_until_stop (origin5-bz2.c:4686)
- by 0x........: handle_compress (origin5-bz2.c:4750)
+ at 0x........: handle_compress (origin5-bz2.c:4686)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
@@ -22,8 +20,7 @@
at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
- at 0x........: copy_input_until_stop (origin5-bz2.c:4686)
- by 0x........: handle_compress (origin5-bz2.c:4750)
+ at 0x........: handle_compress (origin5-bz2.c:4686)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
@@ -120,6 +117,12 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6512)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
+ Uninitialised value was created by a heap allocation
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: g_serviceFn (origin5-bz2.c:6429)
+ by 0x........: default_bzalloc (origin5-bz2.c:4470)
+ by 0x........: BZ2_decompress (origin5-bz2.c:1578)
+ by 0x........: BZ2_bzDecompress (origin5-bz2.c:5192)
+ by 0x........: BZ2_bzBuffToBuffDecompress (origin5-bz2.c:5678)
+ by 0x........: main (origin5-bz2.c:6498)
=================================================
./valgrind-old/memcheck/tests/origin5-bz2.stderr.diff-glibc25-amd64
=================================================
--- origin5-bz2.stderr.exp-glibc25-amd64 2011-09-19 21:30:17.828828836 -0500
+++ origin5-bz2.stderr.out 2011-09-19 21:39:06.904971432 -0500
@@ -117,6 +117,12 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6512)
- Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6479)
+ Uninitialised value was created by a heap allocation
+ at 0x........: malloc (vg_replace_malloc.c:...)
+ by 0x........: g_serviceFn (origin5-bz2.c:6429)
+ by 0x........: default_bzalloc (origin5-bz2.c:4470)
+ by 0x........: BZ2_decompress (origin5-bz2.c:1578)
+ by 0x........: BZ2_bzDecompress (origin5-bz2.c:5192)
+ by 0x........: BZ2_bzBuffToBuffDecompress (origin5-bz2.c:5678)
+ by 0x........: main (origin5-bz2.c:6498)
=================================================
./valgrind-old/memcheck/tests/origin5-bz2.stderr.diff-glibc25-x86
=================================================
--- origin5-bz2.stderr.exp-glibc25-x86 2011-09-19 21:30:17.888830893 -0500
+++ origin5-bz2.stderr.out 2011-09-19 21:39:06.904971432 -0500
@@ -11,7 +11,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: handle_compress (origin5-bz2.c:4686)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
@@ -19,7 +19,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: handle_compress (origin5-bz2.c:4686)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
@@ -27,8 +27,9 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
- at 0x........: BZ2_blockSort (origin5-bz2.c:2820)
+Use of uninitialised value of size 8
+ at 0x........: mainSort (origin5-bz2.c:2820)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -37,8 +38,9 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
- at 0x........: BZ2_blockSort (origin5-bz2.c:2823)
+Use of uninitialised value of size 8
+ at 0x........: mainSort (origin5-bz2.c:2823)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -47,8 +49,9 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
- at 0x........: BZ2_blockSort (origin5-bz2.c:2855)
+Use of uninitialised value of size 8
+ at 0x........: mainSort (origin5-bz2.c:2854)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -57,8 +60,9 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
- at 0x........: BZ2_blockSort (origin5-bz2.c:2859)
+Use of uninitialised value of size 8
+ at 0x........: mainSort (origin5-bz2.c:2858)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -67,8 +71,9 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
- at 0x........: BZ2_blockSort (origin5-bz2.c:2963)
+Use of uninitialised value of size 8
+ at 0x........: mainSort (origin5-bz2.c:2963)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -77,8 +82,9 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
- at 0x........: BZ2_blockSort (origin5-bz2.c:2964)
+Use of uninitialised value of size 8
+ at 0x........: mainSort (origin5-bz2.c:2964)
+ by 0x........: BZ2_blockSort (origin5-bz2.c:3105)
by 0x........: BZ2_compressBlock (origin5-bz2.c:4034)
by 0x........: handle_compress (origin5-bz2.c:4753)
by 0x........: BZ2_bzCompress (origin5-bz2.c:4822)
@@ -87,7 +93,7 @@
Uninitialised value was created by a client request
at 0x........: main (origin5-bz2.c:6479)
-Use of uninitialised value of size 4
+Use of uninitialised value of size 8
at 0x........: fallbackSort (origin5-bz2.c:2269)
by 0x........: BZ2_blockSort (origin5-bz2.c:3116)
<truncated beyond 100 lines>
=================================================
./valgrind-old/memcheck/tests/origin5-bz2.stderr.diff-glibc27-ppc64
=================================================
--- origin5-bz2.stderr.exp-glibc27-ppc64 2011-09-19 21:30:17.826828768 -0500
+++ origin5-bz2.stderr.out 2011-09-19 21:39:06.904971432 -0500
@@ -1,7 +1,7 @@
Conditional jump or move depends on uninitialised value(s)
at 0x........: main (origin5-bz2.c:6481)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Conditional jump or move depends on uninitialised value(s)
at 0x........: handle_compress (origin5-bz2.c:4686)
@@ -9,7 +9,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: handle_compress (origin5-bz2.c:4686)
@@ -17,7 +17,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: handle_compress (origin5-bz2.c:4686)
@@ -25,7 +25,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2820)
@@ -36,7 +36,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2823)
@@ -47,7 +47,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2854)
@@ -58,7 +58,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2858)
@@ -69,7 +69,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2963)
@@ -80,7 +80,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: mainSort (origin5-bz2.c:2964)
@@ -91,7 +91,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
at 0x........: fallbackSort (origin5-bz2.c:2269)
@@ -102,7 +102,7 @@
by 0x........: BZ2_bzBuffToBuffCompress (origin5-bz2.c:5630)
by 0x........: main (origin5-bz2.c:6484)
Uninitialised value was created by a client request
- at 0x........: main (origin5-bz2.c:6481)
+ at 0x........: main (origin5-bz2.c:6479)
Use of uninitialised value of size 8
<truncated beyond 100 lines>
|
|
From: Tom H. <th...@cy...> - 2011-09-20 02:54:03
|
Nightly build on bristol ( x86_64, Fedora 11 ) Started at 2011-09-20 03:30:42 BST Ended at 2011-09-20 03:53:42 BST 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 == 574 tests, 10 stderr failures, 4 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/err_disable3 (stderr) memcheck/tests/err_disable4 (stderr) memcheck/tests/linux/stack_switch (stderr) memcheck/tests/long_namespace_xml (stderr) none/tests/amd64/bug132918 (stdout) none/tests/amd64/fxtract (stdout) none/tests/amd64/sse4-64 (stdout) none/tests/x86/fxtract (stdout) helgrind/tests/locked_vs_unlocked1_fwd (stderr) helgrind/tests/locked_vs_unlocked1_rev (stderr) helgrind/tests/locked_vs_unlocked2 (stderr) helgrind/tests/locked_vs_unlocked3 (stderr) helgrind/tests/pth_barrier3 (stderr) helgrind/tests/tc06_two_races_xml (stderr) |
|
From: Tom H. <th...@cy...> - 2011-09-20 02:43:45
|
Nightly build on bristol ( x86_64, Fedora 13 ) Started at 2011-09-20 03:21:13 BST Ended at 2011-09-20 03:43:29 BST 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 == 574 tests, 8 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/err_disable3 (stderr) memcheck/tests/linux/stack_switch (stderr) helgrind/tests/locked_vs_unlocked1_fwd (stderr) helgrind/tests/locked_vs_unlocked1_rev (stderr) helgrind/tests/locked_vs_unlocked2 (stderr) helgrind/tests/locked_vs_unlocked3 (stderr) helgrind/tests/pth_barrier3 (stderr) helgrind/tests/tc06_two_races_xml (stderr) |
|
From: Tom H. <th...@cy...> - 2011-09-20 02:35:29
|
Nightly build on bristol ( x86_64, Fedora 14 ) Started at 2011-09-20 03:11:05 BST Ended at 2011-09-20 03:34:21 BST 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 == 588 tests, 11 stderr failures, 0 stdout failures, 9 stderrB failures, 0 stdoutB failures, 0 post failures == gdbserver_tests/mcbreak (stderrB) gdbserver_tests/mcclean_after_fork (stderrB) gdbserver_tests/mcinfcallWSRU (stderrB) gdbserver_tests/mcleak (stderrB) gdbserver_tests/mcmain_pic (stderrB) gdbserver_tests/mcvabits (stderrB) gdbserver_tests/mssnapshot (stderrB) gdbserver_tests/nlpasssigalrm (stderrB) gdbserver_tests/nlsigvgdb (stderrB) memcheck/tests/err_disable3 (stderr) memcheck/tests/err_disable4 (stderr) memcheck/tests/linux/stack_switch (stderr) memcheck/tests/origin5-bz2 (stderr) helgrind/tests/locked_vs_unlocked1_fwd (stderr) helgrind/tests/locked_vs_unlocked1_rev (stderr) helgrind/tests/locked_vs_unlocked2 (stderr) helgrind/tests/locked_vs_unlocked3 (stderr) helgrind/tests/pth_barrier3 (stderr) helgrind/tests/tc06_two_races_xml (stderr) exp-sgcheck/tests/bad_percentify (stderr) |
|
From: Tom H. <th...@cy...> - 2011-09-20 02:28:32
|
Nightly build on bristol ( x86_64, Fedora 15 ) Started at 2011-09-20 03:01:51 BST Ended at 2011-09-20 03:28:10 BST 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 == 588 tests, 13 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/err_disable3 (stderr) memcheck/tests/err_disable4 (stderr) memcheck/tests/origin5-bz2 (stderr) memcheck/tests/overlap (stderr) none/tests/shell (stderr) helgrind/tests/hg05_race2 (stderr) helgrind/tests/locked_vs_unlocked1_fwd (stderr) helgrind/tests/locked_vs_unlocked1_rev (stderr) helgrind/tests/locked_vs_unlocked2 (stderr) helgrind/tests/locked_vs_unlocked3 (stderr) helgrind/tests/pth_barrier3 (stderr) helgrind/tests/tc06_two_races_xml (stderr) exp-sgcheck/tests/bad_percentify (stderr) |