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
(9) |
2
(11) |
3
(3) |
4
(7) |
5
(15) |
|
6
(10) |
7
(9) |
8
(12) |
9
(10) |
10
(6) |
11
(12) |
12
(12) |
|
13
(11) |
14
(14) |
15
(18) |
16
(15) |
17
(19) |
18
(15) |
19
(9) |
|
20
|
21
(5) |
22
(10) |
23
(15) |
24
(18) |
25
(20) |
26
(15) |
|
27
(14) |
28
(11) |
29
(17) |
30
(17) |
31
(23) |
|
|
|
From: <sv...@va...> - 2014-07-14 22:04:25
|
Author: philippe
Date: Mon Jul 14 22:04:17 2014
New Revision: 14160
Log:
Small fixes in 'getting started' section of user manual
* Mention --read-inline-info=yes as an alternative to compile without inlining.
* Mention that stabs debuginfo reader is not working anymore since 3.9.0
Modified:
trunk/docs/xml/manual-core.xml
Modified: trunk/docs/xml/manual-core.xml
==============================================================================
--- trunk/docs/xml/manual-core.xml (original)
+++ trunk/docs/xml/manual-core.xml Mon Jul 14 22:04:17 2014
@@ -108,7 +108,11 @@
don't have to do this, but doing so helps Valgrind produce more accurate
and less confusing error reports. Chances are you're set up like this
already, if you intended to debug your program with GNU GDB, or some
-other debugger.</para>
+other debugger. Alternatively, the Valgrind option
+<option>--read-inline-info=yes</option> instructs Valgrind to read
+the debug information describing inlining information. With this,
+function call chain will be properly shown, even when your application
+is compiled with inlining. </para>
<para>If you are planning to use Memcheck: On rare
occasions, compiler optimisations (at <option>-O2</option>
@@ -129,12 +133,9 @@
unaffected by optimisation level, and for profiling tools like Cachegrind it
is better to compile your program at its normal optimisation level.</para>
-<para>Valgrind understands both the older "stabs" debugging format, used
-by GCC versions prior to 3.1, and the newer DWARF2/3/4 formats
-used by GCC
-3.1 and later. We continue to develop our debug-info readers,
-although the majority of effort will naturally enough go into the newer
-DWARF readers.</para>
+<para>Valgrind understands the DWARF2/3/4 formats used by GCC 3.1 and
+later. The reader for "stabs" debugging format (used by GCC versions
+prior to 3.1) has been disabled in Valgrind 3.9.0.</para>
<para>When you're ready to roll, run Valgrind as described above.
Note that you should run the real
|
|
From: <sv...@va...> - 2014-07-14 21:39:17
|
Author: philippe
Date: Mon Jul 14 21:39:11 2014
New Revision: 14159
Log:
Slightly refined the NEWS entry for silly/fishy args
Modified:
trunk/NEWS
Modified: trunk/NEWS
==============================================================================
--- trunk/NEWS (original)
+++ trunk/NEWS Mon Jul 14 21:39:11 2014
@@ -72,7 +72,8 @@
* The C++ demangler has been updated for better C++11 support.
* Error messages about fishy arguments (formerly known as silly arguments)
- now include a back-trace to aid debugging.
+ are output like other errors (e.g. they can be suppressed) and now include a
+ backtrace to aid debugging.
* Reduction of memory used by Valgrind to read and store the debug information.
|
|
From: <sv...@va...> - 2014-07-14 21:21:07
|
Author: philippe
Date: Mon Jul 14 21:20:57 2014
New Revision: 14158
Log:
This patch decreases significantly the memory needed to store the lineloc info.
On a big executable, the trunk needs:
dinfo: 134873088/71438336 max/curr mmap'd, 134607808/66717872 max/curr
With the patch, we have:
dinfo: 99065856/56836096 max/curr mmap'd, 97883776/51663656 max/curr
So, peak dinfo memory decreases by about 36Mb, and final by 15Mb.
(for info, valgrind 3.9.0 uses
dinfo: 158941184/109666304 max/curr mmap'd, 156775944/107590656 max/curr
So, compared to 3.9.0, dinfo peak decreases by about 40%, and the final
memory is divided by more than 2).
The memory decrease is obtained by:
* using a dedup pool to store filename/dirname pair for the loctab source/line
information.
As typically, there is not a lot of such pairs, typically a UShort is
good enough to identify a fn/dn pair in a dedup pool.
To avoid losing memory due to alignment, the fndn indexes are stored
in a "parallel" array to the DiLoc loctab array, with entries having
1, or 2 or 4 bytes according to the nr of fn/dn pairs in the dedup pool.
See priv_storage.h comments for details.
(there was a extensible WordArray local implementation in readdwarf.c.
As with this change, we use an xarray, the local implementation was
removed).
* the memory needed for --read-inline-info is slightly decreased (-2Mb)
by removing the (unused) dirname from the DiInlLoc struct.
Handling dirname for inlined function caller implies to rework
the dwarf3 parser read_filename_table common to the var and inlinfo parser.
Waiting for this to be done, the dirname component is removed from DiInlLoc.
* the stabs reader (readstabs.c) is broken since 3.9.0.
For this change, the code has been updated to make it compile with the new
DiLoc/FnDn dedup pool. As the code is completely broken, a vg_assert(0)
has been put at the begin of the stabs reader.
* the pdb reader (readpdb.c) has been trivially updated and should still work.
It has not been tested (how do we test this ?).
A follow-up patch will be done to avoid doing too many calls to
ML_(addFnDn) : instead of having one call per ML_(addLineInfo), one
should have a single call done when reading the filename table.
This has also be tested in an outer/inner setup, to verify no
memory leak/bugs.
Modified:
trunk/NEWS
trunk/coregrind/m_debuginfo/debuginfo.c
trunk/coregrind/m_debuginfo/priv_storage.h
trunk/coregrind/m_debuginfo/readdwarf.c
trunk/coregrind/m_debuginfo/readdwarf3.c
trunk/coregrind/m_debuginfo/readelf.c
trunk/coregrind/m_debuginfo/readpdb.c
trunk/coregrind/m_debuginfo/readstabs.c
trunk/coregrind/m_debuginfo/storage.c
Modified: trunk/NEWS
==============================================================================
--- trunk/NEWS (original)
+++ trunk/NEWS Mon Jul 14 21:20:57 2014
@@ -74,6 +74,8 @@
* Error messages about fishy arguments (formerly known as silly arguments)
now include a back-trace to aid debugging.
+* Reduction of memory used by Valgrind to read and store the debug information.
+
* ==================== FIXED BUGS ====================
The following bugs have been fixed or resolved. Note that "n-i-bz"
Modified: trunk/coregrind/m_debuginfo/debuginfo.c
==============================================================================
--- trunk/coregrind/m_debuginfo/debuginfo.c (original)
+++ trunk/coregrind/m_debuginfo/debuginfo.c Mon Jul 14 21:20:57 2014
@@ -217,6 +217,7 @@
if (di->fsm.filename) ML_(dinfo_free)(di->fsm.filename);
if (di->soname) ML_(dinfo_free)(di->soname);
if (di->loctab) ML_(dinfo_free)(di->loctab);
+ if (di->loctab_fndn_ix) ML_(dinfo_free)(di->loctab_fndn_ix);
if (di->inltab) ML_(dinfo_free)(di->inltab);
if (di->cfsi_base) ML_(dinfo_free)(di->cfsi_base);
if (di->cfsi_m_ix) ML_(dinfo_free)(di->cfsi_m_ix);
@@ -240,6 +241,8 @@
if (di->strpool)
VG_(deleteDedupPA) (di->strpool);
+ if (di->fndnpool)
+ VG_(deleteDedupPA) (di->fndnpool);
/* Delete the two admin arrays. These lists exist primarily so
that we can visit each object exactly once when we need to
@@ -1909,10 +1912,19 @@
{
DebugInfo* si;
Word locno;
+ UInt fndn_ix;
+ FnDn* fndn;
+
search_all_loctabs ( a, &si, &locno );
if (si == NULL)
return False;
- VG_(strncpy_safely)(filename, si->loctab[locno].filename, n_filename);
+ fndn_ix = ML_(fndn_ix) (si, locno);
+ if (fndn_ix == 0)
+ VG_(strncpy_safely)(filename, "???", n_filename);
+ else {
+ fndn = VG_(indexEltNumber) (si->fndnpool, fndn_ix);
+ VG_(strncpy_safely)(filename, fndn->filename, n_filename);
+ }
return True;
}
@@ -1940,6 +1952,8 @@
{
DebugInfo* si;
Word locno;
+ UInt fndn_ix;
+ FnDn* fndn = NULL;
vg_assert( (dirname == NULL && dirname_available == NULL)
||
@@ -1954,17 +1968,22 @@
return False;
}
- VG_(strncpy_safely)(filename, si->loctab[locno].filename, n_filename);
+ fndn_ix = ML_(fndn_ix)(si, locno);
+ if (fndn_ix == 0)
+ VG_(strncpy_safely)(filename, "???", n_filename);
+ else {
+ fndn = VG_(indexEltNumber) (si->fndnpool, fndn_ix);
+ VG_(strncpy_safely)(filename, fndn->filename, n_filename);
+ }
*lineno = si->loctab[locno].lineno;
if (dirname) {
/* caller wants directory info too .. */
vg_assert(n_dirname > 0);
- if (si->loctab[locno].dirname) {
+ if (fndn_ix != 0 && fndn->dirname) {
/* .. and we have some */
*dirname_available = True;
- VG_(strncpy_safely)(dirname, si->loctab[locno].dirname,
- n_dirname);
+ VG_(strncpy_safely)(dirname, fndn->dirname, n_dirname);
} else {
/* .. but we don't have any */
*dirname_available = False;
@@ -2156,8 +2175,7 @@
VG_(snprintf) (buf_srcloc, BUF_LEN, "%s", cur_inl->filename);
lineno = cur_inl->lineno;
- know_dirinfo = False; //INLINED TBD
-
+ know_dirinfo = False;
know_srcloc = True;
}
Modified: trunk/coregrind/m_debuginfo/priv_storage.h
==============================================================================
--- trunk/coregrind/m_debuginfo/priv_storage.h (original)
+++ trunk/coregrind/m_debuginfo/priv_storage.h Mon Jul 14 21:20:57 2014
@@ -103,6 +103,15 @@
*/
#define OVERFLOW_DIFFERENCE (LINENO_OVERFLOW - 5000)
+/* Filename and Dirname pair. FnDn are stored in di->fndnpool
+ and are allocated using VG_(allocFixedEltDedupPA).
+ The filename/dirname strings are themselves stored in di->strpool. */
+typedef
+ struct {
+ const HChar* filename; /* source filename */
+ const HChar* dirname; /* source directory name */
+ } FnDn;
+
/* A structure to hold addr-to-source info for a single line. There
can be a lot of these, hence the dense packing. */
typedef
@@ -112,10 +121,6 @@
/* Word 2 */
UShort size:LOC_SIZE_BITS; /* # bytes; we catch overflows of this */
UInt lineno:LINENO_BITS; /* source line number, or zero */
- /* Word 3 */
- const HChar* filename; /* source filename */
- /* Word 4 */
- const HChar* dirname; /* source directory name */
}
DiLoc;
@@ -123,7 +128,10 @@
#define MAX_LEVEL ((1 << LEVEL_BITS) - 1)
/* A structure to hold addr-to-inlined fn info. There
- can be a lot of these, hence the dense packing. */
+ can be a lot of these, hence the dense packing.
+ Only caller source filename and lineno are stored.
+ Handling dirname should be done using fndn_ix technique
+ similar to ML_(addLineInfo). */
typedef
struct {
/* Word 1 */
@@ -135,8 +143,6 @@
/* Word 4 */
const HChar* filename; /* caller source filename */
/* Word 5 */
- const HChar* dirname; /* caller source directory name */
- /* Word 6 */
UInt lineno:LINENO_BITS; /* caller line number */
UShort level:LEVEL_BITS; /* level of inlining */
}
@@ -812,8 +818,14 @@
DiSym* symtab;
UWord symtab_used;
UWord symtab_size;
- /* An expandable array of locations. */
+ /* Two expandable arrays, storing locations and their filename/dirname. */
DiLoc* loctab;
+ UInt sizeof_fndn_ix; /* Similar use as sizeof_cfsi_m_ix below. */
+ void* loctab_fndn_ix; /* loctab[i] filename/dirname is identified by
+ loctab_fnindex_ix[i] (an index in di->fndnpool)
+ 0 means filename/dirname unknown.
+ The void* is an UChar* or UShort* or UInt*
+ depending on sizeof_fndn_ix. */
UWord loctab_used;
UWord loctab_size;
/* An expandable array of inlined fn info.
@@ -838,16 +850,16 @@
For each base in cfsi_base, an index into cfsi_m_pool is stored
in cfsi_m_ix array. The size of cfsi_m_ix is equal to
- cfsi_size*sizeof_ix. The used portion of cfsi_m_ix is
- cfsi_m_ix[0] till cfsi_m_ix[(cfsi_used-1)*sizeof_ix].
+ cfsi_size*sizeof_cfsi_m_ix. The used portion of cfsi_m_ix is
+ cfsi_m_ix[0] till cfsi_m_ix[(cfsi_used-1)*sizeof_cfsi_m_ix].
cfsi_base[i] gives the base address of a code range covered by
some CF Info. The corresponding CF Info is identified by an index
in cfsi_m_pool. The DiCfSI_m index in cfsi_m_pool corresponding to
cfsi_base[i] is given
- by ((UChar*) cfsi_m_ix)[i] if sizeof_ix == 1
- by ((UShort*)cfsi_m_ix)[i] if sizeof_ix == 2
- by ((UInt*) cfsi_m_ix)[i] if sizeof_ix == 4.
+ by ((UChar*) cfsi_m_ix)[i] if sizeof_cfsi_m_ix == 1
+ by ((UShort*)cfsi_m_ix)[i] if sizeof_cfsi_m_ix == 2
+ by ((UInt*) cfsi_m_ix)[i] if sizeof_cfsi_m_ix == 4.
The end of the code range starting at cfsi_base[i] is given by
cfsi_base[i+1]-1 (or cfsi_maxavma for cfsi_base[cfsi_used-1]).
@@ -875,8 +887,8 @@
records require any expression nodes, they are stored in
cfsi_exprs. */
Addr* cfsi_base;
- UInt sizeof_ix; /* size in byte of the indexes stored in cfsi_m_ix. */
- void* cfsi_m_ix; /* Each index occupies sizeof_ix bytes. */
+ UInt sizeof_cfsi_m_ix; /* size in byte of indexes stored in cfsi_m_ix. */
+ UInt* cfsi_m_ix; /* Each index occupies sizeof_cfsi_m_ix bytes. */
DiCfSI* cfsi_rd; /* Only used during reading, NULL once info is read. */
@@ -900,6 +912,10 @@
into this are stable (the memory is not reallocated). */
DedupPoolAlloc *strpool;
+ /* Pool of FnDn -- filename and dirname.
+ Elements in the pool are allocated using VG_(allocFixedEltDedupPA). */
+ DedupPoolAlloc *fndnpool;
+
/* Variable scope information, as harvested from Dwarf3 files.
In short it's an
@@ -953,18 +969,30 @@
to ensure that's OK. */
extern void ML_(addSym) ( struct _DebugInfo* di, DiSym* sym );
-/* Add a line-number record to a DebugInfo. */
+/* Add a filename/dirname pair to a DebugInfo and returns the index
+ in the fndnpool fixed pool. */
+extern UInt ML_(addFnDn) (struct _DebugInfo* di,
+ const HChar* filename,
+ const HChar* dirname); /* NULL is allowable */
+
+/* Returns the fndn_ix for the LineInfo locno in di->loctab.
+ 0 if filename/dirname are unknown. */
+extern UInt ML_(fndn_ix) (struct _DebugInfo* di, Word locno);
+
+/* Add a line-number record to a DebugInfo.
+ fndn_ix is an index in di->fndnpool, allocated using ML_(addFnDn).
+ Give a 0 index for a unknown filename/dirname pair. */
extern
void ML_(addLineInfo) ( struct _DebugInfo* di,
- const HChar* filename,
- const HChar* dirname, /* NULL is allowable */
+ UInt fndn_ix,
Addr this, Addr next, Int lineno, Int entry);
/* Add a call inlined record to a DebugInfo.
A call to the below means that inlinedfn code has been
inlined, resulting in code from [addr_lo, addr_hi[.
Note that addr_hi is excluded, i.e. is not part of the inlined code.
- The call that caused this inlining is in filename/dirname/lineno
+ The call that caused this inlining is in filename/lineno (dirname
+ is not recorded).
In case of nested inlining, a small level indicates the call
is closer to main that a call with a higher level. */
extern
@@ -972,7 +1000,6 @@
Addr addr_lo, Addr addr_hi,
const HChar* inlinedfn,
const HChar* filename,
- const HChar* dirname, /* NULL is allowable */
Int lineno, UShort level);
/* Add a CFI summary record. The supplied DiCfSI_m is copied. */
Modified: trunk/coregrind/m_debuginfo/readdwarf.c
==============================================================================
--- trunk/coregrind/m_debuginfo/readdwarf.c (original)
+++ trunk/coregrind/m_debuginfo/readdwarf.c Mon Jul 14 21:20:57 2014
@@ -54,81 +54,30 @@
/*--- ---*/
/*------------------------------------------------------------*/
-/*------------------------------------------------------------*/
-/*--- Expanding arrays of words, for holding file name and ---*/
-/*--- directory name arrays. ---*/
-/*------------------------------------------------------------*/
-
-typedef
- struct {
- Word* tab;
- UInt tab_size;
- UInt tab_used;
- }
- WordArray;
-
-static void init_WordArray ( WordArray* wa )
+/* The below "safe_*ix" functions allow to resist to malformed dwarf info:
+ if dwarf info contains wrong file or dirname indexes, these are (silently!)
+ ignored. */
+
+/* if xa_ix is a valid index in fndn_ix_xa,
+ return the element (i.e. the UInt indexing in fndnpool).
+ If xa_ix is invalid, return 0 (i.e. the "null" element in fndnpool). */
+static UInt safe_fndn_ix (XArray* fndn_ix_xa, Int xa_ix)
{
- wa->tab = NULL;
- wa->tab_size = 0;
- wa->tab_used = 0;
-}
-
-static void free_WordArray ( WordArray* wa )
-{
- if (wa->tab) {
- vg_assert(wa->tab_size > 0);
- ML_(dinfo_free)(wa->tab);
- }
- init_WordArray(wa);
-}
-
-static void addto_WordArray ( WordArray* wa, Word w )
-{
- UInt new_size, i;
- Word* new_tab;
-
- if (0) VG_(printf)("<<ADD %p (new sz = %d) >>\n",
- (HChar*)w, wa->tab_used+1);
-
- if (wa->tab_used < wa->tab_size) {
- /* fine */
- } else {
- /* expand array */
- if (0) VG_(printf)("EXPAND ARRAY from %d\n", wa->tab_size);
- vg_assert(wa->tab_used == wa->tab_size);
- vg_assert( (wa->tab_size == 0 && wa->tab == NULL)
- || (wa->tab_size != 0 && wa->tab != NULL) );
- new_size = wa->tab_size == 0 ? 8 : 2 * wa->tab_size;
- new_tab = ML_(dinfo_zalloc)("di.aWA.1", new_size * sizeof(Word));
- vg_assert(new_tab != NULL);
- for (i = 0; i < wa->tab_used; i++)
- new_tab[i] = wa->tab[i];
- wa->tab_size = new_size;
- if (wa->tab)
- ML_(dinfo_free)(wa->tab);
- wa->tab = new_tab;
- }
-
- vg_assert(wa->tab_used < wa->tab_size);
- vg_assert(wa->tab_size > 0);
- wa->tab[wa->tab_used] = w;
- wa->tab_used++;
+ if (xa_ix < 0) return 0;
+ if (xa_ix >= VG_(sizeXA) (fndn_ix_xa)) return 0;
+ return *(UInt*)VG_(indexXA) ( fndn_ix_xa, xa_ix );
}
-static Word index_WordArray ( /*OUT*/Bool* inRange, WordArray* wa, Int i )
+/* if xa_ix is a valid index in dirname_xa,
+ return the element (i.e. the HChar*).
+ If xa_ix is invalid, return NULL. */
+static HChar* safe_dirname_ix (XArray* dirname_xa, Int xa_ix)
{
- vg_assert(inRange);
- if (i >= 0 && i < wa->tab_used) {
- *inRange = True;
- return wa->tab[i];
- } else {
- *inRange = False;
- return 0;
- }
+ if (xa_ix < 0) return NULL;
+ if (xa_ix >= VG_(sizeXA) (dirname_xa)) return NULL;
+ return *(HChar**)VG_(indexXA) ( dirname_xa, xa_ix );
}
-
/*------------------------------------------------------------*/
/*--- Read DWARF2 format line number info. ---*/
/*------------------------------------------------------------*/
@@ -296,26 +245,6 @@
state_machine_regs.end_sequence = 0;
}
-/* Look up a directory name, or return NULL if unknown. */
-static
-HChar* lookupDir ( Int filename_index,
- WordArray* fnidx2dir,
- WordArray* dirnames )
-{
- Bool inRange;
- Word diridx, dirname;
-
- diridx = index_WordArray( &inRange, fnidx2dir, filename_index );
- if (!inRange) goto bad;
-
- dirname = index_WordArray( &inRange, dirnames, (Int)diridx );
- if (!inRange) goto bad;
-
- return (HChar*)dirname;
- bad:
- return NULL;
-}
-
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
@@ -323,9 +252,7 @@
accordingly. */
static
void process_extended_line_op( struct _DebugInfo* di,
- WordArray* filenames,
- WordArray* dirnames,
- WordArray* fnidx2dir,
+ XArray* fndn_ix_xa,
DiCursor* data, Int is_stmt)
{
UInt len = step_leb128U(data);
@@ -349,17 +276,10 @@
if (state_machine_regs.is_stmt) {
if (state_machine_regs.last_address) {
- Bool inRange = False;
- const HChar* filename
- = (HChar*)index_WordArray( &inRange, filenames,
- state_machine_regs.last_file);
- if (!inRange || !filename)
- filename = "???";
ML_(addLineInfo) (
- di,
- filename,
- lookupDir( state_machine_regs.last_file,
- fnidx2dir, dirnames ),
+ di,
+ safe_fndn_ix (fndn_ix_xa,
+ state_machine_regs.last_file),
di->text_debug_bias + state_machine_regs.last_address,
di->text_debug_bias + state_machine_regs.address,
state_machine_regs.last_line, 0
@@ -383,7 +303,8 @@
case DW_LNE_define_file: {
HChar* name = ML_(cur_step_strdup)(data, "di.pelo.1");
- addto_WordArray( filenames, (Word)ML_(addStr)(di,name,-1) );
+ UInt fndn_ix = ML_(addFnDn) (di, name, NULL);
+ VG_(addToXA) (fndn_ix_xa, &fndn_ix);
ML_(dinfo_free)(name);
(void)step_leb128U(data); // ignored: dir index
(void)step_leb128U(data); // ignored: mod time
@@ -425,55 +346,48 @@
Int i;
DebugLineInfo info;
Bool is64;
- WordArray filenames;
- WordArray dirnames;
- WordArray fnidx2dir;
+ XArray* fndn_ix_xa; /* xarray of UInt fndn_ix */
+ UInt fndn_ix;
+ XArray* dirname_xa; /* xarray of HChar* dirname */
+ HChar* dirname;
DiCursor external = theBlock;
DiCursor data = theBlock;
- /* filenames is an array of file names harvested from the DWARF2
- info. Entry [0] is NULL and is never referred to by the state
- machine.
+ /* fndn_ix_xa is an xarray of fndn_ix (indexes in di->fndnpool) which
+ are build from file names harvested from the DWARF2
+ info. Entry [0] is the "null" pool index and is never referred to
+ by the state machine.
- Similarly, dirnames is an array of directory names. Entry [0]
+ Similarly, dirname_xa is an xarray of directory names. Entry [0]
is also NULL and denotes "we don't know what the path is", since
that is different from "the path is the empty string". Unlike
- the file name table, the state machine does refer to entry [0],
+ the fndn_ix_xa table, the state machine does refer to entry [0],
which basically means "." ("the current directory of the
compilation", whatever that means, according to the DWARF3
spec.)
-
- fnidx2dir is an array of indexes into the dirnames table.
- (confused yet?) filenames[] and fnidx2dir[] are indexed
- together. That is, for some index i in the filename table, then
-
- the filename is filenames[i]
- the directory is dirnames[ fnidx2dir[i] ] */
+ */
/* Fails due to gcc padding ...
vg_assert(sizeof(DWARF2_External_LineInfo)
== sizeof(DWARF2_Internal_LineInfo));
*/
- init_WordArray(&filenames);
- init_WordArray(&dirnames);
- init_WordArray(&fnidx2dir);
+ dirname_xa = VG_(newXA) (ML_(dinfo_zalloc), "di.rd2l.1", ML_(dinfo_free),
+ sizeof(HChar*) );
+ fndn_ix_xa = VG_(newXA) (ML_(dinfo_zalloc), "di.rd2l.2", ML_(dinfo_free),
+ sizeof(UInt) );
/* DWARF2 starts numbering filename entries at 1, so we need to
- add a dummy zeroth entry to the table. The zeroth dirnames
- entry denotes 'current directory of compilation' so we might
- as well make the fnidx2dir zeroth entry denote that.
- */
- addto_WordArray( &filenames, (Word)NULL );
+ add a dummy zeroth entry to the table. */
+ fndn_ix = 0; // 0 is the "null" index in a fixed pool.
+ VG_(addToXA) (fndn_ix_xa, &fndn_ix);
if (ML_(cur_is_valid)(ui->compdir))
- addto_WordArray( &dirnames,
- (Word)ML_(addStrFromCursor)(di, ui->compdir) );
+ dirname = ML_(addStrFromCursor)(di, ui->compdir);
else
- addto_WordArray( &dirnames, (Word)ML_(addStr)(di, ".", -1) );
-
- addto_WordArray( &fnidx2dir, (Word)0 ); /* compilation dir */
+ dirname = ML_(addStr)(di, ".", -1);
+ VG_(addToXA) (dirname_xa, &dirname);
info.li_length = step_initial_length_field( &external, &is64 );
if (di->ddump_line)
@@ -629,12 +543,14 @@
VG_(strcat)(buf, "/");
VG_(strcat)(buf, data_str);
vg_assert(VG_(strlen)(buf) < NBUF);
- addto_WordArray( &dirnames, (Word)ML_(addStr)(di,buf,-1) );
+ dirname = ML_(addStr)(di,buf,-1);
+ VG_(addToXA) (dirname_xa, &dirname);
if (0) VG_(printf)("rel path %s\n", buf);
ML_(dinfo_free)(compdir_str);
} else {
/* just use 'data'. */
- addto_WordArray( &dirnames, (Word)ML_(addStr)(di,data_str,-1) );
+ dirname = ML_(addStr)(di,data_str,-1);
+ VG_(addToXA) (dirname_xa, &dirname);
if (0) VG_(printf)("abs path %s\n", data_str);
}
@@ -655,8 +571,7 @@
data = ML_(cur_plus)(data, 1);
/* Read the contents of the File Name table. This produces a bunch
- of file names, and for each, an index to the corresponding
- directory name entry. */
+ of fndn_ix in fndn_ix_xa. */
if (di->ddump_line) {
VG_(printf)(" The File Name Table:\n");
VG_(printf)(" Entry Dir Time Size Name\n");
@@ -668,8 +583,10 @@
Int diridx = step_leb128U(&data);
Int uu_time = step_leb128U(&data); /* unused */
Int uu_size = step_leb128U(&data); /* unused */
- addto_WordArray( &filenames, (Word)ML_(addStr)(di,name,-1) );
- addto_WordArray( &fnidx2dir, (Word)diridx );
+
+ dirname = safe_dirname_ix( dirname_xa, diridx );
+ fndn_ix = ML_(addFnDn) (di, name, dirname);
+ VG_(addToXA) (fndn_ix_xa, &fndn_ix);
if (0) VG_(printf)("file %s diridx %d\n", name, diridx );
if (di->ddump_line)
VG_(printf)(" %d\t%d\t%d\t%d\t%s\n",
@@ -720,17 +637,10 @@
if (state_machine_regs.is_stmt) {
/* only add a statement if there was a previous boundary */
if (state_machine_regs.last_address) {
- Bool inRange = False;
- const HChar* filename
- = (HChar*)index_WordArray( &inRange, &filenames,
- state_machine_regs.last_file);
- if (!inRange || !filename)
- filename = "???";
ML_(addLineInfo)(
- di,
- filename,
- lookupDir( state_machine_regs.last_file,
- &fnidx2dir, &dirnames ),
+ di,
+ safe_fndn_ix (fndn_ix_xa,
+ state_machine_regs.last_file),
di->text_debug_bias + state_machine_regs.last_address,
di->text_debug_bias + state_machine_regs.address,
state_machine_regs.last_line,
@@ -748,7 +658,7 @@
switch (op_code) {
case DW_LNS_extended_op:
process_extended_line_op (
- di, &filenames, &dirnames, &fnidx2dir,
+ di, fndn_ix_xa,
&data, info.li_default_is_stmt);
break;
@@ -758,17 +668,10 @@
if (state_machine_regs.is_stmt) {
/* only add a statement if there was a previous boundary */
if (state_machine_regs.last_address) {
- Bool inRange = False;
- const HChar* filename
- = (HChar*)index_WordArray( &inRange, &filenames,
- state_machine_regs.last_file );
- if (!inRange || !filename)
- filename = "???";
ML_(addLineInfo)(
- di,
- filename,
- lookupDir( state_machine_regs.last_file,
- &fnidx2dir, &dirnames ),
+ di,
+ safe_fndn_ix (fndn_ix_xa,
+ state_machine_regs.last_file),
di->text_debug_bias + state_machine_regs.last_address,
di->text_debug_bias + state_machine_regs.address,
state_machine_regs.last_line,
@@ -887,9 +790,8 @@
VG_(printf)("\n");
out:
- free_WordArray(&filenames);
- free_WordArray(&dirnames);
- free_WordArray(&fnidx2dir);
+ VG_(deleteXA)(dirname_xa);
+ VG_(deleteXA)(fndn_ix_xa);
}
////////////////////////////////////////////////////////////////////
Modified: trunk/coregrind/m_debuginfo/readdwarf3.c
==============================================================================
--- trunk/coregrind/m_debuginfo/readdwarf3.c (original)
+++ trunk/coregrind/m_debuginfo/readdwarf3.c Mon Jul 14 21:20:57 2014
@@ -2600,7 +2600,6 @@
ip_lo, ip_hi1,
get_inlFnName (inlinedfn_abstract_origin, cc, td3),
caller_filename,
- NULL, // INLINED TBD dirname ?????
caller_lineno, level);
}
} else if (have_range) {
@@ -2622,7 +2621,6 @@
// included.
inlfnname,
caller_filename,
- NULL, // INLINED TBD dirname ?????
caller_lineno, level);
}
VG_(deleteXA)( ranges );
Modified: trunk/coregrind/m_debuginfo/readelf.c
==============================================================================
--- trunk/coregrind/m_debuginfo/readelf.c (original)
+++ trunk/coregrind/m_debuginfo/readelf.c Mon Jul 14 21:20:57 2014
@@ -1453,6 +1453,7 @@
vg_assert(!di->cfsi_rd);
vg_assert(!di->cfsi_exprs);
vg_assert(!di->strpool);
+ vg_assert(!di->fndnpool);
vg_assert(!di->soname);
{
Modified: trunk/coregrind/m_debuginfo/readpdb.c
==============================================================================
--- trunk/coregrind/m_debuginfo/readpdb.c (original)
+++ trunk/coregrind/m_debuginfo/readpdb.c Mon Jul 14 21:20:57 2014
@@ -1630,7 +1630,11 @@
((const unsigned short *)(pnt2.ui + linecount))[j],
startaddr, endaddr );
ML_(addLineInfo)(
- di, fnmstr, dirstr, startaddr, endaddr,
+ di,
+ ML_(addFnDn) (di, // fndnTBD
+ fnmstr,
+ dirstr),
+ startaddr, endaddr,
((const unsigned short *)(pnt2.ui + linecount))[j], j );
n_lines_read++;
}
@@ -1767,7 +1771,10 @@
if (debug)
VG_(printf)("%s line %d: %08lx to %08lx\n",
pfx, lbh->l[i].lineno ^ 0x80000000, svma_s, svma_e);
- ML_(addLineInfo)( di, filename, dirname,
+ ML_(addLineInfo)( di,
+ ML_(addFnDn) (di, // fndnTBD
+ filename,
+ dirname),
bias + svma_s,
bias + svma_e + 1,
lbh->l[i].lineno ^ 0x80000000, 0 );
@@ -1781,7 +1788,10 @@
VG_(printf)("%s line %d: %08lx to %08lx\n",
pfx, lbh->l[ lbh->nlines-1 ].lineno ^ 0x80000000,
svma_s, svma_e);
- ML_(addLineInfo)( di, filename, dirname,
+ ML_(addLineInfo)( di,
+ ML_(addFnDn) (di, // fndnTBD
+ filename,
+ dirname),
bias + svma_s,
bias + svma_e + 1,
lbh->l[lbh->nlines-1].lineno ^ 0x80000000, 0 );
Modified: trunk/coregrind/m_debuginfo/readstabs.c
==============================================================================
--- trunk/coregrind/m_debuginfo/readstabs.c (original)
+++ trunk/coregrind/m_debuginfo/readstabs.c Mon Jul 14 21:20:57 2014
@@ -124,6 +124,12 @@
Bool first; /* first line in function */
} line = { 0, 0, 0, 0, False };
+ vg_assert (0);
+ /* Stab reader broken since debuginfo server (revision 13440)
+ See #if 0 for call to ML_(read_debuginfo_stabs) in readelf.c.
+ If ever it is repaired, file.name above should be replaced by a fndn_ix
+ for performance reasons. */
+
/* Ok. It all looks plausible. Go on and read debug data.
stab kinds: 100 N_SO a source file name
68 N_SLINE a source line number
@@ -270,7 +276,11 @@
if (line.addr != 0) {
/* finish off previous line */
- ML_(addLineInfo)(di, file.name, NULL, line.addr,
+ ML_(addLineInfo)(di,
+ ML_(addFnDn) (di,
+ file.name,
+ NULL),
+ line.addr,
addr, line.no + line.ovf * LINENO_OVERFLOW, i);
}
@@ -294,7 +304,11 @@
if (line.addr != 0) {
/* there was a previous */
- ML_(addLineInfo)(di, file.name, NULL, line.addr,
+ ML_(addLineInfo)(di,
+ ML_(addFnDn)(di,
+ file.name,
+ NULL),
+ line.addr,
addr, line.no + line.ovf * LINENO_OVERFLOW, i);
}
@@ -353,7 +367,11 @@
}
if (line.addr) {
- ML_(addLineInfo)(di, file.name, NULL, line.addr,
+ ML_(addLineInfo)(di,
+ ML_(addFnDn) (di,
+ file.name,
+ NULL),
+ line.addr,
addr, line.no + line.ovf * LINENO_OVERFLOW, i);
line.addr = 0;
}
Modified: trunk/coregrind/m_debuginfo/storage.c
==============================================================================
--- trunk/coregrind/m_debuginfo/storage.c (original)
+++ trunk/coregrind/m_debuginfo/storage.c Mon Jul 14 21:20:57 2014
@@ -252,6 +252,24 @@
return p;
}
+UInt ML_(addFnDn) (struct _DebugInfo* di,
+ const HChar* filename,
+ const HChar* dirname)
+{
+ FnDn fndn;
+ UInt fndn_ix;
+
+ if (UNLIKELY(di->fndnpool == NULL))
+ di->fndnpool = VG_(newDedupPA)(500,
+ vg_alignof(FnDn),
+ ML_(dinfo_zalloc),
+ "di.storage.addFnDn.1",
+ ML_(dinfo_free));
+ fndn.filename = ML_(addStr)(di, filename, -1);
+ fndn.dirname = dirname ? ML_(addStr)(di, dirname, -1) : NULL;
+ fndn_ix = VG_(allocFixedEltDedupPA) (di->fndnpool, sizeof(FnDn), &fndn);
+ return fndn_ix;
+}
/* Add a string to the string table of a DebugInfo, by copying the
string from the given DiCursor. Measures the length of the string
@@ -301,32 +319,101 @@
vg_assert(di->symtab_used <= di->symtab_size);
}
+UInt ML_(fndn_ix) (struct _DebugInfo* di, Word locno)
+{
+ UInt fndn_ix;
+
+ switch(di->sizeof_fndn_ix) {
+ case 1: fndn_ix = ((UChar*) di->loctab_fndn_ix)[locno]; break;
+ case 2: fndn_ix = ((UShort*) di->loctab_fndn_ix)[locno]; break;
+ case 4: fndn_ix = ((UInt*) di->loctab_fndn_ix)[locno]; break;
+ default: vg_assert(0);
+ }
+ return fndn_ix;
+}
+
+static inline void set_fndn_ix (struct _DebugInfo* di, Word locno, UInt fndn_ix)
+{
+ Word i;
+
+ switch(di->sizeof_fndn_ix) {
+ case 1:
+ if (LIKELY (fndn_ix <= 255)) {
+ ((UChar*) di->loctab_fndn_ix)[locno] = fndn_ix;
+ return;
+ }
+ {
+ UChar* old = (UChar*) di->loctab_fndn_ix;
+ UShort* new = ML_(dinfo_zalloc)( "di.storage.sfix.1",
+ di->loctab_size * 2 );
+ for (i = 0; i < di->loctab_used; i++)
+ new[i] = old[i];
+ ML_(dinfo_free)(old);
+ di->sizeof_fndn_ix = 2;
+ di->loctab_fndn_ix = new;
+ }
+ // Fallthrough
+
+ case 2:
+ if (LIKELY (fndn_ix <= 65535)) {
+ ((UShort*) di->loctab_fndn_ix)[locno] = fndn_ix;
+ return;
+ }
+ {
+ UShort* old = (UShort*) di->loctab_fndn_ix;
+ UInt* new = ML_(dinfo_zalloc)( "di.storage.sfix.2",
+ di->loctab_size * 4 );
+ for (i = 0; i < di->loctab_used; i++)
+ new[i] = old[i];
+ ML_(dinfo_free)(old);
+ di->sizeof_fndn_ix = 4;
+ di->loctab_fndn_ix = new;
+ }
+ // Fallthrough
+
+ case 4:
+ ((UInt*) di->loctab_fndn_ix)[locno] = fndn_ix;
+ return;
+
+ default: vg_assert(0);
+ }
+}
/* Add a location to the location table.
*/
-static void addLoc ( struct _DebugInfo* di, DiLoc* loc )
+static void addLoc ( struct _DebugInfo* di, DiLoc* loc, UInt fndn_ix )
{
- UInt new_sz, i;
- DiLoc* new_tab;
-
/* Zero-sized locs should have been ignored earlier */
vg_assert(loc->size > 0);
if (di->loctab_used == di->loctab_size) {
+ UInt new_sz;
+ DiLoc* new_loctab;
+ void* new_loctab_fndn_ix;
+
new_sz = 2 * di->loctab_size;
if (new_sz == 0) new_sz = 500;
- new_tab = ML_(dinfo_zalloc)( "di.storage.addLoc.1",
- new_sz * sizeof(DiLoc) );
+ new_loctab = ML_(dinfo_zalloc)( "di.storage.addLoc.1",
+ new_sz * sizeof(DiLoc) );
+ if (di->sizeof_fndn_ix == 0)
+ di->sizeof_fndn_ix = 1; // To start with.
+ new_loctab_fndn_ix = ML_(dinfo_zalloc)( "di.storage.addLoc.2",
+ new_sz * di->sizeof_fndn_ix );
if (di->loctab != NULL) {
- for (i = 0; i < di->loctab_used; i++)
- new_tab[i] = di->loctab[i];
+ VG_(memcpy)(new_loctab, di->loctab,
+ di->loctab_used * sizeof(DiLoc));
+ VG_(memcpy)(new_loctab_fndn_ix, di->loctab_fndn_ix,
+ di->loctab_used * di->sizeof_fndn_ix);
ML_(dinfo_free)(di->loctab);
+ ML_(dinfo_free)(di->loctab_fndn_ix);
}
- di->loctab = new_tab;
+ di->loctab = new_loctab;
+ di->loctab_fndn_ix = new_loctab_fndn_ix;
di->loctab_size = new_sz;
}
di->loctab[di->loctab_used] = *loc;
+ set_fndn_ix (di, di->loctab_used, fndn_ix);
di->loctab_used++;
vg_assert(di->loctab_used <= di->loctab_size);
}
@@ -341,6 +428,7 @@
if (new_sz == di->loctab_size) return;
vg_assert(new_sz < di->loctab_size);
ML_(dinfo_shrink_block)( di->loctab, new_sz * sizeof(DiLoc));
+ ML_(dinfo_shrink_block)( di->loctab_fndn_ix, new_sz * di->sizeof_fndn_ix);
di->loctab_size = new_sz;
}
@@ -348,8 +436,7 @@
/* Top-level place to call to add a source-location mapping entry.
*/
void ML_(addLineInfo) ( struct _DebugInfo* di,
- const HChar* filename,
- const HChar* dirname, /* NULL == directory is unknown */
+ UInt fndn_ix,
Addr this,
Addr next,
Int lineno,
@@ -363,10 +450,13 @@
/* Ignore zero-sized locs */
if (this == next) return;
- if (debug)
- VG_(printf)( " src %s %s line %d %#lx-%#lx\n",
- dirname ? dirname : "(unknown)",
- filename, lineno, this, next );
+ if (debug) {
+ FnDn *fndn = VG_(indexEltNumber) (di->fndnpool, fndn_ix);
+ VG_(printf)( " src ix %u %s %s line %d %#lx-%#lx\n",
+ fndn_ix,
+ fndn->dirname ? fndn->dirname : "(unknown)",
+ fndn->filename, lineno, this, next );
+ }
/* Maximum sanity checking. Some versions of GNU as do a shabby
* job with stabs entries; if anything looks suspicious, revert to
@@ -435,14 +525,12 @@
loc.addr = this;
loc.size = (UShort)size;
loc.lineno = lineno;
- loc.filename = filename;
- loc.dirname = dirname;
if (0) VG_(message)(Vg_DebugMsg,
- "addLoc: addr %#lx, size %lu, line %d, file %s\n",
- this,size,lineno,filename);
+ "addLoc: addr %#lx, size %lu, line %d, fndn_ix %u\n",
+ this,size,lineno,fndn_ix);
- addLoc ( di, &loc );
+ addLoc ( di, &loc, fndn_ix );
}
/* Add an inlined call info to the inlined call table.
@@ -494,7 +582,6 @@
Addr addr_lo, Addr addr_hi,
const HChar* inlinedfn,
const HChar* filename,
- const HChar* dirname, /* NULL is allowable */
Int lineno, UShort level)
{
DiInlLoc inl;
@@ -532,16 +619,14 @@
inl.inlinedfn = inlinedfn;
// caller:
inl.filename = filename;
- inl.dirname = dirname;
inl.lineno = lineno;
inl.level = level;
if (0) VG_(message)
(Vg_DebugMsg,
"addInlInfo: fn %s inlined as addr_lo %#lx,addr_hi %#lx,"
- "caller %s:%d (dir %s)\n",
- inlinedfn, addr_lo, addr_hi, filename, lineno,
- dirname ? dirname : "???");
+ "caller %s:%d\n",
+ inlinedfn, addr_lo, addr_hi, filename, lineno);
addInl ( di, &inl );
}
@@ -551,7 +636,7 @@
UInt cfsi_m_ix;
vg_assert(pos >= 0 && pos < di->cfsi_used);
- switch (di->sizeof_ix) {
+ switch (di->sizeof_cfsi_m_ix) {
case 1: cfsi_m_ix = ((UChar*) di->cfsi_m_ix)[pos]; break;
case 2: cfsi_m_ix = ((UShort*) di->cfsi_m_ix)[pos]; break;
case 4: cfsi_m_ix = ((UInt*) di->cfsi_m_ix)[pos]; break;
@@ -1743,33 +1828,72 @@
}
-/* Sort the location table by starting address. Mash the table around
- so as to establish the property that addresses are in order and the
- ranges do not overlap. This facilitates using binary search to map
- addresses to locations when we come to query the table.
-*/
-static Int compare_DiLoc ( const void* va, const void* vb )
+static DiLoc* sorting_loctab = NULL;
+static Int compare_DiLoc_via_ix ( const void* va, const void* vb )
{
- const DiLoc* a = va;
- const DiLoc* b = vb;
+ const DiLoc* a = &sorting_loctab[*(UInt*)va];
+ const DiLoc* b = &sorting_loctab[*(UInt*)vb];
if (a->addr < b->addr) return -1;
if (a->addr > b->addr) return 1;
return 0;
}
+static void sort_loctab_and_loctab_fndn_ix (struct _DebugInfo* di )
+{
+ /* We have to sort the array loctab by addr
+ together with its "parallel" array loctab_fndn_ix.
+ We first build sort_ix : an array of indexes in loctab,
+ that we sort by loctab address. Then we can reorder both
+ arrays according to sort_ix. */
+ UInt *sort_ix = ML_(dinfo_zalloc)("di.storage.six",
+ di->loctab_used*sizeof(UInt));
+ Word i, j, k;
+
+ for (i = 0; i < di->loctab_used; i++) sort_ix[i] = i;
+ sorting_loctab = di->loctab;
+ VG_(ssort)(sort_ix, di->loctab_used,
+ sizeof(*sort_ix), compare_DiLoc_via_ix);
+ sorting_loctab = NULL;
+
+ // Permute in place, using the sort_ix.
+ for (i=0; i < di->loctab_used; i++) {
+ DiLoc tmp_diloc;
+ UInt tmp_fndn_ix;
+
+ if (i == sort_ix[i])
+ continue; // i already at the good place
+
+ tmp_diloc = di->loctab[i];
+ tmp_fndn_ix = ML_(fndn_ix)(di, i);
+ j = i;
+ for (;;) {
+ k = sort_ix[j];
+ sort_ix[j] = j;
+ if (k == i)
+ break;
+ di->loctab[j] = di->loctab[k];
+ set_fndn_ix (di, j, ML_(fndn_ix)(di, k));
+ j = k;
+ }
+ di->loctab[j] = tmp_diloc;
+ set_fndn_ix (di, j, tmp_fndn_ix);
+ }
+ ML_(dinfo_free)(sort_ix);
+}
+/* Sort the location table by starting address. Mash the table around
+ so as to establish the property that addresses are in order and the
+ ranges do not overlap. This facilitates using binary search to map
+ addresses to locations when we come to query the table.
+*/
static void canonicaliseLoctab ( struct _DebugInfo* di )
{
Word i, j;
-# define SWAP(ty,aa,bb) \
- do { ty tt = (aa); (aa) = (bb); (bb) = tt; } while (0);
-
if (di->loctab_used == 0)
return;
- /* Sort by start address. */
- VG_(ssort)(di->loctab, di->loctab_used,
- sizeof(*di->loctab), compare_DiLoc);
+ /* sort loctab and loctab_fndn_ix by addr. */
+ sort_loctab_and_loctab_fndn_ix (di);
/* If two adjacent entries overlap, truncate the first. */
for (i = 0; i < ((Word)di->loctab_used)-1; i++) {
@@ -1794,8 +1918,10 @@
j = 0;
for (i = 0; i < (Word)di->loctab_used; i++) {
if (di->loctab[i].size > 0) {
- if (j != i)
+ if (j != i) {
di->loctab[j] = di->loctab[i];
+ set_fndn_ix(di, j, ML_(fndn_ix)(di, i));
+ }
j++;
}
}
@@ -1803,11 +1929,15 @@
/* Ensure relevant postconditions hold. */
for (i = 0; i < ((Word)di->loctab_used)-1; i++) {
- /*
- VG_(printf)("%d (%d) %d 0x%x\n",
- i, di->loctab[i+1].confident,
- di->loctab[i+1].size, di->loctab[i+1].addr );
- */
+ if (0)
+ VG_(printf)("%lu 0x%p lno:%d sz:%d fndn_ix:%d i+1 0x%p\n",
+ i,
+ (void*)di->loctab[i].addr,
+ di->loctab[i].lineno,
+ di->loctab[i].size,
+ ML_(fndn_ix)(di, i),
+ (void*)di->loctab[i+1].addr);
+
/* No zero-sized symbols. */
vg_assert(di->loctab[i].size > 0);
/* In order. */
@@ -1816,7 +1946,6 @@
vg_assert(di->loctab[i].addr + di->loctab[i].size - 1
< di->loctab[i+1].addr);
}
-# undef SWAP
/* Free up unused space at the end of the table. */
shrinkLocTab(di);
@@ -2024,16 +2153,16 @@
sz_cfsi_m_pool = VG_(sizeDedupPA)(di->cfsi_m_pool);
vg_assert (sz_cfsi_m_pool > 0);
if (sz_cfsi_m_pool <= 255)
- di->sizeof_ix = 1;
+ di->sizeof_cfsi_m_ix = 1;
else if (sz_cfsi_m_pool <= 65535)
- di->sizeof_ix = 2;
+ di->sizeof_cfsi_m_ix = 2;
else
- di->sizeof_ix = 4;
+ di->sizeof_cfsi_m_ix = 4;
di->cfsi_base = ML_(dinfo_zalloc)( "di.storage.finCfSI.1",
new_used * sizeof(Addr) );
di->cfsi_m_ix = ML_(dinfo_zalloc)( "di.storage.finCfSI.2",
- new_used * sizeof(UChar)*di->sizeof_ix);
+ new_used * sizeof(UChar)*di->sizeof_cfsi_m_ix);
pos = 0;
f_mergeables = 0;
@@ -2055,7 +2184,7 @@
if (sep > 1) {
f_holes++;
di->cfsi_base[pos] = prev_max + 1;
- switch (di->sizeof_ix) {
+ switch (di->sizeof_cfsi_m_ix) {
case 1: ((UChar*) di->cfsi_m_ix)[pos] = 0; break;
case 2: ((UShort*)di->cfsi_m_ix)[pos] = 0; break;
case 4: ((UInt*) di->cfsi_m_ix)[pos] = 0; break;
@@ -2067,7 +2196,7 @@
// Insert the cfsi entry i.
di->cfsi_base[pos] = di->cfsi_rd[i].base;
- switch (di->sizeof_ix) {
+ switch (di->sizeof_cfsi_m_ix) {
case 1: ((UChar*) di->cfsi_m_ix)[pos] = di->cfsi_rd[i].cfsi_m_ix; break;
case 2: ((UShort*)di->cfsi_m_ix)[pos] = di->cfsi_rd[i].cfsi_m_ix; break;
case 4: ((UInt*) di->cfsi_m_ix)[pos] = di->cfsi_rd[i].cfsi_m_ix; break;
@@ -2097,10 +2226,11 @@
ML_(canonicaliseCFI) ( di );
if (di->cfsi_m_pool)
VG_(freezeDedupPA) (di->cfsi_m_pool, ML_(dinfo_shrink_block));
- /// TBD prepare cfsi_base and cfsi_m_ix
canonicaliseVarInfo ( di );
if (di->strpool)
VG_(freezeDedupPA) (di->strpool, ML_(dinfo_shrink_block));
+ if (di->fndnpool)
+ VG_(freezeDedupPA) (di->fndnpool, ML_(dinfo_shrink_block));
}
|
|
From: <sv...@va...> - 2014-07-14 20:39:34
|
Author: sewardj
Date: Mon Jul 14 20:39:23 2014
New Revision: 2900
Log:
arm64: implement "mrs Xt, cntvct_el0" by pass-through to the host.
Modified:
trunk/priv/guest_arm64_defs.h
trunk/priv/guest_arm64_helpers.c
trunk/priv/guest_arm64_toIR.c
Modified: trunk/priv/guest_arm64_defs.h
==============================================================================
--- trunk/priv/guest_arm64_defs.h (original)
+++ trunk/priv/guest_arm64_defs.h Mon Jul 14 20:39:23 2014
@@ -110,6 +110,11 @@
//ZZ UInt resR1, UInt resR2 );
+/* --- DIRTY HELPERS --- */
+
+extern ULong arm64g_dirtyhelper_MRS_CNTVCT_EL0 ( void );
+
+
/*---------------------------------------------------------*/
/*--- Condition code stuff ---*/
/*---------------------------------------------------------*/
Modified: trunk/priv/guest_arm64_helpers.c
==============================================================================
--- trunk/priv/guest_arm64_helpers.c (original)
+++ trunk/priv/guest_arm64_helpers.c Mon Jul 14 20:39:23 2014
@@ -677,6 +677,21 @@
}
+/* CALLED FROM GENERATED CODE */
+/* DIRTY HELPER (non-referentially-transparent) */
+/* Horrible hack. On non-arm64 platforms, return 0. */
+ULong arm64g_dirtyhelper_MRS_CNTVCT_EL0 ( void )
+{
+# if defined(__aarch64__) && !defined(__arm__)
+ ULong w = 0x5555555555555555ULL; /* overwritten */
+ __asm__ __volatile__("mrs %0, cntvct_el0" : "=r"(w));
+ return w;
+# else
+ return 0ULL;
+# endif
+}
+
+
/*---------------------------------------------------------------*/
/*--- Flag-helpers translation-time function specialisers. ---*/
/*--- These help iropt specialise calls the above run-time ---*/
Modified: trunk/priv/guest_arm64_toIR.c
==============================================================================
--- trunk/priv/guest_arm64_toIR.c (original)
+++ trunk/priv/guest_arm64_toIR.c Mon Jul 14 20:39:23 2014
@@ -5050,7 +5050,7 @@
}
/* ------------------ M{SR,RS} ------------------ */
- /* Only handles the case where the system register is TPIDR_EL0.
+ /* ---- Cases for TPIDR_EL0 ----
0xD51BD0 010 Rt MSR tpidr_el0, rT
0xD53BD0 010 Rt MRS rT, tpidr_el0
*/
@@ -5067,7 +5067,7 @@
}
return True;
}
- /* Cases for FPCR
+ /* ---- Cases for FPCR ----
0xD51B44 000 Rt MSR fpcr, rT
0xD53B44 000 Rt MSR rT, fpcr
*/
@@ -5084,7 +5084,7 @@
}
return True;
}
- /* Cases for FPSR
+ /* ---- Cases for FPSR ----
0xD51B44 001 Rt MSR fpsr, rT
0xD53B44 001 Rt MSR rT, fpsr
The only part of this we model is FPSR.QC. All other bits
@@ -5122,7 +5122,7 @@
}
return True;
}
- /* Cases for NZCV
+ /* ---- Cases for NZCV ----
D51B42 000 Rt MSR nzcv, rT
D53B42 000 Rt MRS rT, nzcv
The only parts of NZCV that actually exist are bits 31:28, which
@@ -5146,7 +5146,7 @@
}
return True;
}
- /* Cases for DCZID_EL0
+ /* ---- Cases for DCZID_EL0 ----
Don't support arbitrary reads and writes to this register. Just
return the value 16, which indicates that the DC ZVA instruction
is not permitted, so we don't have to emulate it.
@@ -5158,7 +5158,7 @@
DIP("mrs %s, dczid_el0 (FAKED)\n", nameIReg64orZR(tt));
return True;
}
- /* Cases for CTR_EL0
+ /* ---- Cases for CTR_EL0 ----
We just handle reads, and make up a value from the D and I line
sizes in the VexArchInfo we are given, and patch in the following
fields that the Foundation model gives ("natively"):
@@ -5184,6 +5184,28 @@
DIP("mrs %s, ctr_el0\n", nameIReg64orZR(tt));
return True;
}
+ /* ---- Cases for CNTVCT_EL0 ----
+ This is a timestamp counter of some sort. Support reads of it only
+ by passing through to the host.
+ D5 3B E0 010 Rt MRS Xt, cntvct_el0
+ */
+ if ((INSN(31,0) & 0xFFFFFFE0) == 0xD53BE040) {
+ UInt tt = INSN(4,0);
+ IRTemp val = newTemp(Ity_I64);
+ IRExpr** args = mkIRExprVec_0();
+ IRDirty* d = unsafeIRDirty_1_N (
+ val,
+ 0/*regparms*/,
+ "arm64g_dirtyhelper_MRS_CNTVCT_EL0",
+ &arm64g_dirtyhelper_MRS_CNTVCT_EL0,
+ args
+ );
+ /* execute the dirty call, dumping the result in val. */
+ stmt( IRStmt_Dirty(d) );
+ putIReg64orZR(tt, mkexpr(val));
+ DIP("mrs %s, cntvct_el0\n", nameIReg64orZR(tt));
+ return True;
+ }
/* ------------------ IC_IVAU ------------------ */
/* D5 0B 75 001 Rt ic ivau, rT
|
|
From: Christian B. <bor...@de...> - 2014-07-14 16:43:56
|
valgrind revision: 14157 VEX revision: 2899 C compiler: gcc (SUSE Linux) 4.3.4 [gcc-4_3-branch revision 152973] GDB: GNU gdb (GDB) SUSE (7.5.1-0.7.29) Assembler: GNU assembler (GNU Binutils; SUSE Linux Enterprise 11) 2.23.1 C library: GNU C Library stable release version 2.11.3 (20110527) uname -mrs: Linux 3.0.101-0.31-default s390x Vendor version: Welcome to SUSE Linux Enterprise Server 11 SP3 (s390x) - Kernel %r (%t). Nightly build on sless390 ( SUSE Linux Enterprise Server 11 SP3 gcc 4.3.4 on z196 (s390x) ) Started at 2014-07-14 03:45:01 CEST Ended at 2014-07-14 06:10:58 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 == 655 tests, 2 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == helgrind/tests/pth_cond_destroy_busy (stderr) helgrind/tests/tc20_verifywrap (stderr) --tools=none,memcheck,callgrind,helgrind,cachegrind,drd,massif --reps=3 --vg=../valgrind-new --vg=../valgrind-old -- Running tests in perf ---------------------------------------------- -- bigcode1 -- bigcode1 valgrind-new:0.22s no: 4.7s (21.4x, -----) me: 5.8s (26.3x, -----) ca:26.3s (119.7x, -----) he: 5.8s (26.4x, -----) ca: 9.1s (41.5x, -----) dr: 4.8s (22.0x, -----) ma: 4.9s (22.4x, -----) bigcode1 valgrind-old:0.22s no: 4.7s (21.4x, 0.0%) me: 5.8s (26.2x, 0.3%) ca:26.3s (119.7x, 0.0%) he: 5.8s (26.3x, 0.2%) ca: 9.1s (41.4x, 0.1%) dr: 4.8s (22.0x, 0.0%) ma: 4.9s (22.4x, 0.0%) -- bigcode2 -- bigcode2 valgrind-new:0.24s no: 7.6s (31.8x, -----) me:12.6s (52.6x, -----) ca:39.5s (164.8x, -----) he:10.8s (45.1x, -----) ca:14.2s (59.2x, -----) dr: 9.0s (37.7x, -----) ma: 8.4s (35.1x, -----) bigcode2 valgrind-old:0.24s no: 7.6s (31.8x, 0.1%) me:12.6s (52.4x, 0.3%) ca:39.5s (164.8x, 0.0%) he:10.8s (45.1x, 0.0%) ca:14.2s (59.1x, 0.1%) dr: 9.0s (37.6x, 0.1%) ma: 8.4s (35.1x, 0.0%) -- bz2 -- bz2 valgrind-new:0.70s no: 5.9s ( 8.5x, -----) me:13.1s (18.7x, -----) ca:30.7s (43.8x, -----) he:19.6s (27.9x, -----) ca:34.4s (49.2x, -----) dr:29.5s (42.1x, -----) ma: 5.2s ( 7.4x, -----) bz2 valgrind-old:0.70s no: 5.9s ( 8.5x, 0.2%) me:13.1s (18.6x, 0.2%) ca:30.7s (43.8x, -0.1%) he:19.6s (27.9x, 0.0%) ca:34.5s (49.2x, -0.1%) dr:29.4s (42.0x, 0.3%) ma: 5.2s ( 7.5x, -0.4%) -- fbench -- fbench valgrind-new:0.41s no: 1.6s ( 3.9x, -----) me: 4.2s (10.2x, -----) ca: 9.3s (22.7x, -----) he: 6.3s (15.3x, -----) ca: 7.2s (17.5x, -----) dr: 5.5s (13.5x, -----) ma: 1.7s ( 4.1x, -----) fbench valgrind-old:0.41s no: 1.6s ( 3.9x, -0.6%) me: 4.2s (10.3x, -0.2%) ca: 9.3s (22.7x, -0.1%) he: 6.3s (15.3x, 0.0%) ca: 7.2s (17.6x, -0.1%) dr: 5.5s (13.5x, 0.0%) ma: 1.7s ( 4.1x, -0.0%) -- ffbench -- ffbench valgrind-new:0.20s no: 1.1s ( 5.5x, -----) me: 3.0s (15.0x, -----) ca: 3.0s (15.1x, -----) he:43.4s (217.0x, -----) ca: 9.6s (48.0x, -----) dr: 6.9s (34.4x, -----) ma: 1.0s ( 4.8x, -----) ffbench valgrind-old:0.20s no: 1.1s ( 5.5x, 0.0%) me: 3.0s (14.9x, 1.0%) ca: 3.0s (15.0x, 1.0%) he:43.3s (216.6x, 0.2%) ca: 9.6s (48.0x, 0.1%) dr: 6.9s (34.4x, 0.1%) ma: 1.0s ( 4.9x, -1.0%) -- heap -- heap valgrind-new:0.22s no: 2.1s ( 9.8x, -----) me: 8.6s (39.3x, -----) ca:13.1s (59.7x, -----) he:12.5s (56.8x, -----) ca:11.4s (51.7x, -----) dr: 7.6s (34.7x, -----) ma: 7.9s (36.1x, -----) heap valgrind-old:0.22s no: 2.1s ( 9.8x, 0.0%) me: 8.5s (38.8x, 1.3%) ca:13.1s (59.6x, 0.2%) he:12.5s (57.0x, -0.2%) ca:11.4s (51.8x, -0.3%) dr: 7.6s (34.7x, 0.0%) ma: 8.0s (36.1x, -0.1%) -- heap_pdb4 -- heap_pdb4 valgrind-new:0.22s no: 2.4s (10.8x, -----) me:12.8s (58.4x, -----) ca:14.2s (64.5x, -----) he:13.9s (63.3x, -----) ca:12.5s (56.7x, -----) dr: 8.6s (39.2x, -----) ma: 8.1s (36.8x, -----) heap_pdb4 valgrind-old:0.22s no: 2.4s (10.8x, -0.4%) me:12.8s (58.4x, -0.1%) ca:14.2s (64.5x, -0.1%) he:13.9s (63.4x, -0.1%) ca:12.4s (56.5x, 0.3%) dr: 8.6s (39.3x, -0.1%) ma: 8.1s (36.8x, -0.1%) -- many-loss-records -- many-loss-records valgrind-new:0.02s no: 0.5s (25.5x, -----) me: 2.1s (103.5x, -----) ca: 1.9s (96.5x, -----) he: 2.1s (107.5x, -----) ca: 1.9s (95.5x, -----) dr: 1.7s (87.0x, -----) ma: 1.6s (82.0x, -----) many-loss-records valgrind-old:0.02s no: 0.5s (25.0x, 2.0%) me: 2.1s (103.0x, 0.5%) ca: 1.9s (96.0x, 0.5%) he: 2.1s (107.5x, 0.0%) ca: 1.9s (95.5x, 0.0%) dr: 1.7s (87.0x, 0.0%) ma: 1.6s (82.0x, 0.0%) -- many-xpts -- many-xpts valgrind-new:0.07s no: 0.7s ( 9.4x, -----) me: 3.1s (44.4x, -----) ca:369.3s (5275.3x, -----) he: 6.5s (93.4x, -----) ca: 2.8s (39.7x, -----) dr: 2.5s (36.0x, -----) ma: 2.6s (36.9x, -----) many-xpts valgrind-old:0.07s no: 0.7s ( 9.4x, 0.0%) me: 3.1s (44.4x, 0.0%) ca:374.3s (5347.7x, -1.4%) he: 6.5s (93.4x, 0.0%) ca: 2.8s (39.9x, -0.4%) dr: 2.5s (36.0x, 0.0%) ma: 2.6s (36.9x, 0.0%) -- sarp -- sarp valgrind-new:0.03s no: 0.6s (20.0x, -----) me: 3.8s (125.0x, -----) ca: 3.1s (105.0x, -----) he:17.7s (591.0x, -----) ca: 2.0s (68.0x, -----) dr: 1.3s (44.3x, -----) ma: 0.5s (16.0x, -----) sarp valgrind-old:0.03s no: 0.6s (20.0x, 0.0%) me: 3.7s (123.7x, 1.1%) ca: 3.1s (105.0x, 0.0%) he:17.5s (584.3x, 1.1%) ca: 2.0s (68.0x, 0.0%) dr: 1.3s (44.3x, 0.0%) ma: 0.5s (15.7x, 2.1%) -- tinycc -- tinycc valgrind-new:0.21s no: 3.1s (14.8x, -----) me:14.4s (68.6x, -----) ca:29.9s (142.6x, -----) he:28.1s (133.6x, -----) ca:21.3s (101.6x, -----) dr:20.6s (98.2x, -----) ma: 4.1s (19.7x, -----) tinycc valgrind-old:0.21s no: 3.1s (15.0x, -1.0%) me:14.5s (68.9x, -0.4%) ca:30.0s (142.8x, -0.1%) he:28.2s (134.1x, -0.4%) ca:21.3s (101.3x, 0.2%) dr:20.6s (98.0x, 0.2%) ma: 4.1s (19.5x, 0.7%) -- Finished tests in perf ---------------------------------------------- == 11 programs, 154 timings ================= real 111m15.492s user 110m9.050s sys 0m55.932s |
|
From: Tom H. <to...@co...> - 2014-07-14 03:22:42
|
valgrind revision: 14157 VEX revision: 2899 C compiler: gcc (GCC) 4.3.0 20080428 (Red Hat 4.3.0-8) GDB: Assembler: GNU assembler version 2.18.50.0.6-2 20080403 C library: GNU C Library stable release version 2.8 uname -mrs: Linux 3.15.3-200.fc20.x86_64 x86_64 Vendor version: Fedora release 9 (Sulphur) Nightly build on bristol ( x86_64, Fedora 9 ) Started at 2014-07-14 03:51:17 BST Ended at 2014-07-14 04:22:22 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 == 658 tests, 1 stderr failure, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/amd64/insn-pcmpistri (stderr) none/tests/amd64/sse4-64 (stdout) |
|
From: Rich C. <rc...@wi...> - 2014-07-14 03:13:22
|
valgrind revision: 14157
VEX revision: 2899
C compiler: gcc (SUSE Linux) 4.7.2 20130108 [gcc-4_7-branch revision 195012]
GDB: GNU gdb (GDB) SUSE (7.5.1-2.1.1)
Assembler: GNU assembler (GNU Binutils; openSUSE 12.3) 2.23.1
C library: GNU C Library (GNU libc) stable release version 2.17 (git c758a6861537)
uname -mrs: Linux 3.7.9-1.1-desktop x86_64
Vendor version: Welcome to openSUSE 12.3 "Dartmouth" Beta 1 - Kernel %r (%t).
Nightly build on ultra ( gcc (SUSE Linux) 4.7.2 20130108 [gcc-4_7-branch revision 195012] Linux 3.7.9-1.1-desktop x86_64 )
Started at 2014-07-13 21:30:02 CDT
Ended at 2014-07-13 22:13:12 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
== 683 tests, 0 stderr failures, 0 stdout failures, 2 stderrB failures, 0 stdoutB failures, 0 post failures ==
gdbserver_tests/hginfo (stderrB)
gdbserver_tests/mssnapshot (stderrB)
=================================================
./valgrind-new/gdbserver_tests/hginfo.stderrB.diff
=================================================
--- hginfo.stderrB.exp 2014-07-13 21:52:03.729697900 -0500
+++ hginfo.stderrB.out 2014-07-13 22:01:54.995032288 -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)=ecb8ef1a6904a2a3ec60a527f415f520c8636158"
vgdb-error value changed from 0 to 999999
+Missing separate debuginfo for /lib64/libpthread.so.0
+Try: zypper install -C "debuginfo(build-id)=ef5f5dbcb2398c608fef7884e1bfb65be3b5f0ef"
+Missing separate debuginfo for /lib64/libc.so.6
+Try: zypper install -C "debuginfo(build-id)=bd1473e8e6a4c10a14731b5be4b35b4e87db2af7"
Lock ga 0x........ {
Address 0x........ is 0 bytes inside data symbol "mx"
kind mbRec
=================================================
./valgrind-new/gdbserver_tests/mssnapshot.stderrB.diff
=================================================
--- mssnapshot.stderrB.exp 2014-07-13 21:52:03.732697795 -0500
+++ mssnapshot.stderrB.out 2014-07-13 22:02:27.685111716 -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)=ecb8ef1a6904a2a3ec60a527f415f520c8636158"
vgdb-error value changed from 0 to 999999
+Missing separate debuginfo for /lib64/libpthread.so.0
+Try: zypper install -C "debuginfo(build-id)=ef5f5dbcb2398c608fef7884e1bfb65be3b5f0ef"
+Missing separate debuginfo for /lib64/libc.so.6
+Try: zypper install -C "debuginfo(build-id)=bd1473e8e6a4c10a14731b5be4b35b4e87db2af7"
general valgrind monitor commands:
help [debug] : monitor command help. With debug: + debugging commands
v.wait [<ms>] : sleep <ms> (default 0) then continue
=================================================
./valgrind-old/gdbserver_tests/hginfo.stderrB.diff
=================================================
--- hginfo.stderrB.exp 2014-07-13 21:31:41.490317141 -0500
+++ hginfo.stderrB.out 2014-07-13 21:39:16.093416179 -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)=ecb8ef1a6904a2a3ec60a527f415f520c8636158"
vgdb-error value changed from 0 to 999999
+Missing separate debuginfo for /lib64/libpthread.so.0
+Try: zypper install -C "debuginfo(build-id)=ef5f5dbcb2398c608fef7884e1bfb65be3b5f0ef"
+Missing separate debuginfo for /lib64/libc.so.6
+Try: zypper install -C "debuginfo(build-id)=bd1473e8e6a4c10a14731b5be4b35b4e87db2af7"
Lock ga 0x........ {
Address 0x........ is 0 bytes inside data symbol "mx"
kind mbRec
=================================================
./valgrind-old/gdbserver_tests/mssnapshot.stderrB.diff
=================================================
--- mssnapshot.stderrB.exp 2014-07-13 21:31:41.512316521 -0500
+++ mssnapshot.stderrB.out 2014-07-13 21:39:47.974512390 -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)=ecb8ef1a6904a2a3ec60a527f415f520c8636158"
vgdb-error value changed from 0 to 999999
+Missing separate debuginfo for /lib64/libpthread.so.0
+Try: zypper install -C "debuginfo(build-id)=ef5f5dbcb2398c608fef7884e1bfb65be3b5f0ef"
+Missing separate debuginfo for /lib64/libc.so.6
+Try: zypper install -C "debuginfo(build-id)=bd1473e8e6a4c10a14731b5be4b35b4e87db2af7"
general valgrind monitor commands:
help [debug] : monitor command help. With debug: + debugging commands
v.wait [<ms>] : sleep <ms> (default 0) then continue
|
|
From: Tom H. <to...@co...> - 2014-07-14 02:59:19
|
valgrind revision: 14157 VEX revision: 2899 C compiler: gcc (GCC) 4.6.3 20120306 (Red Hat 4.6.3-2) GDB: GNU gdb (GDB) Fedora (7.3.1-48.fc15) Assembler: GNU assembler version 2.21.51.0.6-6.fc15 20110118 C library: GNU C Library stable release version 2.14.1 uname -mrs: Linux 3.15.3-200.fc20.x86_64 x86_64 Vendor version: Fedora release 15 (Lovelock) Nightly build on bristol ( x86_64, Fedora 15 ) Started at 2014-07-14 03:14:02 BST Ended at 2014-07-14 03:59:00 BST Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... done Regression test results follow == 690 tests, 0 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == |
|
From: Tom H. <to...@co...> - 2014-07-14 02:42:02
|
valgrind revision: 14157 VEX revision: 2899 C compiler: gcc (GCC) 4.6.3 20120306 (Red Hat 4.6.3-2) GDB: GNU gdb (GDB) Fedora (7.3.50.20110722-16.fc16) Assembler: GNU assembler version 2.21.53.0.1-6.fc16 20110716 C library: GNU C Library development release version 2.14.90 uname -mrs: Linux 3.15.3-200.fc20.x86_64 x86_64 Vendor version: Fedora release 16 (Verne) Nightly build on bristol ( x86_64, Fedora 16 ) Started at 2014-07-14 03:01:57 BST Ended at 2014-07-14 03:41:49 BST Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... done Regression test results follow == 690 tests, 0 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == |
|
From: Tom H. <to...@co...> - 2014-07-14 02:31:52
|
valgrind revision: 14157 VEX revision: 2899 C compiler: gcc (GCC) 4.7.2 20120921 (Red Hat 4.7.2-2) GDB: GNU gdb (GDB) Fedora (7.4.50.20120120-54.fc17) Assembler: GNU assembler version 2.22.52.0.1-10.fc17 20120131 C library: GNU C Library stable release version 2.15 uname -mrs: Linux 3.15.3-200.fc20.x86_64 x86_64 Vendor version: Fedora release 17 (Beefy Miracle) Nightly build on bristol ( x86_64, Fedora 17 (Beefy Miracle) ) Started at 2014-07-14 02:51:04 BST Ended at 2014-07-14 03:31:40 BST Results differ from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 690 tests, 4 stderr failures, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures == gdbserver_tests/mcinfcallRU (stderr) gdbserver_tests/mcinfcallWSRU (stderr) gdbserver_tests/mcmain_pic (stderr) exp-sgcheck/tests/preen_invars (stdout) exp-sgcheck/tests/preen_invars (stderr) ================================================= == Results from 24 hours ago == ================================================= Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 690 tests, 5 stderr failures, 2 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == gdbserver_tests/mcinfcallRU (stderr) gdbserver_tests/mcinfcallWSRU (stderr) gdbserver_tests/mcmain_pic (stderr) none/tests/fdleak_ipv4 (stdout) none/tests/fdleak_ipv4 (stderr) exp-sgcheck/tests/preen_invars (stdout) exp-sgcheck/tests/preen_invars (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short 2014-07-14 03:10:10.792535967 +0100 --- new.short 2014-07-14 03:31:40.500847710 +0100 *************** *** 8,10 **** ! == 690 tests, 5 stderr failures, 2 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == gdbserver_tests/mcinfcallRU (stderr) --- 8,10 ---- ! == 690 tests, 4 stderr failures, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures == gdbserver_tests/mcinfcallRU (stderr) *************** *** 12,15 **** gdbserver_tests/mcmain_pic (stderr) - none/tests/fdleak_ipv4 (stdout) - none/tests/fdleak_ipv4 (stderr) exp-sgcheck/tests/preen_invars (stdout) --- 12,13 ---- |
|
From: Rich C. <rc...@wi...> - 2014-07-14 02:22:56
|
valgrind revision: 14157
VEX revision: 2899
C compiler: gcc (SUSE Linux) 4.8.1 20130909 [gcc-4_8-branch revision 202388]
GDB: GNU gdb (GDB; openSUSE Factory) 7.6.50.20130731-cvs
Assembler: GNU assembler (GNU Binutils; openSUSE Factory) 2.23.2
C library: GNU C Library (GNU libc) stable release version 2.18 (git )
uname -mrs: Linux 3.11.4-3-desktop x86_64
Vendor version: Welcome to openSUSE 13.1 "Bottle" Beta 1 - Kernel %r (%t).
Nightly build on rodan ( Linux 3.11.4-3-desktop x86_64 )
Started at 2014-07-13 19:22:01 CDT
Ended at 2014-07-13 21:22:42 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
== 605 tests, 5 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/threadname (stderr)
memcheck/tests/threadname_xml (stderr)
exp-sgcheck/tests/hackedbz2 (stderr)
=================================================
./valgrind-new/exp-sgcheck/tests/hackedbz2.stderr.diff-glibc28-amd64
=================================================
--- hackedbz2.stderr.exp-glibc28-amd64 2014-07-13 20:23:40.872215220 -0500
+++ hackedbz2.stderr.out 2014-07-13 21:21:32.987106792 -0500
@@ -1,7 +1,6 @@
Invalid read of size 1
- at 0x........: vex_strlen (hackedbz2.c:1006)
- by 0x........: add_to_myprintf_buf (hackedbz2.c:1284)
+ at 0x........: add_to_myprintf_buf (hackedbz2.c:1006)
by 0x........: vex_printf (hackedbz2.c:1155)
by 0x........: BZ2_compressBlock (hackedbz2.c:4039)
by 0x........: handle_compress (hackedbz2.c:4761)
=================================================
./valgrind-new/memcheck/tests/err_disable3.stderr.diff
=================================================
--- err_disable3.stderr.exp 2014-07-13 20:23:33.390133757 -0500
+++ err_disable3.stderr.out 2014-07-13 20:42:46.405164708 -0500
@@ -10,8 +10,6 @@
Thread 2:
Invalid read of size 1
at 0x........: err (err_disable3.c:25)
- by 0x........: child_fn (err_disable3.c:31)
- ...
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 2014-07-13 20:23:35.875160813 -0500
+++ err_disable4.stderr.out 2014-07-13 20:42:50.664213505 -0500
@@ -1501,8 +1501,6 @@
Thread x:
Invalid read of size 1
at 0x........: err (err_disable4.c:41)
- by 0x........: child_fn_2 (err_disable4.c:55)
- ...
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)
=================================================
./valgrind-new/memcheck/tests/threadname.stderr.diff
=================================================
--- threadname.stderr.exp 2014-07-13 20:23:32.200120800 -0500
+++ threadname.stderr.out 2014-07-13 20:48:57.842362212 -0500
@@ -9,36 +9,12 @@
Thread 2:
Invalid write of size 1
at 0x........: bad_things (threadname.c:16)
- by 0x........: child_fn_0 (threadname.c:53)
- ...
Address 0x........ is 0 bytes after a block of size 2 alloc'd
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: bad_things (threadname.c:15)
by 0x........: child_fn_0 (threadname.c:53)
...
-Thread 3 try1:
-Invalid write of size 1
- at 0x........: bad_things (threadname.c:16)
- by 0x........: child_fn_1 (threadname.c:38)
- ...
- Address 0x........ is 0 bytes after a block of size 3 alloc'd
- at 0x........: malloc (vg_replace_malloc.c:...)
- by 0x........: bad_things (threadname.c:15)
- by 0x........: child_fn_1 (threadname.c:38)
- ...
-
-Thread 4 012345678901234:
-Invalid write of size 1
- at 0x........: bad_things (threadname.c:16)
- by 0x........: child_fn_2 (threadname.c:26)
- ...
- Address 0x........ is 0 bytes after a block of size 4 alloc'd
- at 0x........: malloc (vg_replace_malloc.c:...)
- by 0x........: bad_things (threadname.c:15)
- by 0x........: child_fn_2 (threadname.c:26)
- ...
-
Thread 1:
Invalid write of size 1
at 0x........: bad_things (threadname.c:16)
=================================================
./valgrind-new/memcheck/tests/threadname_xml.stderr.diff
=================================================
--- threadname_xml.stderr.exp 2014-07-13 20:23:33.387133724 -0500
+++ threadname_xml.stderr.out 2014-07-13 20:48:59.901384895 -0500
@@ -94,14 +94,6 @@
<file>threadname.c</file>
<line>...</line>
</frame>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>child_fn_0</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
</stack>
<auxwhat>Address 0x........ is 0 bytes after a block of size 2 alloc'd</auxwhat>
<stack>
@@ -135,112 +127,6 @@
<error>
<unique>0x........</unique>
<tid>...</tid>
- <threadname>try1</threadname>
- <kind>InvalidWrite</kind>
- <what>Invalid write of size 1</what>
- <stack>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>bad_things</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>child_fn_1</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- </stack>
- <auxwhat>Address 0x........ is 0 bytes after a block of size 3 alloc'd</auxwhat>
- <stack>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>malloc</fn>
- <dir>...</dir>
- <file>vg_replace_malloc.c</file>
- <line>...</line>
- </frame>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>bad_things</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>child_fn_1</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- </stack>
-</error>
-
-<error>
- <unique>0x........</unique>
- <tid>...</tid>
- <threadname>012345678901234</threadname>
- <kind>InvalidWrite</kind>
- <what>Invalid write of size 1</what>
- <stack>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>bad_things</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>child_fn_2</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- </stack>
- <auxwhat>Address 0x........ is 0 bytes after a block of size 4 alloc'd</auxwhat>
- <stack>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
<truncated beyond 100 lines>
=================================================
./valgrind-old/exp-sgcheck/tests/hackedbz2.stderr.diff-glibc28-amd64
=================================================
--- hackedbz2.stderr.exp-glibc28-amd64 2014-07-13 19:23:33.431959526 -0500
+++ hackedbz2.stderr.out 2014-07-13 20:21:30.475795749 -0500
@@ -1,7 +1,6 @@
Invalid read of size 1
- at 0x........: vex_strlen (hackedbz2.c:1006)
- by 0x........: add_to_myprintf_buf (hackedbz2.c:1284)
+ at 0x........: add_to_myprintf_buf (hackedbz2.c:1006)
by 0x........: vex_printf (hackedbz2.c:1155)
by 0x........: BZ2_compressBlock (hackedbz2.c:4039)
by 0x........: handle_compress (hackedbz2.c:4761)
=================================================
./valgrind-old/memcheck/tests/err_disable3.stderr.diff
=================================================
--- err_disable3.stderr.exp 2014-07-13 19:23:17.830781867 -0500
+++ err_disable3.stderr.out 2014-07-13 19:42:43.661055861 -0500
@@ -10,8 +10,6 @@
Thread 2:
Invalid read of size 1
at 0x........: err (err_disable3.c:25)
- by 0x........: child_fn (err_disable3.c:31)
- ...
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 2014-07-13 19:23:21.065818708 -0500
+++ err_disable4.stderr.out 2014-07-13 19:42:48.023105783 -0500
@@ -1501,8 +1501,6 @@
Thread x:
Invalid read of size 1
at 0x........: err (err_disable4.c:41)
- by 0x........: child_fn_2 (err_disable4.c:55)
- ...
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)
=================================================
./valgrind-old/memcheck/tests/threadname.stderr.diff
=================================================
--- threadname.stderr.exp 2014-07-13 19:23:15.519755549 -0500
+++ threadname.stderr.out 2014-07-13 19:48:55.575305525 -0500
@@ -9,36 +9,12 @@
Thread 2:
Invalid write of size 1
at 0x........: bad_things (threadname.c:16)
- by 0x........: child_fn_0 (threadname.c:53)
- ...
Address 0x........ is 0 bytes after a block of size 2 alloc'd
at 0x........: malloc (vg_replace_malloc.c:...)
by 0x........: bad_things (threadname.c:15)
by 0x........: child_fn_0 (threadname.c:53)
...
-Thread 3 try1:
-Invalid write of size 1
- at 0x........: bad_things (threadname.c:16)
- by 0x........: child_fn_1 (threadname.c:38)
- ...
- Address 0x........ is 0 bytes after a block of size 3 alloc'd
- at 0x........: malloc (vg_replace_malloc.c:...)
- by 0x........: bad_things (threadname.c:15)
- by 0x........: child_fn_1 (threadname.c:38)
- ...
-
-Thread 4 012345678901234:
-Invalid write of size 1
- at 0x........: bad_things (threadname.c:16)
- by 0x........: child_fn_2 (threadname.c:26)
- ...
- Address 0x........ is 0 bytes after a block of size 4 alloc'd
- at 0x........: malloc (vg_replace_malloc.c:...)
- by 0x........: bad_things (threadname.c:15)
- by 0x........: child_fn_2 (threadname.c:26)
- ...
-
Thread 1:
Invalid write of size 1
at 0x........: bad_things (threadname.c:16)
=================================================
./valgrind-old/memcheck/tests/threadname_xml.stderr.diff
=================================================
--- threadname_xml.stderr.exp 2014-07-13 19:23:15.514755492 -0500
+++ threadname_xml.stderr.out 2014-07-13 19:48:57.624328900 -0500
@@ -94,14 +94,6 @@
<file>threadname.c</file>
<line>...</line>
</frame>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>child_fn_0</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
</stack>
<auxwhat>Address 0x........ is 0 bytes after a block of size 2 alloc'd</auxwhat>
<stack>
@@ -135,112 +127,6 @@
<error>
<unique>0x........</unique>
<tid>...</tid>
- <threadname>try1</threadname>
- <kind>InvalidWrite</kind>
- <what>Invalid write of size 1</what>
- <stack>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>bad_things</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>child_fn_1</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- </stack>
- <auxwhat>Address 0x........ is 0 bytes after a block of size 3 alloc'd</auxwhat>
- <stack>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>malloc</fn>
- <dir>...</dir>
- <file>vg_replace_malloc.c</file>
- <line>...</line>
- </frame>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>bad_things</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>child_fn_1</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- </stack>
-</error>
-
-<error>
- <unique>0x........</unique>
- <tid>...</tid>
- <threadname>012345678901234</threadname>
- <kind>InvalidWrite</kind>
- <what>Invalid write of size 1</what>
- <stack>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>bad_things</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
- <fn>child_fn_2</fn>
- <dir>...</dir>
- <file>threadname.c</file>
- <line>...</line>
- </frame>
- </stack>
- <auxwhat>Address 0x........ is 0 bytes after a block of size 4 alloc'd</auxwhat>
- <stack>
- <frame>
- <ip>0x........</ip>
- <obj>...</obj>
<truncated beyond 100 lines>
|
|
From: Tom H. <to...@co...> - 2014-07-14 02:22:07
|
valgrind revision: 14157 VEX revision: 2899 C compiler: gcc (GCC) 4.7.2 20121109 (Red Hat 4.7.2-8) GDB: GNU gdb (GDB) Fedora 7.5.1-42.fc18 Assembler: GNU assembler version 2.23.51.0.1-10.fc18 20120806 C library: GNU C Library stable release version 2.16 uname -mrs: Linux 3.15.3-200.fc20.x86_64 x86_64 Vendor version: Fedora release 18 (Spherical Cow) Nightly build on bristol ( x86_64, Fedora 18 (Spherical Cow) ) Started at 2014-07-14 02:41:14 BST Ended at 2014-07-14 03:21:56 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 == 690 tests, 1 stderr failure, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures == exp-sgcheck/tests/preen_invars (stdout) exp-sgcheck/tests/preen_invars (stderr) |
|
From: Tom H. <to...@co...> - 2014-07-14 02:10:23
|
valgrind revision: 14157 VEX revision: 2899 C compiler: gcc (GCC) 4.8.3 20140624 (Red Hat 4.8.3-1) GDB: GNU gdb (GDB) Fedora 7.6.1-46.fc19 Assembler: GNU assembler version 2.23.52.0.1-9.fc19 20130226 C library: GNU C Library (GNU libc) stable release version 2.17 uname -mrs: Linux 3.15.3-200.fc20.x86_64 x86_64 Vendor version: Fedora release 19 (Schrödingerâs Cat) Nightly build on bristol ( x86_64, Fedora 19 (Schrödingerâs Cat) ) Started at 2014-07-14 02:31:47 BST Ended at 2014-07-14 03:10:11 BST Results differ from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 690 tests, 2 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == none/tests/fdleak_ipv4 (stderr) exp-sgcheck/tests/hackedbz2 (stderr) ================================================= == Results from 24 hours ago == ================================================= Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 690 tests, 1 stderr failure, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == exp-sgcheck/tests/hackedbz2 (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short 2014-07-14 02:50:07.836563491 +0100 --- new.short 2014-07-14 03:10:11.617520175 +0100 *************** *** 8,10 **** ! == 690 tests, 1 stderr failure, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == exp-sgcheck/tests/hackedbz2 (stderr) --- 8,11 ---- ! == 690 tests, 2 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == ! none/tests/fdleak_ipv4 (stderr) exp-sgcheck/tests/hackedbz2 (stderr) |