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
(10) |
2
(1) |
|
3
(13) |
4
(13) |
5
(15) |
6
(12) |
7
(16) |
8
(18) |
9
(19) |
|
10
(13) |
11
(19) |
12
(11) |
13
(20) |
14
(20) |
15
(26) |
16
(12) |
|
17
(16) |
18
(19) |
19
(13) |
20
(24) |
21
(18) |
22
(23) |
23
(17) |
|
24
(19) |
25
(13) |
26
(22) |
27
(13) |
28
(17) |
29
(24) |
30
(14) |
|
31
(10) |
|
|
|
|
|
|
|
From: <sv...@va...> - 2014-08-13 21:26:01
|
Author: philippe
Date: Wed Aug 13 21:25:45 2014
New Revision: 14273
Log:
Reduce memory needed for symbols, by having the tocptr and local_ep
(used for ppc64 platforms) #ifdef-ed and accessed by macros
that becomes NOP on non ppc64 platforms.
This decreases the debuginfo memory by about 2.5 Mb on a big 32 bit application.
Note : doing that, some questions were encountered in the way
tocptr and local_ep have (or do not have) to be copied/maintained
in storage.c canonicaliseSymtab
Modified:
trunk/coregrind/m_debuginfo/debuginfo.c
trunk/coregrind/m_debuginfo/priv_storage.h
trunk/coregrind/m_debuginfo/readelf.c
trunk/coregrind/m_debuginfo/readmacho.c
trunk/coregrind/m_debuginfo/readpdb.c
trunk/coregrind/m_debuginfo/storage.c
trunk/coregrind/m_gdbserver/valgrind-low-arm.c
trunk/coregrind/m_redir.c
trunk/coregrind/pub_core_debuginfo.h
trunk/include/pub_tool_debuginfo.h
Modified: trunk/coregrind/m_debuginfo/debuginfo.c
==============================================================================
--- trunk/coregrind/m_debuginfo/debuginfo.c (original)
+++ trunk/coregrind/m_debuginfo/debuginfo.c Wed Aug 13 21:25:45 2014
@@ -1654,7 +1654,7 @@
{
VG_(strncpy_safely)(buf, "(below main)", nbuf);
}
- offset = a - di->symtab[sno].addr;
+ offset = a - di->symtab[sno].avmas.main;
if (offsetP) *offsetP = offset;
if (show_offset && offset != 0) {
@@ -1684,6 +1684,7 @@
guest_code_addr. Returns 0 if not known. */
Addr VG_(get_tocptr) ( Addr guest_code_addr )
{
+#if defined(VGA_ppc64be) || defined(VGA_ppc64le)
DebugInfo* si;
Word sno;
search_all_symtabs ( guest_code_addr,
@@ -1693,7 +1694,10 @@
if (si == NULL)
return 0;
else
- return si->symtab[sno].tocptr;
+ return GET_TOCPTR_AVMA(si->symtab[sno].avmas);
+#else
+ return 0;
+#endif
}
/* This is available to tools... always demangle C++ names,
@@ -1990,8 +1994,7 @@
Therefore specify "*" to search all the objects. On TOC-afflicted
platforms, a symbol is deemed to be found only if it has a nonzero
TOC pointer. */
-Bool VG_(lookup_symbol_SLOW)(const HChar* sopatt, HChar* name,
- Addr* pEnt, Addr* pToc)
+Bool VG_(lookup_symbol_SLOW)(const HChar* sopatt, HChar* name, SymAVMAs* avmas)
{
Bool require_pToc = False;
Int i;
@@ -2012,9 +2015,8 @@
HChar* pri_name = si->symtab[i].pri_name;
tl_assert(pri_name);
if (0==VG_(strcmp)(name, pri_name)
- && (require_pToc ? si->symtab[i].tocptr : True)) {
- *pEnt = si->symtab[i].addr;
- *pToc = si->symtab[i].tocptr;
+ && (require_pToc ? GET_TOCPTR_AVMA(si->symtab[i].avmas) : True)) {
+ *avmas = si->symtab[i].avmas;
return True;
}
HChar** sec_names = si->symtab[i].sec_names;
@@ -2022,9 +2024,9 @@
tl_assert(sec_names[0]);
while (*sec_names) {
if (0==VG_(strcmp)(name, *sec_names)
- && (require_pToc ? si->symtab[i].tocptr : True)) {
- *pEnt = si->symtab[i].addr;
- *pToc = si->symtab[i].tocptr;
+ && (require_pToc
+ ? GET_TOCPTR_AVMA(si->symtab[i].avmas) : True)) {
+ *avmas = si->symtab[i].avmas;
return True;
}
sec_names++;
@@ -4138,19 +4140,15 @@
void VG_(DebugInfo_syms_getidx) ( const DebugInfo *si,
Int idx,
- /*OUT*/Addr* avma,
- /*OUT*/Addr* tocptr,
- /*OUT*/Addr* local_ep,
- /*OUT*/UInt* size,
- /*OUT*/HChar** pri_name,
- /*OUT*/HChar*** sec_names,
- /*OUT*/Bool* isText,
- /*OUT*/Bool* isIFunc )
+ /*OUT*/SymAVMAs* avmas,
+ /*OUT*/UInt* size,
+ /*OUT*/HChar** pri_name,
+ /*OUT*/HChar*** sec_names,
+ /*OUT*/Bool* isText,
+ /*OUT*/Bool* isIFunc )
{
vg_assert(idx >= 0 && idx < si->symtab_used);
- if (avma) *avma = si->symtab[idx].addr;
- if (tocptr) *tocptr = si->symtab[idx].tocptr;
- if (local_ep) *local_ep = si->symtab[idx].local_ep;
+ if (avmas) *avmas = si->symtab[idx].avmas;
if (size) *size = si->symtab[idx].size;
if (pri_name) *pri_name = si->symtab[idx].pri_name;
if (sec_names) *sec_names = (HChar **)si->symtab[idx].sec_names; // FIXME
Modified: trunk/coregrind/m_debuginfo/priv_storage.h
==============================================================================
--- trunk/coregrind/m_debuginfo/priv_storage.h (original)
+++ trunk/coregrind/m_debuginfo/priv_storage.h Wed Aug 13 21:25:45 2014
@@ -69,10 +69,10 @@
sec_names[] does not need to be allocated.
*/
typedef
- struct {
- Addr addr; /* lowest address of entity */
- Addr tocptr; /* ppc64be-linux only: value that R2 should have */
- Addr local_ep; /* address for local entry point, ppc64le */
+ struct {
+ SymAVMAs avmas; /* Symbol Actual VMAs: lowest address of entity,
+ + platform specific fields, to access with
+ the macros defined in pub_core_debuginfo.h */
HChar* pri_name; /* primary name, never NULL */
HChar** sec_names; /* NULL, or a NULL term'd array of other names */
// XXX: this could be shrunk (on 32-bit platforms) by using 30
Modified: trunk/coregrind/m_debuginfo/readelf.c
==============================================================================
--- trunk/coregrind/m_debuginfo/readelf.c (original)
+++ trunk/coregrind/m_debuginfo/readelf.c Wed Aug 13 21:25:45 2014
@@ -234,17 +234,12 @@
PtrdiffT opd_bias, /* for biasing AVMAs found in .opd */
/* OUTPUTS */
DiOffT* sym_name_out_ioff, /* name (in strtab) we should record */
- Addr* sym_avma_out, /* addr we should record */
+ SymAVMAs* sym_avmas_out, /* sym avmas we should record */
Int* sym_size_out, /* symbol size */
- Addr* sym_tocptr_out, /* ppc64be-linux only: R2 value to be
- used on entry */
Bool* from_opd_out, /* ppc64be-linux only: did we deref an
.opd entry? */
Bool* is_text_out, /* is this a text symbol? */
- Bool* is_ifunc, /* is this a STT_GNU_IFUNC function ?*/
- Addr* sym_local_ep /* addr for local entry point. PPC64 LE
- supports a local and global entry points.
- Use this value to return the entry point. */
+ Bool* is_ifunc /* is this a STT_GNU_IFUNC function ?*/
)
{
Bool plausible;
@@ -257,12 +252,12 @@
/* Set defaults */
*sym_name_out_ioff = sym_name_ioff;
- *sym_avma_out = sym_svma; /* we will bias this shortly */
+ (*sym_avmas_out).main = sym_svma; /* we will bias this shortly */
*is_text_out = True;
- *sym_tocptr_out = 0; /* unknown/inapplicable */
+ SET_TOCPTR_AVMA(*sym_avmas_out, 0); /* default to unknown/inapplicable */
+ SET_LOCAL_EP_AVMA(*sym_avmas_out, 0); /* default to unknown/inapplicable */
*from_opd_out = False;
*is_ifunc = False;
- *sym_local_ep = 0; /* unknown/inapplicable */
/* Get the symbol size, but restrict it to fit in a signed 32 bit
int. Also, deal with the stupid case of negative size by making
@@ -322,7 +317,7 @@
sbss_bias = di->sbss_bias;
}
- /* Now bias sym_avma_out accordingly by figuring out exactly which
+ /* Now bias (*sym_avmas_out).main accordingly by figuring out exactly which
section the symbol is from and bias accordingly. Screws up if
the previously deduced section svma address ranges are wrong. */
if (di->text_present
@@ -330,46 +325,46 @@
&& sym_svma >= text_svma
&& sym_svma < text_svma + di->text_size) {
*is_text_out = True;
- *sym_avma_out += text_bias;
+ (*sym_avmas_out).main += text_bias;
} else
if (di->data_present
&& di->data_size > 0
&& sym_svma >= data_svma
&& sym_svma < data_svma + di->data_size) {
*is_text_out = False;
- *sym_avma_out += data_bias;
+ (*sym_avmas_out).main += data_bias;
} else
if (di->sdata_present
&& di->sdata_size > 0
&& sym_svma >= sdata_svma
&& sym_svma < sdata_svma + di->sdata_size) {
*is_text_out = False;
- *sym_avma_out += sdata_bias;
+ (*sym_avmas_out).main += sdata_bias;
} else
if (di->rodata_present
&& di->rodata_size > 0
&& sym_svma >= rodata_svma
&& sym_svma < rodata_svma + di->rodata_size) {
*is_text_out = False;
- *sym_avma_out += rodata_bias;
+ (*sym_avmas_out).main += rodata_bias;
} else
if (di->bss_present
&& di->bss_size > 0
&& sym_svma >= bss_svma
&& sym_svma < bss_svma + di->bss_size) {
*is_text_out = False;
- *sym_avma_out += bss_bias;
+ (*sym_avmas_out).main += bss_bias;
} else
if (di->sbss_present
&& di->sbss_size > 0
&& sym_svma >= sbss_svma
&& sym_svma < sbss_svma + di->sbss_size) {
*is_text_out = False;
- *sym_avma_out += sbss_bias;
+ (*sym_avmas_out).main += sbss_bias;
} else {
/* Assume it's in .text. Is this a good idea? */
*is_text_out = True;
- *sym_avma_out += text_bias;
+ (*sym_avmas_out).main += text_bias;
}
# ifdef STT_GNU_IFUNC
@@ -390,8 +385,8 @@
&& *sym_size_out > 0
&& di->opd_present
&& di->opd_size > 0
- && *sym_avma_out >= di->opd_avma
- && *sym_avma_out < di->opd_avma + di->opd_size)
+ && (*sym_avmas_out).main >= di->opd_avma
+ && (*sym_avmas_out).main < di->opd_avma + di->opd_size)
plausible = True;
# endif
@@ -456,8 +451,8 @@
symbol defined elsewhere, so ignore it. */
if (di->got_present
&& di->got_size > 0
- && *sym_avma_out >= di->got_avma
- && *sym_avma_out < di->got_avma + di->got_size) {
+ && (*sym_avmas_out).main >= di->got_avma
+ && (*sym_avmas_out).main < di->got_avma + di->got_size) {
if (TRACE_SYMTAB_ENABLED) {
HChar* sym_name = ML_(img_strdup)(escn_strtab->img,
"di.gesi.4", sym_name_ioff);
@@ -468,8 +463,8 @@
}
if (di->plt_present
&& di->plt_size > 0
- && *sym_avma_out >= di->plt_avma
- && *sym_avma_out < di->plt_avma + di->plt_size) {
+ && (*sym_avmas_out).main >= di->plt_avma
+ && (*sym_avmas_out).main < di->plt_avma + di->plt_size) {
if (TRACE_SYMTAB_ENABLED) {
HChar* sym_name = ML_(img_strdup)(escn_strtab->img,
"di.gesi.5", sym_name_ioff);
@@ -494,8 +489,8 @@
if (di->opd_present
&& di->opd_size > 0
- && *sym_avma_out >= di->opd_avma
- && *sym_avma_out < di->opd_avma + di->opd_size) {
+ && (*sym_avmas_out).main >= di->opd_avma
+ && (*sym_avmas_out).main < di->opd_avma + di->opd_size) {
# if !defined(VGP_ppc64be_linux)
if (TRACE_SYMTAB_ENABLED) {
HChar* sym_name = ML_(img_strdup)(escn_strtab->img,
@@ -510,9 +505,9 @@
if (details)
TRACE_SYMTAB("opdXXX: opd_bias %p, sym_svma_out %p\n",
- (void*)(opd_bias), (void*)*sym_avma_out);
+ (void*)(opd_bias), (void*)(*sym_avmas_out).main);
- if (!VG_IS_8_ALIGNED(*sym_avma_out)) {
+ if (!VG_IS_8_ALIGNED((*sym_avmas_out).main)) {
if (TRACE_SYMTAB_ENABLED) {
HChar* sym_name = ML_(img_strdup)(escn_strtab->img,
"di.gesi.6a", sym_name_ioff);
@@ -522,11 +517,11 @@
return False;
}
- /* *sym_avma_out is a vma pointing into the .opd section. We
+ /* (*sym_avmas_out).main is a avma pointing into the .opd section. We
know the vma of the opd section start, so we can figure out
how far into the opd section this is. */
- offset_in_opd = (Addr)(*sym_avma_out) - (Addr)(di->opd_avma);
+ offset_in_opd = (Addr)(*sym_avmas_out).main - (Addr)(di->opd_avma);
if (offset_in_opd < 0 || offset_in_opd >= di->opd_size) {
if (TRACE_SYMTAB_ENABLED) {
HChar* sym_name = ML_(img_strdup)(escn_strtab->img,
@@ -576,13 +571,13 @@
OK for fn_descr[0], but surely we need to use the data bias
and not the text bias for fn_descr[1] ? Oh Well.
*/
- *sym_avma_out = fn_descr[0] + opd_bias;
- *sym_tocptr_out = fn_descr[1] + opd_bias;
+ (*sym_avmas_out).main = fn_descr[0] + opd_bias;
+ SET_TOCPTR_AVMA(*sym_avmas_out, fn_descr[1] + opd_bias);
*from_opd_out = True;
is_in_opd = True;
/* Do a final sanity check: if the symbol falls outside the
- DebugInfo's mapped range, ignore it. Since *sym_avma_out has
+ DebugInfo's mapped range, ignore it. Since (*sym_avmas_out).main has
been updated, that can be achieved simply by falling through
to the test below. */
@@ -607,38 +602,38 @@
in_text
= di->text_present
&& di->text_size > 0
- && !(*sym_avma_out + *sym_size_out <= di->text_avma
- || *sym_avma_out >= di->text_avma + di->text_size);
+ && !((*sym_avmas_out).main + *sym_size_out <= di->text_avma
+ || (*sym_avmas_out).main >= di->text_avma + di->text_size);
in_data
= di->data_present
&& di->data_size > 0
- && !(*sym_avma_out + *sym_size_out <= di->data_avma
- || *sym_avma_out >= di->data_avma + di->data_size);
+ && !((*sym_avmas_out).main + *sym_size_out <= di->data_avma
+ || (*sym_avmas_out).main >= di->data_avma + di->data_size);
in_sdata
= di->sdata_present
&& di->sdata_size > 0
- && !(*sym_avma_out + *sym_size_out <= di->sdata_avma
- || *sym_avma_out >= di->sdata_avma + di->sdata_size);
+ && !((*sym_avmas_out).main + *sym_size_out <= di->sdata_avma
+ || (*sym_avmas_out).main >= di->sdata_avma + di->sdata_size);
in_rodata
= di->rodata_present
&& di->rodata_size > 0
- && !(*sym_avma_out + *sym_size_out <= di->rodata_avma
- || *sym_avma_out >= di->rodata_avma + di->rodata_size);
+ && !((*sym_avmas_out).main + *sym_size_out <= di->rodata_avma
+ || (*sym_avmas_out).main >= di->rodata_avma + di->rodata_size);
in_bss
= di->bss_present
&& di->bss_size > 0
- && !(*sym_avma_out + *sym_size_out <= di->bss_avma
- || *sym_avma_out >= di->bss_avma + di->bss_size);
+ && !((*sym_avmas_out).main + *sym_size_out <= di->bss_avma
+ || (*sym_avmas_out).main >= di->bss_avma + di->bss_size);
in_sbss
= di->sbss_present
&& di->sbss_size > 0
- && !(*sym_avma_out + *sym_size_out <= di->sbss_avma
- || *sym_avma_out >= di->sbss_avma + di->sbss_size);
+ && !((*sym_avmas_out).main + *sym_size_out <= di->sbss_avma
+ || (*sym_avmas_out).main >= di->sbss_avma + di->sbss_size);
if (*is_text_out) {
@@ -653,14 +648,16 @@
/* This could actually wrap around and cause
ML_(find_rx_mapping) to assert. But that seems so unlikely,
let's wait for it to happen before fixing it. */
- in_rx = (ML_(find_rx_mapping)(di, *sym_avma_out,
- *sym_avma_out + *sym_size_out) != NULL);
+ in_rx = (ML_(find_rx_mapping)(
+ di,
+ (*sym_avmas_out).main,
+ (*sym_avmas_out).main + *sym_size_out) != NULL);
if (in_text)
vg_assert(in_rx);
if (!in_rx) {
TRACE_SYMTAB(
"ignore -- %#lx .. %#lx outside .text svma range %#lx .. %#lx\n",
- *sym_avma_out, *sym_avma_out + *sym_size_out,
+ (*sym_avmas_out).main, (*sym_avmas_out).main + *sym_size_out,
di->text_avma,
di->text_avma + di->text_size);
return False;
@@ -670,15 +667,15 @@
TRACE_SYMTAB(
"ignore -- %#lx .. %#lx outside .data / .sdata / .rodata "
"/ .bss / .sbss svma ranges\n",
- *sym_avma_out, *sym_avma_out + *sym_size_out);
+ (*sym_avmas_out).main, (*sym_avmas_out).main + *sym_size_out);
return False;
}
}
# if defined(VGP_ppc64be_linux)
if (di->opd_present && di->opd_size > 0) {
- vg_assert(*sym_avma_out + *sym_size_out <= di->opd_avma
- || *sym_avma_out >= di->opd_avma + di->opd_size);
+ vg_assert((*sym_avmas_out).main + *sym_size_out <= di->opd_avma
+ || (*sym_avmas_out).main >= di->opd_avma + di->opd_size);
}
#endif
@@ -717,13 +714,15 @@
if ((bit_field > 0) && (bit_field < 7)) {
/* store the local entry point address */
dist_to_local_entry = ((1 << bit_field) >> 2) << 2;
- *sym_local_ep = *sym_avma_out + dist_to_local_entry;
+ SET_LOCAL_EP_AVMA(*sym_avmas_out,
+ (*sym_avmas_out).main + dist_to_local_entry);
if (TRACE_SYMTAB_ENABLED) {
HChar* sym_name = ML_(img_strdup)(escn_strtab->img,
"di.gesi.5", sym_name_ioff);
VG_(printf)("Local entry point: %s at %#010x\n",
- sym_name, (unsigned int)*sym_local_ep);
+ sym_name,
+ (unsigned int)GET_LOCAL_EP_AVMA(*sym_avmas_out));
}
}
}
@@ -771,29 +770,26 @@
show_raw_elf_symbol(escn_strtab->img, i,
&sym, sym_name, sym_svma, False);
- Addr sym_avma_really = 0;
+ SymAVMAs sym_avmas_really;
Int sym_size = 0;
- Addr sym_tocptr = 0;
- Addr local_ep = 0;
Bool from_opd = False, is_text = False, is_ifunc = False;
DiOffT sym_name_really = DiOffT_INVALID;
+ sym_avmas_really.main = 0;
+ SET_TOCPTR_AVMA(sym_avmas_really, 0);
+ SET_LOCAL_EP_AVMA(sym_avmas_really, 0);
if (get_elf_symbol_info(di, &sym, sym_name, escn_strtab,
sym_svma, symtab_in_debug,
escn_opd, di->text_bias,
&sym_name_really,
- &sym_avma_really,
+ &sym_avmas_really,
&sym_size,
- &sym_tocptr,
- &from_opd, &is_text, &is_ifunc,
- &local_ep)) {
+ &from_opd, &is_text, &is_ifunc)) {
DiSym disym;
VG_(memset)(&disym, 0, sizeof(disym));
HChar* cstr = ML_(img_strdup)(escn_strtab->img,
"di.res__n.1", sym_name_really);
- disym.addr = sym_avma_really;
- disym.tocptr = sym_tocptr;
- disym.local_ep = local_ep;
+ disym.avmas = sym_avmas_really;
disym.pri_name = ML_(addStr) ( di, cstr, -1 );
disym.sec_names = NULL;
disym.size = sym_size;
@@ -801,7 +797,8 @@
disym.isIFunc = is_ifunc;
if (cstr) { ML_(dinfo_free)(cstr); cstr = NULL; }
vg_assert(disym.pri_name);
- vg_assert(disym.tocptr == 0); /* has no role except on ppc64be-linux */
+ vg_assert(GET_TOCPTR_AVMA(disym.avmas) == 0);
+ /* has no role except on ppc64be-linux */
ML_(addSym) ( di, &disym );
if (TRACE_SYMTAB_ENABLED) {
@@ -809,13 +806,13 @@
" val %#010lx, sz %4d %s\n",
is_text ? 't' : 'd',
i,
- disym.addr,
+ disym.avmas.main,
(Int)disym.size,
(HChar*)disym.pri_name
);
- if (local_ep != 0) {
+ if (GET_LOCAL_EP_AVMA(disym.avmas) != 0) {
TRACE_SYMTAB(" local entry point %#010lx\n",
- local_ep)
+ GET_LOCAL_EP_AVMA(disym.avmas));
}
}
@@ -909,26 +906,25 @@
show_raw_elf_symbol(escn_strtab->img, i,
&sym, sym_name, sym_svma, True);
- Addr sym_avma_really = 0;
+ SymAVMAs sym_avmas_really;
Int sym_size = 0;
- Addr sym_tocptr = 0;
- Addr sym_local_ep = 0;
Bool from_opd = False, is_text = False, is_ifunc = False;
DiOffT sym_name_really = DiOffT_INVALID;
DiSym disym;
VG_(memset)(&disym, 0, sizeof(disym));
+ sym_avmas_really.main = 0;
+ SET_TOCPTR_AVMA(sym_avmas_really, 0);
+ SET_LOCAL_EP_AVMA(sym_avmas_really, 0);
if (get_elf_symbol_info(di, &sym, sym_name, escn_strtab,
sym_svma, symtab_in_debug,
escn_opd, di->text_bias,
&sym_name_really,
- &sym_avma_really,
+ &sym_avmas_really,
&sym_size,
- &sym_tocptr,
- &from_opd, &is_text, &is_ifunc,
- &sym_local_ep)) {
+ &from_opd, &is_text, &is_ifunc)) {
/* Check if we've seen this (name,addr) key before. */
- key.addr = sym_avma_really;
+ key.addr = sym_avmas_really.main;
key.name = sym_name_really;
key.img = escn_strtab->img;
prev = VG_(OSetGen_Lookup)( oset, &key );
@@ -959,7 +955,7 @@
shouldn't currently have an known TOC ptr. */
vg_assert(prev->tocptr == 0);
modify_tocptr = True;
- prev->tocptr = sym_tocptr;
+ prev->tocptr = GET_TOCPTR_AVMA(sym_avmas_really);
}
else {
/* ignore. can we do better here? */
@@ -994,7 +990,7 @@
elem = VG_(OSetGen_AllocNode)(oset, sizeof(TempSym));
vg_assert(elem);
elem->key = key;
- elem->tocptr = sym_tocptr;
+ elem->tocptr = GET_TOCPTR_AVMA(sym_avmas_really);
elem->size = sym_size;
elem->from_opd = from_opd;
elem->is_text = is_text;
@@ -1029,8 +1025,9 @@
VG_(memset)(&disym, 0, sizeof(disym));
HChar* cstr = ML_(img_strdup)(escn_strtab->img,
"di.res__ppc64.1", elem->key.name);
- disym.addr = elem->key.addr;
- disym.tocptr = elem->tocptr;
+ disym.avmas.main = elem->key.addr;
+ SET_TOCPTR_AVMA(disym.avmas, elem->tocptr);
+ SET_LOCAL_EP_AVMA(disym.avmas, 0); // ppc64be does not use local_ep.
disym.pri_name = ML_(addStr) ( di, cstr, -1 );
disym.sec_names = NULL;
disym.size = elem->size;
@@ -1045,8 +1042,8 @@
" val %#010lx, toc %#010lx, sz %4d %s\n",
disym.isText ? 't' : 'd',
i,
- disym.addr,
- disym.tocptr,
+ disym.avmas.main,
+ GET_TOCPTR_AVMA(disym.avmas),
(Int) disym.size,
(HChar*)disym.pri_name
);
Modified: trunk/coregrind/m_debuginfo/readmacho.c
==============================================================================
--- trunk/coregrind/m_debuginfo/readmacho.c (original)
+++ trunk/coregrind/m_debuginfo/readmacho.c Wed Aug 13 21:25:45 2014
@@ -356,8 +356,9 @@
continue;
}
- disym.addr = sym_addr;
- disym.tocptr = 0;
+ disym.main = sym_addr;
+ SET_TOCPTR_AVMA(disym, 0);
+ SET_LOCAL_EP_AVMA(disym, 0);
disym.pri_name = ML_(addStr)(di, name, -1);
disym.sec_names = NULL;
disym.size = // let canonicalize fix it
Modified: trunk/coregrind/m_debuginfo/readpdb.c
==============================================================================
--- trunk/coregrind/m_debuginfo/readpdb.c (original)
+++ trunk/coregrind/m_debuginfo/readpdb.c Wed Aug 13 21:25:45 2014
@@ -1264,9 +1264,9 @@
if (0 /*VG_(needs).data_syms*/) {
nmstr = ML_(addStr)(di, symname, sym->data_v1.p_name.namelen);
- vsym.addr = bias + sectp[sym->data_v1.segment-1].VirtualAddress
+ vsym.avmas.main = bias + sectp[sym->data_v1.segment-1].VirtualAddress
+ sym->data_v1.offset;
- vsym.tocptr = 0;
+ SET_TOCPTR_AVMA(vsym.avmas, 0);
vsym.pri_name = nmstr;
vsym.sec_names = NULL;
vsym.size = sym->data_v1.p_name.namelen;
@@ -1290,9 +1290,9 @@
if (sym->generic.id==S_PUB_V2 /*VG_(needs).data_syms*/) {
nmstr = ML_(addStr)(di, symname, k);
- vsym.addr = bias + sectp[sym->data_v2.segment-1].VirtualAddress
+ vsym.avmas.main = bias + sectp[sym->data_v2.segment-1].VirtualAddress
+ sym->data_v2.offset;
- vsym.tocptr = 0;
+ SET_TOCPTR_AVMA(vsym.avmas, 0);
vsym.pri_name = nmstr;
vsym.sec_names = NULL;
vsym.size = 4000;
@@ -1324,9 +1324,9 @@
if (1 /*sym->generic.id==S_PUB_FUNC1_V3
|| sym->generic.id==S_PUB_FUNC2_V3*/) {
nmstr = ML_(addStr)(di, symname, k);
- vsym.addr = bias + sectp[sym->public_v3.segment-1].VirtualAddress
+ vsym.avmas.main = bias + sectp[sym->public_v3.segment-1].VirtualAddress
+ sym->public_v3.offset;
- vsym.tocptr = 0;
+ SET_TOCPTR_AVMA(vsym.avmas, 0);
vsym.pri_name = nmstr;
vsym.sec_names = NULL;
vsym.size = 4000;
@@ -1360,9 +1360,9 @@
sym->proc_v1.p_name.namelen);
symname[sym->proc_v1.p_name.namelen] = '\0';
nmstr = ML_(addStr)(di, symname, sym->proc_v1.p_name.namelen);
- vsym.addr = bias + sectp[sym->proc_v1.segment-1].VirtualAddress
+ vsym.avmas.main = bias + sectp[sym->proc_v1.segment-1].VirtualAddress
+ sym->proc_v1.offset;
- vsym.tocptr = 0;
+ SET_TOCPTR_AVMA(vsym.avmas, 0);
vsym.pri_name = nmstr;
vsym.sec_names = NULL;
vsym.size = sym->proc_v1.proc_len;
@@ -1371,7 +1371,7 @@
if (debug)
VG_(message)(Vg_UserMsg,
" Adding function %s addr=%#lx length=%d\n",
- symname, vsym.addr, vsym.size );
+ symname, vsym.avmas.main, vsym.size );
ML_(addSym)( di, &vsym );
n_syms_read++;
break;
@@ -1382,9 +1382,9 @@
sym->proc_v2.p_name.namelen);
symname[sym->proc_v2.p_name.namelen] = '\0';
nmstr = ML_(addStr)(di, symname, sym->proc_v2.p_name.namelen);
- vsym.addr = bias + sectp[sym->proc_v2.segment-1].VirtualAddress
+ vsym.avmas.main = bias + sectp[sym->proc_v2.segment-1].VirtualAddress
+ sym->proc_v2.offset;
- vsym.tocptr = 0;
+ SET_TOCPTR_AVMA(vsym.avmas, 0);
vsym.pri_name = nmstr;
vsym.sec_names = NULL;
vsym.size = sym->proc_v2.proc_len;
@@ -1393,7 +1393,7 @@
if (debug)
VG_(message)(Vg_UserMsg,
" Adding function %s addr=%#lx length=%d\n",
- symname, vsym.addr, vsym.size );
+ symname, vsym.avmas.main, vsym.size );
ML_(addSym)( di, &vsym );
n_syms_read++;
break;
@@ -1406,9 +1406,9 @@
if (1) {
nmstr = ML_(addStr)(di, sym->proc_v3.name,
VG_(strlen)(sym->proc_v3.name));
- vsym.addr = bias + sectp[sym->proc_v3.segment-1].VirtualAddress
+ vsym.avmas.main = bias + sectp[sym->proc_v3.segment-1].VirtualAddress
+ sym->proc_v3.offset;
- vsym.tocptr = 0;
+ SET_TOCPTR_AVMA(vsym.avmas, 0);
vsym.pri_name = nmstr;
vsym.sec_names = NULL;
vsym.size = sym->proc_v3.proc_len;
Modified: trunk/coregrind/m_debuginfo/storage.c
==============================================================================
--- trunk/coregrind/m_debuginfo/storage.c (original)
+++ trunk/coregrind/m_debuginfo/storage.c Wed Aug 13 21:25:45 2014
@@ -102,8 +102,8 @@
idx,
sym->isText ? 'T' : '-',
sym->isIFunc ? 'I' : '-',
- sym->addr,
- sym->addr + sym->size - 1, sym->size,
+ sym->avmas.main,
+ sym->avmas.main + sym->size - 1, sym->size,
sym->pri_name, sec_names ? " " : "" );
if (sec_names) {
while (*sec_names) {
@@ -1388,8 +1388,8 @@
{
const DiSym* a = va;
const DiSym* b = vb;
- if (a->addr < b->addr) return -1;
- if (a->addr > b->addr) return 1;
+ if (a->avmas.main < b->avmas.main) return -1;
+ if (a->avmas.main > b->avmas.main) return 1;
return 0;
}
@@ -1656,9 +1656,9 @@
/* A pass merging entries together */
for (r = 1; r < di->symtab_used; r++) {
vg_assert(w < r);
- if ( di->symtab[w].addr == di->symtab[r].addr
- && di->symtab[w].size == di->symtab[r].size
- && !!di->symtab[w].isText == !!di->symtab[r].isText) {
+ if ( di->symtab[w].avmas.main == di->symtab[r].avmas.main
+ && di->symtab[w].size == di->symtab[r].size
+ && !!di->symtab[w].isText == !!di->symtab[r].isText) {
/* merge the two into one */
n_merged++;
/* Add r names to w if r has secondary names
@@ -1707,11 +1707,11 @@
for (i = 0; i < ((Word)di->symtab_used) -1; i++) {
- vg_assert(di->symtab[i].addr <= di->symtab[i+1].addr);
+ vg_assert(di->symtab[i].avmas.main <= di->symtab[i+1].avmas.main);
/* Check for common (no overlap) case. */
- if (di->symtab[i].addr + di->symtab[i].size
- <= di->symtab[i+1].addr)
+ if (di->symtab[i].avmas.main + di->symtab[i].size
+ <= di->symtab[i+1].avmas.main)
continue;
/* There's an overlap. Truncate one or the other. */
@@ -1724,17 +1724,19 @@
}
/* Truncate one or the other. */
- sta1 = di->symtab[i].addr;
+ sta1 = di->symtab[i].avmas.main;
end1 = sta1 + di->symtab[i].size - 1;
- toc1 = di->symtab[i].tocptr;
+ toc1 = GET_TOCPTR_AVMA(di->symtab[i].avmas);
+ // aren't we missing local_ep here ????
pri1 = di->symtab[i].pri_name;
sec1 = di->symtab[i].sec_names;
ist1 = di->symtab[i].isText;
isf1 = di->symtab[i].isIFunc;
- sta2 = di->symtab[i+1].addr;
+ sta2 = di->symtab[i+1].avmas.main;
end2 = sta2 + di->symtab[i+1].size - 1;
- toc2 = di->symtab[i+1].tocptr;
+ toc2 = GET_TOCPTR_AVMA(di->symtab[i+1].avmas);
+ // aren't we missing local_ep here ????
pri2 = di->symtab[i+1].pri_name;
sec2 = di->symtab[i+1].sec_names;
ist2 = di->symtab[i+1].isText;
@@ -1757,17 +1759,19 @@
up back at cleanup_more, which will take care of it. */
}
}
- di->symtab[i].addr = sta1;
- di->symtab[i].size = end1 - sta1 + 1;
- di->symtab[i].tocptr = toc1;
+ di->symtab[i].avmas.main = sta1;
+ di->symtab[i].size = end1 - sta1 + 1;
+ SET_TOCPTR_AVMA(di->symtab[i].avmas, toc1);
+ // missing local_ep ???
di->symtab[i].pri_name = pri1;
di->symtab[i].sec_names = sec1;
di->symtab[i].isText = ist1;
di->symtab[i].isIFunc = isf1;
- di->symtab[i+1].addr = sta2;
- di->symtab[i+1].size = end2 - sta2 + 1;
- di->symtab[i+1].tocptr = toc2;
+ di->symtab[i+1].avmas.main = sta2;
+ di->symtab[i+1].size = end2 - sta2 + 1;
+ SET_TOCPTR_AVMA(di->symtab[i+1].avmas, toc2);
+ // missing local_ep ???
di->symtab[i+1].pri_name = pri2;
di->symtab[i+1].sec_names = sec2;
di->symtab[i+1].isText = ist2;
@@ -1780,7 +1784,7 @@
along to maintain the address order requirement. */
j = i+1;
while (j < ((Word)di->symtab_used)-1
- && di->symtab[j].addr > di->symtab[j+1].addr) {
+ && di->symtab[j].avmas.main > di->symtab[j+1].avmas.main) {
SWAP(DiSym,di->symtab[j],di->symtab[j+1]);
j++;
}
@@ -1794,10 +1798,10 @@
/* No zero-sized symbols. */
vg_assert(di->symtab[i].size > 0);
/* In order. */
- vg_assert(di->symtab[i].addr < di->symtab[i+1].addr);
+ vg_assert(di->symtab[i].avmas.main < di->symtab[i+1].avmas.main);
/* No overlaps. */
- vg_assert(di->symtab[i].addr + di->symtab[i].size - 1
- < di->symtab[i+1].addr);
+ vg_assert(di->symtab[i].avmas.main + di->symtab[i].size - 1
+ < di->symtab[i+1].avmas.main);
/* Names are sane(ish) */
vg_assert(di->symtab[i].pri_name);
if (di->symtab[i].sec_names) {
@@ -1834,7 +1838,7 @@
/* Choose the most favoured. */
Word best = 0;
for (j = 1; j < n_tmp; j++) {
- if (preferName(di, tmp[best], tmp[j], di->symtab[i].addr)) {
+ if (preferName(di, tmp[best], tmp[j], di->symtab[i].avmas.main)) {
/* best is unchanged */
} else {
best = j;
@@ -2283,11 +2287,11 @@
/* current unsearched space is from lo to hi, inclusive. */
if (lo > hi) return -1; /* not found */
mid = (lo + hi) / 2;
- a_mid_lo = di->symtab[mid].addr;
+ a_mid_lo = di->symtab[mid].avmas.main;
size = ( match_anywhere_in_sym
? di->symtab[mid].size
: 1);
- a_mid_hi = ((Addr)di->symtab[mid].addr) + size - 1;
+ a_mid_hi = ((Addr)di->symtab[mid].avmas.main) + size - 1;
if (ptr < a_mid_lo) { hi = mid-1; continue; }
if (ptr > a_mid_hi) { lo = mid+1; continue; }
Modified: trunk/coregrind/m_gdbserver/valgrind-low-arm.c
==============================================================================
--- trunk/coregrind/m_gdbserver/valgrind-low-arm.c (original)
+++ trunk/coregrind/m_gdbserver/valgrind-low-arm.c Wed Aug 13 21:25:45 2014
@@ -145,18 +145,17 @@
// pc aligned on 4 bytes. We need to use debug info.
{
HChar fnname[200]; // ??? max size
- Addr entrypoint;
- Addr ptoc; // unused but needed.
+ SymAVMAs avmas;
// If this is a thumb instruction, we need to ask
// the debug info with the bit0 set
// (why can't debug info do that for us ???)
// (why if this is a 4 bytes thumb instruction ???)
if (VG_(get_fnname_raw) (pc | 1, fnname, 200)) {
- if (VG_(lookup_symbol_SLOW)( "*", fnname, &entrypoint, &ptoc )) {
+ if (VG_(lookup_symbol_SLOW)( "*", fnname, &avmas )) {
dlog (1, "fnname %s lookupsym %p => %p %s.\n",
- fnname, C2v(entrypoint), C2v(pc),
- (entrypoint & 1 ? "thumb" : "arm"));
- if (entrypoint & 1)
+ fnname, C2v(avmas.main), C2v(pc),
+ (avmas.main & 1 ? "thumb" : "arm"));
+ if (avmas.main & 1)
return pc | 1;
else
return pc;
Modified: trunk/coregrind/m_redir.c
==============================================================================
--- trunk/coregrind/m_redir.c (original)
+++ trunk/coregrind/m_redir.c Wed Aug 13 21:25:45 2014
@@ -397,7 +397,7 @@
TopSpec* newts;
HChar* sym_name_pri;
HChar** sym_names_sec;
- Addr sym_addr, sym_toc, local_ep;
+ SymAVMAs sym_avmas;
HChar demangled_sopatt[N_DEMANGLED];
HChar demangled_fnpatt[N_DEMANGLED];
Bool check_ppcTOCs = False;
@@ -499,7 +499,7 @@
nsyms = VG_(DebugInfo_syms_howmany)( newdi );
for (i = 0; i < nsyms; i++) {
- VG_(DebugInfo_syms_getidx)( newdi, i, &sym_addr, &sym_toc, &local_ep,
+ VG_(DebugInfo_syms_getidx)( newdi, i, &sym_avmas,
NULL, &sym_name_pri, &sym_names_sec,
&isText, NULL );
/* Set up to conveniently iterate over all names for this symbol. */
@@ -518,10 +518,10 @@
if (!ok) {
/* It's not a full-scale redirect, but perhaps it is a load-notify
fn? Let the load-notify department see it. */
- handle_maybe_load_notifier( newdi_soname, *names, sym_addr );
+ handle_maybe_load_notifier( newdi_soname, *names, sym_avmas.main );
continue;
}
- if (check_ppcTOCs && sym_toc == 0) {
+ if (check_ppcTOCs && GET_TOCPTR_AVMA(sym_avmas) == 0) {
/* This platform uses toc pointers, but none could be found
for this symbol, so we can't safely redirect/wrap to it.
Just skip it; we'll make a second pass over the symbols in
@@ -576,12 +576,12 @@
spec->from_fnpatt = dinfo_strdup("redir.rnnD.3", demangled_fnpatt);
vg_assert(spec->from_sopatt);
vg_assert(spec->from_fnpatt);
- spec->to_addr = sym_addr;
+ spec->to_addr = sym_avmas.main;
spec->isWrap = isWrap;
spec->becTag = becTag;
spec->becPrio = becPrio;
/* check we're not adding manifestly stupid destinations */
- vg_assert(is_plausible_guest_addr(sym_addr));
+ vg_assert(is_plausible_guest_addr(sym_avmas.main));
spec->next = specList;
spec->mark = False; /* not significant */
spec->done = False; /* not significant */
@@ -592,7 +592,7 @@
if (check_ppcTOCs) {
for (i = 0; i < nsyms; i++) {
- VG_(DebugInfo_syms_getidx)( newdi, i, &sym_addr, &sym_toc, &local_ep,
+ VG_(DebugInfo_syms_getidx)( newdi, i, &sym_avmas,
NULL, &sym_name_pri, &sym_names_sec,
&isText, NULL );
HChar* twoslots[2];
@@ -607,7 +607,7 @@
if (!ok)
/* not a redirect. Ignore. */
continue;
- if (sym_toc != 0)
+ if (GET_TOCPTR_AVMA(sym_avmas) != 0)
/* has a valid toc pointer. Ignore. */
continue;
@@ -732,7 +732,7 @@
Bool anyMark, isText, isIFunc;
Active act;
Int nsyms, i;
- Addr sym_addr;
+ SymAVMAs sym_avmas;
HChar* sym_name_pri;
HChar** sym_names_sec;
@@ -755,9 +755,7 @@
of trashing the caches less. */
nsyms = VG_(DebugInfo_syms_howmany)( di );
for (i = 0; i < nsyms; i++) {
- Addr local_ep = 0;
-
- VG_(DebugInfo_syms_getidx)( di, i, &sym_addr, NULL, &local_ep,
+ VG_(DebugInfo_syms_getidx)( di, i, &sym_avmas,
NULL, &sym_name_pri, &sym_names_sec,
&isText, &isIFunc );
HChar* twoslots[2];
@@ -775,7 +773,7 @@
continue; /* soname doesn't match */
if (VG_(string_match)( sp->from_fnpatt, *names )) {
/* got a new binding. Add to collection. */
- act.from_addr = sym_addr;
+ act.from_addr = sym_avmas.main;
act.to_addr = sp->to_addr;
act.parent_spec = parent_spec;
act.parent_sym = parent_sym;
@@ -790,10 +788,10 @@
* redirect it to the global entry point. The redirection
* must save and setup r2 then setup r12 for the new function.
* On return, r2 must be restored. Local entry points used
- * used in PPC64 Little Endian.
+ * in PPC64 Little Endian.
*/
- if (local_ep != 0) {
- act.from_addr = local_ep;
+ if (GET_LOCAL_EP_AVMA(sym_avmas) != 0) {
+ act.from_addr = GET_LOCAL_EP_AVMA(sym_avmas);
maybe_add_active( act );
}
@@ -1604,7 +1602,7 @@
Bool isText = False;
HChar* sym_name_pri = NULL;
HChar** sym_names_sec = NULL;
- VG_(DebugInfo_syms_getidx)( di, j, NULL, NULL, NULL,
+ VG_(DebugInfo_syms_getidx)( di, j, NULL,
NULL, &sym_name_pri, &sym_names_sec,
&isText, NULL );
HChar* twoslots[2];
Modified: trunk/coregrind/pub_core_debuginfo.h
==============================================================================
--- trunk/coregrind/pub_core_debuginfo.h (original)
+++ trunk/coregrind/pub_core_debuginfo.h Wed Aug 13 21:25:45 2014
@@ -153,12 +153,60 @@
Addr min_accessible,
Addr max_accessible );
+/* AVMAs for a symbol. Usually only the lowest address of the entity.
+ On ppc64 platforms, also contains tocptr and local_ep.
+ These fields should only be accessed using the macros
+ GET_TOCPTR_AVMA/SET_TOCPTR_AVMA/GET_LOCAL_EP_AVMA/SET_LOCAL_EP_AVMA. */
+typedef
+ struct {
+ Addr main; /* lowest address of entity */
+# if defined(VGA_ppc64be) || defined(VGA_ppc64le)
+ Addr tocptr; /* ppc64be/le-linux only: value that R2 should have */
+# endif
+# if defined(VGA_ppc64le)
+ Addr local_ep; /* address for local entry point, ppc64le only */
+# endif
+ }
+ SymAVMAs;
+
+#if defined(VGA_ppc64be) || defined(VGA_ppc64le)
+# define GET_TOCPTR_AVMA(_sym_avmas) (_sym_avmas).tocptr
+# define SET_TOCPTR_AVMA(_sym_avmas, _val) (_sym_avmas).tocptr = (_val)
+#else
+# define GET_TOCPTR_AVMA(_sym_avmas) ((Addr)0)
+# define SET_TOCPTR_AVMA(_sym_avmas, _val) /* */
+#endif
+
+#if defined(VGA_ppc64le)
+# define GET_LOCAL_EP_AVMA(_sym_avmas) (_sym_avmas).local_ep
+# define SET_LOCAL_EP_AVMA(_sym_avmas, _val) (_sym_avmas).local_ep = (_val)
+#else
+# define GET_LOCAL_EP_AVMA(_sym_avmas) ((Addr)0)
+# define SET_LOCAL_EP_AVMA(_sym_avmas, _val) /* */
+#endif
+
+/* Functions for traversing all the symbols in a DebugInfo. _howmany
+ tells how many symbol table entries there are. _getidx retrieves
+ the n'th entry, for n in 0 .. _howmany-1. You may not modify the
+ function names thereby acquired; if you want to do so, first strdup
+ them. The primary name is returned in *pri_name, and *sec_names is
+ set either to NULL or to a NULL terminated vector containing
+ pointers to the secondary names. */
+Int VG_(DebugInfo_syms_howmany) ( const DebugInfo *di );
+void VG_(DebugInfo_syms_getidx) ( const DebugInfo *di,
+ Int idx,
+ /*OUT*/SymAVMAs* ad,
+ /*OUT*/UInt* size,
+ /*OUT*/HChar** pri_name,
+ /*OUT*/HChar*** sec_names,
+ /*OUT*/Bool* isText,
+ /*OUT*/Bool* isIFunc );
/* ppc64-linux only: find the TOC pointer (R2 value) that should be in
force at the entry point address of the function containing
guest_code_addr. Returns 0 if not known. */
extern Addr VG_(get_tocptr) ( Addr guest_code_addr );
-/* Map a function name to its entry point and toc pointer. Is done by
+/* Map a function name to its SymAVMAs. Is done by
sequential search of all symbol tables, so is very slow. To
mitigate the worst performance effects, you may specify a soname
pattern, and only objects matching that pattern are searched.
@@ -166,8 +214,7 @@
platforms, a symbol is deemed to be found only if it has a nonzero
TOC pointer. */
extern
-Bool VG_(lookup_symbol_SLOW)(const HChar* sopatt, HChar* name, Addr* pEnt,
- Addr* pToc);
+Bool VG_(lookup_symbol_SLOW)(const HChar* sopatt, HChar* name, SymAVMAs* avmas);
#endif // __PUB_CORE_DEBUGINFO_H
Modified: trunk/include/pub_tool_debuginfo.h
==============================================================================
--- trunk/include/pub_tool_debuginfo.h (original)
+++ trunk/include/pub_tool_debuginfo.h Wed Aug 13 21:25:45 2014
@@ -237,25 +237,6 @@
of the list stays constant. */
const DebugInfo* VG_(next_DebugInfo) ( const DebugInfo *di );
-/* Functions for traversing all the symbols in a DebugInfo. _howmany
- tells how many symbol table entries there are. _getidx retrieves
- the n'th entry, for n in 0 .. _howmany-1. You may not modify the
- function names thereby acquired; if you want to do so, first strdup
- them. The primary name is returned in *pri_name, and *sec_names is
- set either to NULL or to a NULL terminated vector containing
- pointers to the secondary names. */
-Int VG_(DebugInfo_syms_howmany) ( const DebugInfo *di );
-void VG_(DebugInfo_syms_getidx) ( const DebugInfo *di,
- Int idx,
- /*OUT*/Addr* avma,
- /*OUT*/Addr* tocptr,
- /*OUT*/Addr* local_ep,
- /*OUT*/UInt* size,
- /*OUT*/HChar** pri_name,
- /*OUT*/HChar*** sec_names,
- /*OUT*/Bool* isText,
- /*OUT*/Bool* isIFunc );
-
/* A simple enumeration to describe the 'kind' of various kinds of
segments that arise from the mapping of object files. */
typedef
|
Author: florian
Date: Wed Aug 13 20:51:50 2014
New Revision: 14272
Log:
Merge from trunk.
Added:
branches/BUF_REMOVAL/coregrind/m_debuginfo/priv_readexidx.h
- copied unchanged from r14271, trunk/coregrind/m_debuginfo/priv_readexidx.h
branches/BUF_REMOVAL/coregrind/m_debuginfo/readexidx.c
- copied unchanged from r14271, trunk/coregrind/m_debuginfo/readexidx.c
branches/BUF_REMOVAL/coregrind/m_dispatch/dispatch-ppc64be-linux.S
- copied unchanged from r14271, trunk/coregrind/m_dispatch/dispatch-ppc64be-linux.S
branches/BUF_REMOVAL/coregrind/m_dispatch/dispatch-ppc64le-linux.S
- copied unchanged from r14271, trunk/coregrind/m_dispatch/dispatch-ppc64le-linux.S
branches/BUF_REMOVAL/coregrind/m_syswrap/syscall-ppc64be-linux.S
- copied unchanged from r14271, trunk/coregrind/m_syswrap/syscall-ppc64be-linux.S
branches/BUF_REMOVAL/coregrind/m_syswrap/syscall-ppc64le-linux.S
- copied unchanged from r14271, trunk/coregrind/m_syswrap/syscall-ppc64le-linux.S
branches/BUF_REMOVAL/drd/tests/threaded-fork-vcs.stderr.exp
- copied unchanged from r14271, trunk/drd/tests/threaded-fork-vcs.stderr.exp
branches/BUF_REMOVAL/drd/tests/threaded-fork-vcs.vgtest
- copied unchanged from r14271, trunk/drd/tests/threaded-fork-vcs.vgtest
branches/BUF_REMOVAL/none/tests/ppc32/jm-fp.stdout.exp-BE2
- copied unchanged from r14271, trunk/none/tests/ppc32/jm-fp.stdout.exp-BE2
branches/BUF_REMOVAL/none/tests/ppc32/round.stdout.exp-RM-fix
- copied unchanged from r14271, trunk/none/tests/ppc32/round.stdout.exp-RM-fix
branches/BUF_REMOVAL/none/tests/ppc64/jm-fp.stdout.exp-BE2
- copied unchanged from r14271, trunk/none/tests/ppc64/jm-fp.stdout.exp-BE2
branches/BUF_REMOVAL/none/tests/ppc64/jm-fp.stdout.exp-LE
- copied unchanged from r14271, trunk/none/tests/ppc64/jm-fp.stdout.exp-LE
branches/BUF_REMOVAL/none/tests/ppc64/jm-fp.stdout.exp-LE2
- copied unchanged from r14271, trunk/none/tests/ppc64/jm-fp.stdout.exp-LE2
branches/BUF_REMOVAL/none/tests/ppc64/jm-int.stdout.exp-LE
- copied unchanged from r14271, trunk/none/tests/ppc64/jm-int.stdout.exp-LE
branches/BUF_REMOVAL/none/tests/ppc64/jm-vmx.stdout.exp-LE
- copied unchanged from r14271, trunk/none/tests/ppc64/jm-vmx.stdout.exp-LE
branches/BUF_REMOVAL/none/tests/ppc64/round.stdout.exp-RM-fix
- copied unchanged from r14271, trunk/none/tests/ppc64/round.stdout.exp-RM-fix
branches/BUF_REMOVAL/none/tests/ppc64/std_reg_imm.stdout.exp-LE
- copied unchanged from r14271, trunk/none/tests/ppc64/std_reg_imm.stdout.exp-LE
branches/BUF_REMOVAL/none/tests/ppc64/test_isa_2_06_part1.stdout.exp-LE
- copied unchanged from r14271, trunk/none/tests/ppc64/test_isa_2_06_part1.stdout.exp-LE
branches/BUF_REMOVAL/tests/is_ppc64_BE.c
- copied unchanged from r14271, trunk/tests/is_ppc64_BE.c
Modified:
branches/BUF_REMOVAL/ (props changed)
branches/BUF_REMOVAL/Makefile.all.am
branches/BUF_REMOVAL/Makefile.tool.am
branches/BUF_REMOVAL/NEWS
branches/BUF_REMOVAL/cachegrind/cg_arch.c
branches/BUF_REMOVAL/cachegrind/cg_branchpred.c
branches/BUF_REMOVAL/cachegrind/cg_main.c
branches/BUF_REMOVAL/configure.ac
branches/BUF_REMOVAL/coregrind/Makefile.am
branches/BUF_REMOVAL/coregrind/launcher-darwin.c
branches/BUF_REMOVAL/coregrind/launcher-linux.c
branches/BUF_REMOVAL/coregrind/m_aspacemgr/aspacemgr-common.c
branches/BUF_REMOVAL/coregrind/m_cache.c
branches/BUF_REMOVAL/coregrind/m_coredump/coredump-elf.c
branches/BUF_REMOVAL/coregrind/m_debugger.c
branches/BUF_REMOVAL/coregrind/m_debuginfo/d3basics.c
branches/BUF_REMOVAL/coregrind/m_debuginfo/debuginfo.c
branches/BUF_REMOVAL/coregrind/m_debuginfo/priv_storage.h
branches/BUF_REMOVAL/coregrind/m_debuginfo/readdwarf.c
branches/BUF_REMOVAL/coregrind/m_debuginfo/readdwarf3.c
branches/BUF_REMOVAL/coregrind/m_debuginfo/readelf.c
branches/BUF_REMOVAL/coregrind/m_debuginfo/readmacho.c
branches/BUF_REMOVAL/coregrind/m_debuginfo/storage.c
branches/BUF_REMOVAL/coregrind/m_debuglog.c
branches/BUF_REMOVAL/coregrind/m_dispatch/dispatch-ppc64-linux.S
branches/BUF_REMOVAL/coregrind/m_errormgr.c
branches/BUF_REMOVAL/coregrind/m_gdbserver/remote-utils.c
branches/BUF_REMOVAL/coregrind/m_gdbserver/server.c
branches/BUF_REMOVAL/coregrind/m_gdbserver/target.c
branches/BUF_REMOVAL/coregrind/m_gdbserver/valgrind-low-arm64.c
branches/BUF_REMOVAL/coregrind/m_initimg/initimg-linux.c
branches/BUF_REMOVAL/coregrind/m_initimg/priv_initimg_pathscan.h
branches/BUF_REMOVAL/coregrind/m_libcassert.c
branches/BUF_REMOVAL/coregrind/m_libcbase.c
branches/BUF_REMOVAL/coregrind/m_libcfile.c
branches/BUF_REMOVAL/coregrind/m_libcproc.c
branches/BUF_REMOVAL/coregrind/m_libcsetjmp.c
branches/BUF_REMOVAL/coregrind/m_machine.c
branches/BUF_REMOVAL/coregrind/m_main.c
branches/BUF_REMOVAL/coregrind/m_redir.c
branches/BUF_REMOVAL/coregrind/m_scheduler/scheduler.c
branches/BUF_REMOVAL/coregrind/m_sigframe/sigframe-ppc64-linux.c
branches/BUF_REMOVAL/coregrind/m_signals.c
branches/BUF_REMOVAL/coregrind/m_stacktrace.c
branches/BUF_REMOVAL/coregrind/m_syscall.c
branches/BUF_REMOVAL/coregrind/m_syswrap/priv_syswrap-xen.h
branches/BUF_REMOVAL/coregrind/m_syswrap/priv_types_n_macros.h
branches/BUF_REMOVAL/coregrind/m_syswrap/syscall-ppc64-linux.S
branches/BUF_REMOVAL/coregrind/m_syswrap/syswrap-generic.c
branches/BUF_REMOVAL/coregrind/m_syswrap/syswrap-linux.c
branches/BUF_REMOVAL/coregrind/m_syswrap/syswrap-main.c
branches/BUF_REMOVAL/coregrind/m_syswrap/syswrap-ppc64-linux.c
branches/BUF_REMOVAL/coregrind/m_syswrap/syswrap-xen.c
branches/BUF_REMOVAL/coregrind/m_trampoline.S
branches/BUF_REMOVAL/coregrind/m_translate.c
branches/BUF_REMOVAL/coregrind/m_ume/elf.c
branches/BUF_REMOVAL/coregrind/m_ume/macho.c
branches/BUF_REMOVAL/coregrind/m_vki.c
branches/BUF_REMOVAL/coregrind/m_vkiscnums.c
branches/BUF_REMOVAL/coregrind/pub_core_aspacemgr.h
branches/BUF_REMOVAL/coregrind/pub_core_basics.h
branches/BUF_REMOVAL/coregrind/pub_core_debuginfo.h
branches/BUF_REMOVAL/coregrind/pub_core_libcfile.h
branches/BUF_REMOVAL/coregrind/pub_core_machine.h
branches/BUF_REMOVAL/coregrind/pub_core_mallocfree.h
branches/BUF_REMOVAL/coregrind/pub_core_threadstate.h
branches/BUF_REMOVAL/coregrind/pub_core_trampoline.h
branches/BUF_REMOVAL/coregrind/pub_core_transtab_asm.h
branches/BUF_REMOVAL/coregrind/pub_core_ume.h
branches/BUF_REMOVAL/coregrind/vg_preloaded.c
branches/BUF_REMOVAL/coregrind/vgdb-invoker-ptrace.c
branches/BUF_REMOVAL/drd/Testing.txt
branches/BUF_REMOVAL/drd/drd_bitmap.h
branches/BUF_REMOVAL/drd/drd_load_store.c
branches/BUF_REMOVAL/drd/drd_main.c
branches/BUF_REMOVAL/drd/drd_thread.c
branches/BUF_REMOVAL/drd/drd_thread.h
branches/BUF_REMOVAL/drd/tests/Makefile.am
branches/BUF_REMOVAL/drd/tests/free_is_write.c
branches/BUF_REMOVAL/drd/tests/unit_bitmap.c
branches/BUF_REMOVAL/helgrind/hg_errors.c
branches/BUF_REMOVAL/helgrind/hg_errors.h
branches/BUF_REMOVAL/helgrind/hg_main.c
branches/BUF_REMOVAL/helgrind/tests/annotate_hbefore.c
branches/BUF_REMOVAL/helgrind/tests/annotate_rwlock.stderr.exp
branches/BUF_REMOVAL/helgrind/tests/hg02_deadlock.stderr.exp
branches/BUF_REMOVAL/helgrind/tests/locked_vs_unlocked1_fwd.stderr.exp
branches/BUF_REMOVAL/helgrind/tests/locked_vs_unlocked1_rev.stderr.exp
branches/BUF_REMOVAL/helgrind/tests/locked_vs_unlocked2.stderr.exp
branches/BUF_REMOVAL/helgrind/tests/locked_vs_unlocked3.stderr.exp
branches/BUF_REMOVAL/helgrind/tests/tc09_bad_unlock.stderr.exp
branches/BUF_REMOVAL/helgrind/tests/tc10_rec_lock.stderr.exp
branches/BUF_REMOVAL/helgrind/tests/tc11_XCHG.c
branches/BUF_REMOVAL/helgrind/tests/tc12_rwl_trivial.stderr.exp
branches/BUF_REMOVAL/helgrind/tests/tc13_laog1.stderr.exp
branches/BUF_REMOVAL/helgrind/tests/tc14_laog_dinphils.c
branches/BUF_REMOVAL/helgrind/tests/tc14_laog_dinphils.stderr.exp
branches/BUF_REMOVAL/helgrind/tests/tc15_laog_lockdel.c
branches/BUF_REMOVAL/helgrind/tests/tc15_laog_lockdel.stderr.exp
branches/BUF_REMOVAL/helgrind/tests/tc20_verifywrap.stderr.exp
branches/BUF_REMOVAL/include/pub_tool_basics.h
branches/BUF_REMOVAL/include/pub_tool_debuginfo.h
branches/BUF_REMOVAL/include/pub_tool_errormgr.h
branches/BUF_REMOVAL/include/pub_tool_gdbserver.h
branches/BUF_REMOVAL/include/pub_tool_libcbase.h
branches/BUF_REMOVAL/include/pub_tool_libcsetjmp.h
branches/BUF_REMOVAL/include/pub_tool_machine.h
branches/BUF_REMOVAL/include/pub_tool_options.h
branches/BUF_REMOVAL/include/pub_tool_redir.h
branches/BUF_REMOVAL/include/pub_tool_vkiscnums.h
branches/BUF_REMOVAL/include/pub_tool_vkiscnums_asm.h
branches/BUF_REMOVAL/include/valgrind.h
branches/BUF_REMOVAL/include/vki/vki-linux.h
branches/BUF_REMOVAL/include/vki/vki-ppc64-linux.h
branches/BUF_REMOVAL/memcheck/mc_machine.c
branches/BUF_REMOVAL/memcheck/tests/atomic_incs.c
branches/BUF_REMOVAL/memcheck/tests/badjump.c
branches/BUF_REMOVAL/memcheck/tests/linux/rfcomm.c
branches/BUF_REMOVAL/memcheck/tests/linux/rfcomm.stderr.exp
branches/BUF_REMOVAL/memcheck/tests/ppc64/power_ISA2_05.c
branches/BUF_REMOVAL/memcheck/tests/ppc64/power_ISA2_05.stdout.exp
branches/BUF_REMOVAL/memcheck/tests/unit_libcbase.c
branches/BUF_REMOVAL/memcheck/tests/varinfo5.stderr.exp
branches/BUF_REMOVAL/memcheck/tests/varinfo5.stderr.exp-ppc64
branches/BUF_REMOVAL/memcheck/tests/varinfo5.vgtest
branches/BUF_REMOVAL/none/tests/amd64/xadd.c
branches/BUF_REMOVAL/none/tests/arm64/fp_and_simd.c
branches/BUF_REMOVAL/none/tests/ppc32/Makefile.am
branches/BUF_REMOVAL/none/tests/ppc32/jm-insns.c
branches/BUF_REMOVAL/none/tests/ppc32/jm-int.stdout.exp
branches/BUF_REMOVAL/none/tests/ppc32/jm-vmx.stdout.exp
branches/BUF_REMOVAL/none/tests/ppc32/jm_vec_isa_2_07.stdout.exp
branches/BUF_REMOVAL/none/tests/ppc32/round.stdout.exp
branches/BUF_REMOVAL/none/tests/ppc32/test_dfp4.c
branches/BUF_REMOVAL/none/tests/ppc32/test_dfp5.c
branches/BUF_REMOVAL/none/tests/ppc32/test_isa_2_06_part1.c
branches/BUF_REMOVAL/none/tests/ppc32/test_isa_2_06_part1.stdout.exp
branches/BUF_REMOVAL/none/tests/ppc32/test_isa_2_06_part2.c
branches/BUF_REMOVAL/none/tests/ppc32/test_isa_2_06_part3.c
branches/BUF_REMOVAL/none/tests/ppc32/test_isa_2_07_part2.stdout.exp
branches/BUF_REMOVAL/none/tests/ppc64/Makefile.am
branches/BUF_REMOVAL/none/tests/ppc64/jm-fp.stdout.exp
branches/BUF_REMOVAL/none/tests/ppc64/jm-int.stdout.exp
branches/BUF_REMOVAL/none/tests/ppc64/jm-vmx.stdout.exp
branches/BUF_REMOVAL/none/tests/ppc64/jm_vec_isa_2_07.stdout.exp
branches/BUF_REMOVAL/none/tests/ppc64/lsw.vgtest
branches/BUF_REMOVAL/none/tests/ppc64/round.c
branches/BUF_REMOVAL/none/tests/ppc64/test_isa_2_06_part1.stdout.exp
branches/BUF_REMOVAL/none/tests/ppc64/test_isa_2_07_part1.c
branches/BUF_REMOVAL/none/tests/ppc64/test_isa_2_07_part2.c
branches/BUF_REMOVAL/none/tests/ppc64/test_isa_2_07_part2.stdout.exp
branches/BUF_REMOVAL/tests/Makefile.am
branches/BUF_REMOVAL/tests/arch_test.c
branches/BUF_REMOVAL/tests/check_isa-2_06_cap
branches/BUF_REMOVAL/tests/check_isa-2_07_cap
branches/BUF_REMOVAL/tests/power_insn_available.c
Modified: branches/BUF_REMOVAL/Makefile.all.am
==============================================================================
--- branches/BUF_REMOVAL/Makefile.all.am (original)
+++ branches/BUF_REMOVAL/Makefile.all.am Wed Aug 13 20:51:50 2014
@@ -163,9 +163,13 @@
AM_CFLAGS_PPC32_LINUX = @FLAG_M32@ $(AM_CFLAGS_BASE)
AM_CCASFLAGS_PPC32_LINUX = @FLAG_M32@ -g
-AM_FLAG_M3264_PPC64_LINUX = @FLAG_M64@
-AM_CFLAGS_PPC64_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
-AM_CCASFLAGS_PPC64_LINUX = @FLAG_M64@ -g
+AM_FLAG_M3264_PPC64BE_LINUX = @FLAG_M64@
+AM_CFLAGS_PPC64BE_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
+AM_CCASFLAGS_PPC64BE_LINUX = @FLAG_M64@ -g
+
+AM_FLAG_M3264_PPC64LE_LINUX = @FLAG_M64@
+AM_CFLAGS_PPC64LE_LINUX = @FLAG_M64@ $(AM_CFLAGS_BASE)
+AM_CCASFLAGS_PPC64LE_LINUX = @FLAG_M64@ -g
AM_FLAG_M3264_ARM_LINUX = @FLAG_M32@
AM_CFLAGS_ARM_LINUX = @FLAG_M32@ @PREFERRED_STACK_BOUNDARY@ \
@@ -229,15 +233,16 @@
PRELOAD_LDFLAGS_COMMON_LINUX += -nostdlib
endif
-PRELOAD_LDFLAGS_X86_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
-PRELOAD_LDFLAGS_AMD64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
-PRELOAD_LDFLAGS_PPC32_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
-PRELOAD_LDFLAGS_PPC64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
-PRELOAD_LDFLAGS_ARM_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
-PRELOAD_LDFLAGS_ARM64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
-PRELOAD_LDFLAGS_X86_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch i386
-PRELOAD_LDFLAGS_AMD64_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch x86_64
-PRELOAD_LDFLAGS_S390X_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
-PRELOAD_LDFLAGS_MIPS32_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
-PRELOAD_LDFLAGS_MIPS64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+PRELOAD_LDFLAGS_X86_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
+PRELOAD_LDFLAGS_AMD64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+PRELOAD_LDFLAGS_PPC32_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
+PRELOAD_LDFLAGS_PPC64BE_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+PRELOAD_LDFLAGS_PPC64LE_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+PRELOAD_LDFLAGS_ARM_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
+PRELOAD_LDFLAGS_ARM64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+PRELOAD_LDFLAGS_X86_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch i386
+PRELOAD_LDFLAGS_AMD64_DARWIN = $(PRELOAD_LDFLAGS_COMMON_DARWIN) -arch x86_64
+PRELOAD_LDFLAGS_S390X_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+PRELOAD_LDFLAGS_MIPS32_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M32@
+PRELOAD_LDFLAGS_MIPS64_LINUX = $(PRELOAD_LDFLAGS_COMMON_LINUX) @FLAG_M64@
Modified: branches/BUF_REMOVAL/Makefile.tool.am
==============================================================================
--- branches/BUF_REMOVAL/Makefile.tool.am (original)
+++ branches/BUF_REMOVAL/Makefile.tool.am Wed Aug 13 20:51:50 2014
@@ -46,7 +46,10 @@
TOOL_LDFLAGS_PPC32_LINUX = \
$(TOOL_LDFLAGS_COMMON_LINUX) @FLAG_M32@
-TOOL_LDFLAGS_PPC64_LINUX = \
+TOOL_LDFLAGS_PPC64BE_LINUX = \
+ $(TOOL_LDFLAGS_COMMON_LINUX) @FLAG_M64@
+
+TOOL_LDFLAGS_PPC64LE_LINUX = \
$(TOOL_LDFLAGS_COMMON_LINUX) @FLAG_M64@
TOOL_LDFLAGS_ARM_LINUX = \
@@ -102,8 +105,11 @@
LIBREPLACEMALLOC_PPC32_LINUX = \
$(top_builddir)/coregrind/libreplacemalloc_toolpreload-ppc32-linux.a
-LIBREPLACEMALLOC_PPC64_LINUX = \
- $(top_builddir)/coregrind/libreplacemalloc_toolpreload-ppc64-linux.a
+LIBREPLACEMALLOC_PPC64BE_LINUX = \
+ $(top_builddir)/coregrind/libreplacemalloc_toolpreload-ppc64be-linux.a
+
+LIBREPLACEMALLOC_PPC64LE_LINUX = \
+ $(top_builddir)/coregrind/libreplacemalloc_toolpreload-ppc64le-linux.a
LIBREPLACEMALLOC_ARM_LINUX = \
$(top_builddir)/coregrind/libreplacemalloc_toolpreload-arm-linux.a
@@ -141,9 +147,14 @@
$(LIBREPLACEMALLOC_PPC32_LINUX) \
-Wl,--no-whole-archive
-LIBREPLACEMALLOC_LDFLAGS_PPC64_LINUX = \
+LIBREPLACEMALLOC_LDFLAGS_PPC64BE_LINUX = \
+ -Wl,--whole-archive \
+ $(LIBREPLACEMALLOC_PPC64BE_LINUX) \
+ -Wl,--no-whole-archive
+
+LIBREPLACEMALLOC_LDFLAGS_PPC64LE_LINUX = \
-Wl,--whole-archive \
- $(LIBREPLACEMALLOC_PPC64_LINUX) \
+ $(LIBREPLACEMALLOC_PPC64LE_LINUX) \
-Wl,--no-whole-archive
LIBREPLACEMALLOC_LDFLAGS_ARM_LINUX = \
Modified: branches/BUF_REMOVAL/NEWS
==============================================================================
--- branches/BUF_REMOVAL/NEWS (original)
+++ branches/BUF_REMOVAL/NEWS Wed Aug 13 20:51:50 2014
@@ -16,10 +16,16 @@
- new leak check heuristic 'length64' to detect interior pointers
pointing at offset 64bit of a block, when the first 8 bytes contains
the block size - 8. This is e.g. used by sqlite3MemMalloc.
+ - if a syscall param (e.g. bind struct sockaddr, sendmsg struct msghdr,
+ ...) has several fields not initialised, an error is now reported for
+ each field. Previously, an error was reported only for the first wrong
+ field.
* Helgrind:
- Race condition error message with allocated blocks also show
the thread nr that allocated the racy block.
+ - All locks referenced by an error message are now announced.
+ Previously, some error messages were just showing the lock addresses.
- The message indicating where a lock was first observed now also
describes the address/location of the lock.
- Helgrind now understands the Ada task termination rules
@@ -84,6 +90,10 @@
* Reduction of memory used by Valgrind to read and store the debug information.
+* Valgrind can now read EXIDX unwind information on 32-bit ARM targets.
+ If an object contains both CFI and EXIDX unwind information, Valgrind
+ will prefer the CFI over the EXIDX.
+
* ==================== FIXED BUGS ====================
The following bugs have been fixed or resolved. Note that "n-i-bz"
@@ -151,6 +161,7 @@
331337 s390x WARNING: unhandled syscall: 326 (dup3)
331380 Syscall param timer_create(evp) points to uninitialised byte(s)
331476 Patch to handle ioctl 0x5422 on Linux (x86 and amd64)
+331829 Unexpected ioctl opcode sign extension
331830 ppc64: WARNING: unhandled syscall: 96/97
331839 drd/tests/sem_open specifies invalid semaphore name
331847 outcome of drd/tests/thread_name is nondeterministic
@@ -191,6 +202,8 @@
337094 ifunc wrapper is broken on ppc64
337285 fcntl commands F_OFD_SETLK, F_OFD_SETLKW, and F_OFD_GETLK not supported
337528 leak check heuristic for block prefixed by length as 64bit number
+338024 inlined functions are not shown if DW_AT_ranges is used
+338115 DRD: computed conflict set differs from actual after fork
n-i-bz Fix KVM_CREATE_IRQCHIP ioctl handling
n-i-bz s390x: Fix memory corruption for multithreaded applications
n-i-bz vex arm->IR: allow PC as basereg in some LDRD cases
@@ -198,6 +211,7 @@
n-i-bz Fix mingw64 support in valgrind.h (dev@, 9 May 2014)
n-i-bz drd manual: Document how to C++11 programs that use class "std::thread"
n-i-bz Add command-line option --default-suppressions
+n-i-bz Add support for BLKDISCARDZEROES ioctl
Release 3.9.0 (31 October 2013)
Modified: branches/BUF_REMOVAL/cachegrind/cg_arch.c
==============================================================================
--- branches/BUF_REMOVAL/cachegrind/cg_arch.c (original)
+++ branches/BUF_REMOVAL/cachegrind/cg_arch.c Wed Aug 13 20:51:50 2014
@@ -353,7 +353,7 @@
*D1c = (cache_t) { 65536, 2, 64 };
*LLc = (cache_t) { 262144, 8, 64 };
-#elif defined(VGA_ppc64)
+#elif defined(VGA_ppc64be) || defined(VGA_ppc64le)
// Default cache configuration
*I1c = (cache_t) { 65536, 2, 64 };
Modified: branches/BUF_REMOVAL/cachegrind/cg_branchpred.c
==============================================================================
--- branches/BUF_REMOVAL/cachegrind/cg_branchpred.c (original)
+++ branches/BUF_REMOVAL/cachegrind/cg_branchpred.c Wed Aug 13 20:51:50 2014
@@ -44,7 +44,7 @@
/* How many bits at the bottom of an instruction address are
guaranteed to be zero? */
-#if defined(VGA_ppc32) || defined(VGA_ppc64) \
+#if defined(VGA_ppc32) || defined(VGA_ppc64be) || defined(VGA_ppc64le) \
|| defined(VGA_mips32) || defined(VGA_mips64) || defined(VGA_arm64)
# define N_IADDR_LO_ZERO_BITS 2
#elif defined(VGA_x86) || defined(VGA_amd64)
Modified: branches/BUF_REMOVAL/cachegrind/cg_main.c
==============================================================================
--- branches/BUF_REMOVAL/cachegrind/cg_main.c (original)
+++ branches/BUF_REMOVAL/cachegrind/cg_main.c Wed Aug 13 20:51:50 2014
@@ -1362,8 +1362,6 @@
/*--- Cache configuration ---*/
/*------------------------------------------------------------*/
-#define UNDEFINED_CACHE { -1, -1, -1 }
-
static cache_t clo_I1_cache = UNDEFINED_CACHE;
static cache_t clo_D1_cache = UNDEFINED_CACHE;
static cache_t clo_LL_cache = UNDEFINED_CACHE;
Modified: branches/BUF_REMOVAL/configure.ac
==============================================================================
--- branches/BUF_REMOVAL/configure.ac (original)
+++ branches/BUF_REMOVAL/configure.ac Wed Aug 13 20:51:50 2014
@@ -163,6 +163,18 @@
# is a 64-bit capable PowerPC, then it must be set to ppc64 and not ppc32.
# Ditto for amd64. It is used for more configuration below, but is not used
# outside this file.
+#
+# Power PC returns powerpc for Big Endian. This was not changed when Little
+# Endian support was added to the 64-bit architecture. The 64-bit Little
+# Endian systems explicitly state le in the host_cpu. For clarity in the
+# Valgrind code, the ARCH_MAX name will state LE or BE for the endianess of
+# the 64-bit system. Big Endian is the only mode supported on 32-bit Power PC.
+# The abreviation PPC or ppc refers to 32-bit and 64-bit systems with either
+# Endianess. The name PPC64 or ppc64 to 64-bit systems of either Endianess.
+# The names ppc64be or PPC64BE refer to only 64-bit systems that are Big
+# Endian. Similarly, ppc64le or PPC64LE refer to only 64-bit systems that are
+# Little Endian.
+
case "${host_cpu}" in
i?86)
AC_MSG_RESULT([ok (${host_cpu})])
@@ -175,8 +187,15 @@
;;
powerpc64)
+ # this only referrs to 64-bit Big Endian
AC_MSG_RESULT([ok (${host_cpu})])
- ARCH_MAX="ppc64"
+ ARCH_MAX="ppc64be"
+ ;;
+
+ powerpc64le)
+ # this only referrs to 64-bit Little Endian
+ AC_MSG_RESULT([ok (${host_cpu})])
+ ARCH_MAX="ppc64le"
;;
powerpc)
@@ -378,7 +397,7 @@
# does not support building 32 bit programs
case "$ARCH_MAX-$VGCONF_OS" in
- amd64-linux|ppc64-linux)
+ amd64-linux|ppc64be-linux)
AC_MSG_CHECKING([for 32 bit build support])
safe_CFLAGS=$CFLAGS
CFLAGS="-m32"
@@ -496,13 +515,13 @@
valt_load_address_sec_inner="0xUNSET"
AC_MSG_RESULT([ok (${ARCH_MAX}-${VGCONF_OS})])
;;
- ppc64-linux)
+ ppc64be-linux)
valt_load_address_sec_norml="0xUNSET"
valt_load_address_sec_inner="0xUNSET"
if test x$vg_cv_only64bit = xyes; then
- VGCONF_ARCH_PRI="ppc64"
+ VGCONF_ARCH_PRI="ppc64be"
VGCONF_ARCH_SEC=""
- VGCONF_PLATFORM_PRI_CAPS="PPC64_LINUX"
+ VGCONF_PLATFORM_PRI_CAPS="PPC64BE_LINUX"
VGCONF_PLATFORM_SEC_CAPS=""
valt_load_address_pri_norml="0x38000000"
valt_load_address_pri_inner="0x28000000"
@@ -514,9 +533,9 @@
valt_load_address_pri_norml="0x38000000"
valt_load_address_pri_inner="0x28000000"
else
- VGCONF_ARCH_PRI="ppc64"
+ VGCONF_ARCH_PRI="ppc64be"
VGCONF_ARCH_SEC="ppc32"
- VGCONF_PLATFORM_PRI_CAPS="PPC64_LINUX"
+ VGCONF_PLATFORM_PRI_CAPS="PPC64BE_LINUX"
VGCONF_PLATFORM_SEC_CAPS="PPC32_LINUX"
valt_load_address_pri_norml="0x38000000"
valt_load_address_pri_inner="0x28000000"
@@ -525,6 +544,18 @@
fi
AC_MSG_RESULT([ok (${ARCH_MAX}-${VGCONF_OS})])
;;
+ ppc64le-linux)
+ # Little Endian is only supported on PPC64
+ valt_load_address_sec_norml="0xUNSET"
+ valt_load_address_sec_inner="0xUNSET"
+ VGCONF_ARCH_PRI="ppc64le"
+ VGCONF_ARCH_SEC=""
+ VGCONF_PLATFORM_PRI_CAPS="PPC64LE_LINUX"
+ VGCONF_PLATFORM_SEC_CAPS=""
+ valt_load_address_pri_norml="0x38000000"
+ valt_load_address_pri_inner="0x28000000"
+ AC_MSG_RESULT([ok (${ARCH_MAX}-${VGCONF_OS})])
+ ;;
# Darwin gets identified as 32-bit even when it supports 64-bit.
# (Not sure why, possibly because 'uname' returns "i386"?) Just about
# all Macs support both 32-bit and 64-bit, so we just build both. If
@@ -663,7 +694,8 @@
test x$VGCONF_PLATFORM_PRI_CAPS = xPPC32_LINUX \
-o x$VGCONF_PLATFORM_SEC_CAPS = xPPC32_LINUX )
AM_CONDITIONAL(VGCONF_ARCHS_INCLUDE_PPC64,
- test x$VGCONF_PLATFORM_PRI_CAPS = xPPC64_LINUX )
+ test x$VGCONF_PLATFORM_PRI_CAPS = xPPC64BE_LINUX \
+ -o x$VGCONF_PLATFORM_PRI_CAPS = xPPC64LE_LINUX )
AM_CONDITIONAL(VGCONF_ARCHS_INCLUDE_ARM,
test x$VGCONF_PLATFORM_PRI_CAPS = xARM_LINUX \
-o x$VGCONF_PLATFORM_SEC_CAPS = xARM_LINUX )
@@ -686,8 +718,10 @@
AM_CONDITIONAL(VGCONF_PLATFORMS_INCLUDE_PPC32_LINUX,
test x$VGCONF_PLATFORM_PRI_CAPS = xPPC32_LINUX \
-o x$VGCONF_PLATFORM_SEC_CAPS = xPPC32_LINUX)
-AM_CONDITIONAL(VGCONF_PLATFORMS_INCLUDE_PPC64_LINUX,
- test x$VGCONF_PLATFORM_PRI_CAPS = xPPC64_LINUX)
+AM_CONDITIONAL(VGCONF_PLATFORMS_INCLUDE_PPC64BE_LINUX,
+ test x$VGCONF_PLATFORM_PRI_CAPS = xPPC64BE_LINUX)
+AM_CONDITIONAL(VGCONF_PLATFORMS_INCLUDE_PPC64LE_LINUX,
+ test x$VGCONF_PLATFORM_PRI_CAPS = xPPC64LE_LINUX)
AM_CONDITIONAL(VGCONF_PLATFORMS_INCLUDE_ARM_LINUX,
test x$VGCONF_PLATFORM_PRI_CAPS = xARM_LINUX \
-o x$VGCONF_PLATFORM_SEC_CAPS = xARM_LINUX)
@@ -714,7 +748,8 @@
test x$VGCONF_PLATFORM_PRI_CAPS = xX86_LINUX \
-o x$VGCONF_PLATFORM_PRI_CAPS = xAMD64_LINUX \
-o x$VGCONF_PLATFORM_PRI_CAPS = xPPC32_LINUX \
- -o x$VGCONF_PLATFORM_PRI_CAPS = xPPC64_LINUX \
+ -o x$VGCONF_PLATFORM_PRI_CAPS = xPPC64BE_LINUX \
+ -o x$VGCONF_PLATFORM_PRI_CAPS = xPPC64LE_LINUX \
-o x$VGCONF_PLATFORM_PRI_CAPS = xARM_LINUX \
-o x$VGCONF_PLATFORM_PRI_CAPS = xARM64_LINUX \
-o x$VGCONF_PLATFORM_PRI_CAPS = xS390X_LINUX \
Modified: branches/BUF_REMOVAL/coregrind/Makefile.am
==============================================================================
--- branches/BUF_REMOVAL/coregrind/Makefile.am (original)
+++ branches/BUF_REMOVAL/coregrind/Makefile.am Wed Aug 13 20:51:50 2014
@@ -222,6 +222,7 @@
m_debuginfo/priv_readdwarf.h \
m_debuginfo/priv_readdwarf3.h \
m_debuginfo/priv_readelf.h \
+ m_debuginfo/priv_readexidx.h \
m_debuginfo/priv_readmacho.h \
m_debuginfo/priv_image.h \
m_debuginfo/lzoconf.h \
@@ -319,6 +320,7 @@
m_debuginfo/readdwarf.c \
m_debuginfo/readdwarf3.c \
m_debuginfo/readelf.c \
+ m_debuginfo/readexidx.c \
m_debuginfo/readmacho.c \
m_debuginfo/readpdb.c \
m_debuginfo/readstabs.c \
@@ -334,7 +336,8 @@
m_dispatch/dispatch-x86-linux.S \
m_dispatch/dispatch-amd64-linux.S \
m_dispatch/dispatch-ppc32-linux.S \
- m_dispatch/dispatch-ppc64-linux.S \
+ m_dispatch/dispatch-ppc64be-linux.S \
+ m_dispatch/dispatch-ppc64le-linux.S \
m_dispatch/dispatch-arm-linux.S \
m_dispatch/dispatch-arm64-linux.S \
m_dispatch/dispatch-s390x-linux.S \
@@ -386,7 +389,8 @@
m_syswrap/syscall-x86-linux.S \
m_syswrap/syscall-amd64-linux.S \
m_syswrap/syscall-ppc32-linux.S \
- m_syswrap/syscall-ppc64-linux.S \
+ m_syswrap/syscall-ppc64be-linux.S \
+ m_syswrap/syscall-ppc64le-linux.S \
m_syswrap/syscall-arm-linux.S \
m_syswrap/syscall-arm64-linux.S \
m_syswrap/syscall-s390x-linux.S \
Modified: branches/BUF_REMOVAL/coregrind/launcher-darwin.c
==============================================================================
--- branches/BUF_REMOVAL/coregrind/launcher-darwin.c (original)
+++ branches/BUF_REMOVAL/coregrind/launcher-darwin.c Wed Aug 13 20:51:50 2014
@@ -59,11 +59,15 @@
const char *apple_name; // e.g. x86_64
const char *valgrind_name; // e.g. amd64
} valid_archs[] = {
- { CPU_TYPE_X86, "i386", "x86" },
- { CPU_TYPE_X86_64, "x86_64", "amd64" },
- { CPU_TYPE_ARM, "arm", "arm" },
+ { CPU_TYPE_X86, "i386", "x86" },
+ { CPU_TYPE_X86_64, "x86_64", "amd64" },
+ { CPU_TYPE_ARM, "arm", "arm" },
+ /* Not that it's actually relevant, since we don't support PPC on
+ MacOS X, but .. the Apple PPC descriptors refer to the BE
+ variant, since the LE variant is something that appeared long
+ after Apple dropped PPC. */
{ CPU_TYPE_POWERPC, "ppc", "ppc32" },
- { CPU_TYPE_POWERPC64, "ppc64", "ppc64" },
+ { CPU_TYPE_POWERPC64, "ppc64", "ppc64be" }
};
static int valid_archs_count = sizeof(valid_archs)/sizeof(valid_archs[0]);
Modified: branches/BUF_REMOVAL/coregrind/launcher-linux.c
==============================================================================
--- branches/BUF_REMOVAL/coregrind/launcher-linux.c (original)
+++ branches/BUF_REMOVAL/coregrind/launcher-linux.c Wed Aug 13 20:51:50 2014
@@ -228,6 +228,10 @@
(ehdr->e_ident[EI_OSABI] == ELFOSABI_SYSV ||
ehdr->e_ident[EI_OSABI] == ELFOSABI_LINUX)) {
platform = "arm64-linux";
+ } else if (ehdr->e_machine == EM_PPC64 &&
+ (ehdr->e_ident[EI_OSABI] == ELFOSABI_SYSV ||
+ ehdr->e_ident[EI_OSABI] == ELFOSABI_LINUX)) {
+ platform = "ppc64le-linux";
}
} else if (header[EI_DATA] == ELFDATA2MSB) {
# if !defined(VGPV_arm_linux_android) \
@@ -236,7 +240,7 @@
if (ehdr->e_machine == EM_PPC64 &&
(ehdr->e_ident[EI_OSABI] == ELFOSABI_SYSV ||
ehdr->e_ident[EI_OSABI] == ELFOSABI_LINUX)) {
- platform = "ppc64-linux";
+ platform = "ppc64be-linux";
}
else
if (ehdr->e_machine == EM_S390 &&
@@ -320,7 +324,8 @@
if ((0==strcmp(VG_PLATFORM,"x86-linux")) ||
(0==strcmp(VG_PLATFORM,"amd64-linux")) ||
(0==strcmp(VG_PLATFORM,"ppc32-linux")) ||
- (0==strcmp(VG_PLATFORM,"ppc64-linux")) ||
+ (0==strcmp(VG_PLATFORM,"ppc64be-linux")) ||
+ (0==strcmp(VG_PLATFORM,"ppc64le-linux")) ||
(0==strcmp(VG_PLATFORM,"arm-linux")) ||
(0==strcmp(VG_PLATFORM,"arm64-linux")) ||
(0==strcmp(VG_PLATFORM,"s390x-linux")) ||
Modified: branches/BUF_REMOVAL/coregrind/m_aspacemgr/aspacemgr-common.c
==============================================================================
--- branches/BUF_REMOVAL/coregrind/m_aspacemgr/aspacemgr-common.c (original)
+++ branches/BUF_REMOVAL/coregrind/m_aspacemgr/aspacemgr-common.c Wed Aug 13 20:51:50 2014
@@ -155,7 +155,8 @@
aspacem_assert((offset % 4096) == 0);
res = VG_(do_syscall6)(__NR_mmap2, (UWord)start, length,
prot, flags, fd, offset / 4096);
-# elif defined(VGP_amd64_linux) || defined(VGP_ppc64_linux) \
+# elif defined(VGP_amd64_linux) \
+ || defined(VGP_ppc64be_linux) || defined(VGP_ppc64le_linux) \
|| defined(VGP_s390x_linux) || defined(VGP_mips32_linux) \
|| defined(VGP_mips64_linux) || defined(VGP_arm64_linux)
res = VG_(do_syscall6)(__NR_mmap, (UWord)start, length,
Modified: branches/BUF_REMOVAL/coregrind/m_cache.c
==============================================================================
--- branches/BUF_REMOVAL/coregrind/m_cache.c (original)
+++ branches/BUF_REMOVAL/coregrind/m_cache.c Wed Aug 13 20:51:50 2014
@@ -538,7 +538,8 @@
return ret == 0 ? True : False;
}
-#elif defined(VGA_arm) || defined(VGA_ppc32) || defined(VGA_ppc64) || \
+#elif defined(VGA_arm) || defined(VGA_ppc32) || \
+ defined(VGA_ppc64be) || defined(VGA_ppc64le) || \
defined(VGA_mips32) || defined(VGA_mips64) || defined(VGA_arm64)
static Bool
Modified: branches/BUF_REMOVAL/coregrind/m_coredump/coredump-elf.c
==============================================================================
--- branches/BUF_REMOVAL/coregrind/m_coredump/coredump-elf.c (original)
+++ branches/BUF_REMOVAL/coregrind/m_coredump/coredump-elf.c Wed Aug 13 20:51:50 2014
@@ -322,7 +322,7 @@
regs->dsisr = 0;
regs->result = 0;
-#elif defined(VGP_ppc64_linux)
+#elif defined(VGP_ppc64be_linux)
# define DO(n) regs->gpr[n] = arch->vex.guest_GPR##n
DO(0); DO(1); DO(2); DO(3); DO(4); DO(5); DO(6); DO(7);
DO(8); DO(9); DO(10); DO(11); DO(12); DO(13); DO(14); DO(15);
@@ -343,6 +343,27 @@
regs->dsisr = 0;
regs->result = 0;
+#elif defined(VGP_ppc64le_linux)
+# define DO(n) regs->gpr[n] = arch->vex.guest_GPR##n
+ DO(0); DO(1); DO(2); DO(3); DO(4); DO(5); DO(6); DO(7);
+ DO(8); DO(9); DO(10); DO(11); DO(12); DO(13); DO(14); DO(15);
+ DO(16); DO(17); DO(18); DO(19); DO(20); DO(21); DO(22); DO(23);
+ DO(24); DO(25); DO(26); DO(27); DO(28); DO(29); DO(30); DO(31);
+# undef DO
+
+ regs->nip = arch->vex.guest_CIA;
+ regs->msr = 0xf033; /* pretty arbitrary */
+ regs->orig_gpr3 = arch->vex.guest_GPR3;
+ regs->ctr = arch->vex.guest_CTR;
+ regs->link = arch->vex.guest_LR;
+ regs->xer = LibVEX_GuestPPC64_get_XER( &((ThreadArchState*)arch)->vex );
+ regs->ccr = LibVEX_GuestPPC64_get_CR( &((ThreadArchState*)arch)->vex );
+ /* regs->mq = 0; */
+ regs->trap = 0;
+ regs->dar = 0; /* should be fault address? */
+ regs->dsisr = 0;
+ regs->result = 0;
+
#elif defined(VGP_arm_linux)
regs->ARM_r0 = arch->vex.guest_R0;
regs->ARM_r1 = arch->vex.guest_R1;
@@ -458,7 +479,7 @@
DO(24); DO(25); DO(26); DO(27); DO(28); DO(29); DO(30); DO(31);
# undef DO
-#elif defined(VGP_ppc64_linux)
+#elif defined(VGP_ppc64be_linux) || defined(VGP_ppc64le_linux)
/* The guest state has the FPR fields declared as ULongs, so need
to fish out the values without converting them.
NOTE: The 32 FP registers map to the first 32 VSX registers.*/
Modified: branches/BUF_REMOVAL/coregrind/m_debugger.c
==============================================================================
--- branches/BUF_REMOVAL/coregrind/m_debugger.c (original)
+++ branches/BUF_REMOVAL/coregrind/m_debugger.c Wed Aug 13 20:51:50 2014
@@ -152,7 +152,7 @@
(void*)LibVEX_GuestPPC32_get_XER(vex));
return rc;
-#elif defined(VGP_ppc64_linux)
+#elif defined(VGP_ppc64be_linux) || defined(VGP_ppc64le_linux)
Int rc = 0;
/* FRJ: copied nearly verbatim from the ppc32 case. I compared the
vki-ppc64-linux.h with its ppc32 counterpart and saw no
Modified: branches/BUF_REMOVAL/coregrind/m_debuginfo/d3basics.c
==============================================================================
--- branches/BUF_REMOVAL/coregrind/m_debuginfo/d3basics.c (original)
+++ branches/BUF_REMOVAL/coregrind/m_debuginfo/d3basics.c Wed Aug 13 20:51:50 2014
@@ -406,7 +406,7 @@
if (regno == 7/*RSP*/) { *a = regs->sp; return True; }
# elif defined(VGP_ppc32_linux)
if (regno == 1/*SP*/) { *a = regs->sp; return True; }
-# elif defined(VGP_ppc64_linux)
+# elif defined(VGP_ppc64be_linux) || defined(VGP_ppc64le_linux)
if (regno == 1/*SP*/) { *a = regs->sp; return True; }
# elif defined(VGP_arm_linux)
if (regno == 13) { *a = regs->sp; return True; }
@@ -863,7 +863,8 @@
if (!regs)
FAIL("evaluate_Dwarf3_Expr: "
"DW_OP_call_frame_cfa but no reg info");
-#if defined(VGP_ppc32_linux) || defined(VGP_ppc64_linux)
+#if defined(VGP_ppc32_linux) || defined(VGP_ppc64be_linux) \
+ || defined(VGP_ppc64le_linux)
/* Valgrind on ppc32/ppc64 currently doesn't use unwind info. */
uw1 = ML_(read_Addr)((UChar*)regs->sp);
#else
Modified: branches/BUF_REMOVAL/coregrind/m_debuginfo/debuginfo.c
==============================================================================
--- branches/BUF_REMOVAL/coregrind/m_debuginfo/debuginfo.c (original)
+++ branches/BUF_REMOVAL/coregrind/m_debuginfo/debuginfo.c Wed Aug 13 20:51:50 2014
@@ -1,4 +1,5 @@
+
/*--------------------------------------------------------------------*/
/*--- Top level management of symbols and debugging information. ---*/
/*--- debuginfo.c ---*/
@@ -836,8 +837,8 @@
|| defined(VGA_mips64)
is_rx_map = seg->hasR && seg->hasX;
is_rw_map = seg->hasR && seg->hasW;
-# elif defined(VGA_amd64) || defined(VGA_ppc64) || defined(VGA_arm) \
- || defined(VGA_arm64)
+# elif defined(VGA_amd64) || defined(VGA_ppc64be) || defined(VGA_ppc64le) \
+ || defined(VGA_arm) || defined(VGA_arm64)
is_rx_map = seg->hasR && seg->hasX && !seg->hasW;
is_rw_map = seg->hasR && seg->hasW && !seg->hasX;
# elif defined(VGP_s390x_linux)
@@ -1681,7 +1682,7 @@
return True;
}
-/* ppc64-linux only: find the TOC pointer (R2 value) that should be in
+/* ppc64be-linux only: find the TOC pointer (R2 value) that should be in
force at the entry point address of the function containing
guest_code_addr. Returns 0 if not known. */
Addr VG_(get_tocptr) ( Addr guest_code_addr )
@@ -1909,7 +1910,6 @@
DebugInfo* si;
Word locno;
UInt fndn_ix;
- FnDn* fndn;
search_all_loctabs ( a, &si, &locno );
if (si == NULL) {
@@ -1917,22 +1917,25 @@
return False;
}
fndn_ix = ML_(fndn_ix) (si, locno);
- if (fndn_ix == 0)
- *filename = (HChar *)"???"; // FIXME: constification
- else {
- static SizeT bufsiz = 0;
- static HChar *buf = NULL;
- SizeT need;
- fndn = VG_(indexEltNumber) (si->fndnpool, fndn_ix);
- need = VG_(strlen)(fndn->filename) + 1;
- if (need < 256) need = 256;
- if (need > bufsiz) {
- bufsiz = need;
- buf = ML_(dinfo_realloc)("get_filename", buf, bufsiz);
- }
- VG_(strcpy)(buf, fndn->filename);
- *filename = buf;
+
+ // This string is not persistent. It would not survive a dlclose of the
+ // shared object to which the file belonged. The reason is that the
+ // associated debuginfo will be freed and the stringpool hangs off that.
+ const HChar *fname = ML_(fndn_ix2filename) (si, fndn_ix);
+
+ static SizeT bufsiz = 0;
+ static HChar *buf = NULL;
+ SizeT need;
+
+ need = VG_(strlen)(fname) + 1;
+ if (need > bufsiz) {
+ if (need < 256) need = 256;
+ bufsiz = need;
+ buf = ML_(dinfo_realloc)("get_filename", buf, bufsiz);
}
+ VG_(strcpy)(buf, fname);
+ *filename = buf;
+
return True;
}
@@ -1961,7 +1964,6 @@
DebugInfo* si;
Word locno;
UInt fndn_ix;
- FnDn* fndn = NULL;
vg_assert( (dirname == NULL && dirname_available == NULL)
||
@@ -1977,26 +1979,18 @@
}
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);
- }
+ VG_(strncpy_safely)(filename,
+ ML_(fndn_ix2filename) (si, fndn_ix),
+ n_filename);
*lineno = si->loctab[locno].lineno;
if (dirname) {
/* caller wants directory info too .. */
vg_assert(n_dirname > 0);
- if (fndn_ix != 0 && fndn->dirname) {
- /* .. and we have some */
- *dirname_available = True;
- VG_(strncpy_safely)(dirname, fndn->dirname, n_dirname);
- } else {
- /* .. but we don't have any */
- *dirname_available = False;
- *dirname = 0;
- }
+ VG_(strncpy_safely)(dirname,
+ ML_(fndn_ix2dirname) (si, fndn_ix),
+ n_dirname);
+ *dirname_available = *dirname != 0;
}
return True;
@@ -2179,11 +2173,21 @@
? & iipc->di->inltab[iipc->cur_inltab]
: NULL;
vg_assert (cur_inl);
- // The filename and lineno for the inlined fn caller is in cur_inl.
- VG_(snprintf) (buf_srcloc, BUF_LEN, "%s", cur_inl->filename);
- lineno = cur_inl->lineno;
know_dirinfo = False;
+ // The fndn_ix and lineno for the caller of the inlined fn is in cur_inl.
+ if (cur_inl->fndn_ix == 0) {
+ VG_(snprintf) (buf_srcloc, BUF_LEN, "???");
+ } else {
+ FnDn *fndn = VG_(indexEltNumber) (iipc->di->fndnpool,
+ cur_inl->fndn_ix);
+ if (fndn->dirname) {
+ VG_(snprintf) (buf_dirname, BUF_LEN, "%s", fndn->dirname);
+ know_dirinfo = True;
+ }
+ VG_(snprintf) (buf_srcloc, BUF_LEN, "%s", fndn->filename);
+ }
+ lineno = cur_inl->lineno;
know_srcloc = True;
}
@@ -2383,6 +2387,7 @@
case Creg_ARM_R14: return eec->uregs->r14;
case Creg_ARM_R13: return eec->uregs->r13;
case Creg_ARM_R12: return eec->uregs->r12;
+ case Creg_ARM_R7: return eec->uregs->r7;
# elif defined(VGA_s390x)
case Creg_IA_IP: return eec->uregs->ia;
case Creg_IA_SP: return eec->uregs->sp;
@@ -2393,7 +2398,8 @@
case Creg_IA_SP: return eec->uregs->sp;
case Creg_IA_BP: return eec->uregs->fp;
case Creg_MIPS_RA: return eec->uregs->ra;
-# elif defined(VGA_ppc32) || defined(VGA_ppc64)
+# elif defined(VGA_ppc32) || defined(VGA_ppc64be) \
+ || defined(VGA_ppc64le)
# elif defined(VGP_arm64_linux)
case Creg_ARM64_X30: return eec->uregs->x30;
# else
@@ -2643,7 +2649,7 @@
case CFIC_IA_BPREL:
cfa = cfsi_m->cfa_off + uregs->fp;
break;
-# elif defined(VGA_ppc32) || defined(VGA_ppc64)
+# elif defined(VGA_ppc32) || defined(VGA_ppc64be) || defined(VGA_ppc64le)
# elif defined(VGP_arm64_linux)
case CFIC_ARM64_SPREL:
cfa = cfsi_m->cfa_off + uregs->sp;
@@ -2751,7 +2757,7 @@
ipHere = uregsHere->ia;
# elif defined(VGA_mips32) || defined(VGA_mips64)
ipHere = uregsHere->pc;
-# elif defined(VGA_ppc32) || defined(VGA_ppc64)
+# elif defined(VGA_ppc32) || defined(VGA_ppc64be) || defined(VGA_ppc64le)
# elif defined(VGP_arm64_linux)
ipHere = uregsHere->pc;
# else
@@ -2833,7 +2839,7 @@
COMPUTE(uregsPrev.pc, uregsHere->pc, cfsi_m->ra_how, cfsi_m->ra_off);
COMPUTE(uregsPrev.sp, uregsHere->sp, cfsi_m->sp_how, cfsi_m->sp_off);
COMPUTE(uregsPrev.fp, uregsHere->fp, cfsi_m->fp_how, cfsi_m->fp_off);
-# elif defined(VGA_ppc32) || defined(VGA_ppc64)
+# elif defined(VGA_ppc32) || defined(VGA_ppc64be) || defined(VGA_ppc64le)
# elif defined(VGP_arm64_linux)
COMPUTE(uregsPrev.pc, uregsHere->pc, cfsi_m->ra_how, cfsi_m->ra_off);
COMPUTE(uregsPrev.sp, uregsHere->sp, cfsi_m->sp_how, cfsi_m->sp_off);
@@ -3073,6 +3079,7 @@
static void format_message ( /*MOD*/XArray* /* of HChar */ dn1,
/*MOD*/XArray* /* of HChar */ dn2,
Addr data_addr,
+ DebugInfo* di,
DiVariable* var,
PtrdiffT var_offset,
PtrdiffT residual_offset,
@@ -3086,6 +3093,9 @@
const HChar* ro_plural = residual_offset == 1 ? "" : "s";
const HChar* basetag = "auxwhat"; /* a constant */
HChar tagL[32], tagR[32], xagL[32], xagR[32];
+ const HChar *fileName = ML_(fndn_ix2filename)(di, var->fndn_ix);
+ // fileName will be "???" if var->fndn_ix == 0.
+ // fileName will only be used if have_descr is True.
if (frameNo < -1) {
vg_assert(0); /* Not allowed */
@@ -3102,7 +3112,7 @@
vg_assert(var && var->name);
have_descr = VG_(sizeXA)(described) > 0
&& *(UChar*)VG_(indexXA)(described,0) != '\0';
- have_srcloc = var->fileName && var->lineNo > 0;
+ have_srcloc = var->fndn_ix > 0 && var->lineNo > 0;
tagL[0] = tagR[0] = xagL[0] = xagR[0] = 0;
if (xml) {
@@ -3160,12 +3170,12 @@
TXTL( dn2 );
p2XA( dn2,
"declared at %pS:%d, in frame #%d of thread %d",
- var->fileName, var->lineNo, frameNo, (Int)tid );
+ fileName, var->lineNo, frameNo, (Int)tid );
TXTR( dn2 );
// FIXME: also do <dir>
p2XA( dn2,
" <file>%pS</file> <line>%d</line> ",
- var->fileName, var->lineNo );
+ fileName, var->lineNo );
XAGR( dn2 );
} else {
p2XA( dn1,
@@ -3173,7 +3183,7 @@
data_addr, var_offset, vo_plural, var->name );
p2XA( dn2,
"declared at %s:%d, in frame #%d of thread %d",
- var->fileName, var->lineNo, frameNo, (Int)tid );
+ fileName, var->lineNo, frameNo, (Int)tid );
}
}
else
@@ -3217,12 +3227,12 @@
TXTL( dn2 );
p2XA( dn2,
"declared at %pS:%d, in frame #%d of thread %d",
- var->fileName, var->lineNo, frameNo, (Int)tid );
+ fileName, var->lineNo, frameNo, (Int)tid );
TXTR( dn2 );
// FIXME: also do <dir>
p2XA( dn2,
" <file>%pS</file> <line>%d</line> ",
- var->fileName, var->lineNo );
+ fileName, var->lineNo );
XAGR( dn2 );
} else {
p2XA( dn1,
@@ -3231,7 +3241,7 @@
(HChar*)(VG_(indexXA)(described,0)) );
p2XA( dn2,
"declared at %s:%d, in frame #%d of thread %d",
- var->fileName, var->lineNo, frameNo, (Int)tid );
+ fileName, var->lineNo, frameNo, (Int)tid );
}
}
else
@@ -3268,12 +3278,12 @@
TXTL( dn2 );
p2XA( dn2,
"declared at %pS:%d",
- var->fileName, var->lineNo);
+ fileName, var->lineNo);
TXTR( dn2 );
// FIXME: also do <dir>
p2XA( dn2,
" <file>%pS</file> <line>%d</line> ",
- var->fileName, var->lineNo );
+ fileName, var->lineNo );
XAGR( dn2 );
} else {
p2XA( dn1,
@@ -3281,7 +3291,7 @@
data_addr, var_offset, vo_plural, var->name );
p2XA( dn2,
"declared at %s:%d",
- var->fileName, var->lineNo);
+ fileName, var->lineNo);
}
}
else
@@ -3325,12 +3335,12 @@
TXTL( dn2 );
p2XA( dn2,
"a global variable declared at %pS:%d",
- var->fileName, var->lineNo);
+ fileName, var->lineNo);
TXTR( dn2 );
// FIXME: also do <dir>
p2XA( dn2,
" <file>%pS</file> <line>%d</line> ",
- var->fileName, var->lineNo );
+ fileName, var->lineNo );
XAGR( dn2 );
} else {
p2XA( dn1,
@@ -3339,7 +3349,7 @@
(HChar*)(VG_(indexXA)(described,0)) );
p2XA( dn2,
"a global variable declared at %s:%d",
- var->fileName, var->lineNo);
+ fileName, var->lineNo);
}
}
else
@@ -3474,7 +3484,7 @@
di->admin_tyents,
var->typeR, offset );
format_message( dname1, dname2,
- data_addr, var, offset, residual_offset,
+ data_addr, di, var, offset, residual_offset,
described, frameNo, tid );
VG_(deleteXA)( described );
return True;
@@ -3582,7 +3592,7 @@
di->admin_tyents,
var->typeR, offset );
format_message( dname1, dname2,
- data_addr, var, offset, residual_offset,
+ data_addr, di, var, offset, residual_offset,
described, -1/*frameNo*/,
VG_INVALID_THREADID );
VG_(deleteXA)( described );
@@ -4033,8 +4043,8 @@
tl_assert(var->name);
tl_assert(di->soname);
if (0) VG_(printf)("XXXX %s %s %d\n", var->name,
- var->fileName?(HChar*)var->fileName
- :"??",var->lineNo);
+ ML_(fndn_ix2filename)(di, var->fndn_ix),
+ var->lineNo);
VG_(memset)(&gb, 0, sizeof(gb));
gb.addr = res.word;
gb.szB = (SizeT)mul.ul;
@@ -4141,6 +4151,7 @@
Int idx,
/*OUT*/Addr* avma,
/*OUT*/Addr* tocptr,
+ /*OUT*/Addr* local_ep,
/*OUT*/UInt* size,
/*OUT*/HChar** pri_name,
/*OUT*/HChar*** sec_names,
@@ -4150,6 +4161,7 @@
vg_assert(idx >= 0 && idx < si->symtab_used);
if (avma) *avma = si->symtab[idx].addr;
if (tocptr) *tocptr = si->symtab[idx].tocptr;
+ if (local_ep) *local_ep = si->symtab[idx].local_ep;
if (size) *size = si->symtab[idx].size;
if (pri_name) *pri_name = si->symtab[idx].pri_name;
if (sec_names) *sec_names = (HChar **)si->symtab[idx].sec_names; // FIXME
Modified: branches/BUF_REMOVAL/coregrind/m_debuginfo/priv_storage.h
==============================================================================
--- branches/BUF_REMOVAL/coregrind/m_debuginfo/priv_storage.h (original)
+++ branches/BUF_REMOVAL/coregrind/m_debuginfo/priv_storage.h Wed Aug 13 20:51:50 2014
@@ -71,7 +71,8 @@
typedef
struct {
Addr addr; /* lowest address of entity */
- Addr tocptr; /* ppc64-linux only: value that R2 should have */
+ Addr tocptr; /* ppc64be-linux only: value that R2 should have */
+ Addr local_ep; /* address for local entry point, ppc64le */
HChar* pri_name; /* primary name, never NULL */
HChar** sec_names; /* NULL, or a NULL term'd array of other names */
// XXX: this could be shrunk (on 32-bit platforms) by using 30
@@ -140,9 +141,9 @@
Addr addr_hi; /* highest address following the inlined fn */
/* Word 3 */
const HChar* inlinedfn; /* inlined function name */
- /* Word 4 */
- const HChar* filename; /* caller source filename */
- /* Word 5 */
+ /* Word 4 and 5 */
+ UInt fndn_ix; /* index in di->fndnpool of caller source
+ dirname/filename */
UInt lineno:LINENO_BITS; /* caller line number */
UShort level:LEVEL_BITS; /* level of inlining */
}
@@ -274,6 +275,8 @@
Int r12_off;
Int r11_off;
Int r7_off;
+ // If you add additional fields, don't forget to update the
+ // initialisation of this in readexidx.c accordingly.
}
DiCfSI_m;
#elif defined(VGA_arm64)
@@ -291,7 +294,7 @@
Int x29_off;
}
DiCfSI_m;
-#elif defined(VGA_ppc32) || defined(VGA_ppc64)
+#elif defined(VGA_ppc32) || defined(VGA_ppc64be) || defined(VGA_ppc64le)
/* Just have a struct with the common fields in, so that code that
processes the common fields doesn't have to be ifdef'd against
VGP_/VGA_ symbols. These are not used in any way on ppc32/64-linux
@@ -369,13 +372,15 @@
typedef
enum {
- Creg_IA_SP=0x213,
+ Creg_INVALID=0x213,
+ Creg_IA_SP,
Creg_IA_BP,
Creg_IA_IP,
Creg_ARM_R13,
Creg_ARM_R12,
Creg_ARM_R15,
Creg_ARM_R14,
+ Creg_ARM_R7,
Creg_ARM64_X30,
Creg_S390_R14,
Creg_MIPS_RA
@@ -475,8 +480,8 @@
UWord typeR; /* a cuOff */
GExpr* gexpr; /* on DebugInfo.gexprs list */
GExpr* fbGX; /* SHARED. */
- HChar* fileName; /* where declared; may be NULL. in
- DebugInfo.strpool */
+ UInt fndn_ix; /* where declared; may be zero. index
+ in DebugInfo.fndnpool */
Int lineNo; /* where declared; may be zero. */
}
DiVariable;
@@ -788,6 +793,18 @@
PtrdiffT sbss_bias;
Addr sbss_debug_svma;
PtrdiffT sbss_debug_bias;
+ /* .ARM.exidx -- sometimes present on arm32, containing unwind info. */
+ Bool exidx_present;
+ Addr exidx_avma;
+ Addr exidx_svma;
+ SizeT exidx_size;
+ PtrdiffT exidx_bias;
+ /* .ARM.extab -- sometimes present on arm32, containing unwind info. */
+ Bool extab_present;
+ Addr extab_avma;
+ Addr extab_svma;
+ SizeT extab_size;
+ PtrdiffT extab_bias;
/* .plt */
Bool plt_present;
Addr plt_avma;
@@ -800,7 +817,7 @@
Bool gotplt_present;
Addr gotplt_avma;
SizeT gotplt_size;
- /* .opd -- needed on ppc64-linux for finding symbols */
+ /* .opd -- needed on ppc64be-linux for finding symbols */
Bool opd_present;
Addr opd_avma;
SizeT opd_size;
@@ -888,7 +905,9 @@
cfsi_exprs. */
Addr* cfsi_base;
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. */
+ void* cfsi_m_ix; /* Each index occupies sizeof_cfsi_m_ix bytes.
+ The void* is an UChar* or UShort* or UInt*
+ depending on sizeof_cfsi_m_ix. */
DiCfSI* cfsi_rd; /* Only used during reading, NULL once info is read. */
@@ -975,6 +994,16 @@
const HChar* filename,
const HChar* dirname); /* NULL is allowable */
+/* Returns the filename of the fndn pair identified by fndn_ix.
+ Returns "???" if fndn_ix is 0. */
+extern const HChar* ML_(fndn_ix2filename) (struct _DebugInfo* di,
+ UInt fndn_ix);
+
+/* Returns the dirname of the fndn pair identified by fndn_ix.
+ Returns "" if fndn_ix is 0 or fndn->dirname is NULL. */
+extern const HChar* ML_(fndn_ix2dirname) (struct _DebugInfo* di,
+ UInt fndn_ix);
+
/* 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);
@@ -991,15 +1020,17 @@
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/lineno (dirname
- is not recorded).
+ fndn_ix and lineno identifies the location of the call that caused
+ this inlining.
+ fndn_ix is an index in di->fndnpool, allocated using ML_(addFnDn).
+ Give a 0 index for an unknown filename/dirname pair.
In case of nested inlining, a small level indicates the call
is closer to main that a call with a higher level. */
extern
void ML_(addInlInfo) ( struct _DebugInfo* di,
Addr addr_lo, Addr addr_hi,
const HChar* inlinedfn,
- const HChar* filename,
+ UInt fndn_ix,
Int lineno, UShort level);
/* Add a CFI summary record. The supplied DiCfSI_m is copied. */
@@ -1028,9 +1059,11 @@
UWord typeR, /* a cuOff */
GExpr* gexpr,
GExpr* fbGX, /* SHARED. */
- HChar* fileName, /* where decl'd - may be NULL */
+ UInt fndn_ix, /* where decl'd - may be zero */
Int lineNo, /* where decl'd - may be zero */
Bool show );
+/* Note: fndn_ix identifies a filename/dirname pair similarly to
+ ML_(addInlInfo) and ML_(addLineInfo). */
/* Canonicalise the tables held by 'di', in preparation for use. Call
this after finishing adding entries to these tables. */
Modified: branches/BUF_REMOVAL/coregrind/m_debuginfo/readdwarf.c
==============================================================================
--- branches/BUF_REMOVAL/coregrind/m_debuginfo/readdwarf.c (original)
+++ branches/BUF_REMOVAL/coregrind/m_debuginfo/readdwarf.c Wed Aug 13 20:51:50 2014
@@ -508,10 +508,10 @@
}
VG_(printf)("\n");
}
-
- /* Read the contents of the Directory table. */
+ /* skip over "standard_opcode_lengths" */
data = ML_(cur_plus)(standard_opcodes, info.li_opcode_base - 1);
+ /* Read the contents of the Directory table. */
if (di->ddump_line)
VG_(printf)(" The Directory Table%s\n",
ML_(cur_read_UChar)(data) == 0 ? " is empty." : ":" );
@@ -1735,7 +1735,7 @@
# define FP_REG 1
# define SP_REG 1
# define RA_REG_DEFAULT 65
-#elif defined(VGP_ppc64_linux)
+#elif defined(VGP_ppc64be_linux) || defined(VGP_ppc64le_linux)
# define FP_REG 1
# define SP_REG 1
# define RA_REG_DEFAULT 65
@@ -1775,8 +1775,9 @@
arm-linux (320) seems ludicrously high, but the ARM IHI 0040A page
7 (DWARF for the ARM Architecture) specifies that values up to 320
might exist, for Neon/VFP-v3. */
-#if defined(VGP_ppc32_linux) || defined(VGP_ppc64_linux) \
- || defined(VGP_mips32_linux) || defined(VGP_mips64_linux)
+#if defined(VGP_ppc32_linux) || defined(VGP_ppc64be_linux) \
+ || defined(VGP_ppc64le_linux) || defined(VGP_mips32_linux) \
+ || defined(VGP_mips64_linux)
# define N_CFI_REGS 72
#elif defined(VGP_arm_linux)
# define N_CFI_REGS 320
@@ -2393,7 +2394,7 @@
return True;
-# elif defined(VGA_ppc32) || defined(VGA_ppc64)
+# elif defined(VGA_ppc32) || defined(VGA_ppc64be) || defined(VGA_ppc64le)
/* These don't use CFI based unwinding (is that really true?) */
# else
@@ -2487,7 +2488,8 @@
return ML_(CfiExpr_CfiReg)( dstxa, Creg_IA_IP );
# elif defined(VGA_arm64)
I_die_here;
-# elif defined(VGA_ppc32) || defined(VGA_ppc64)
+# elif defined(VGA_ppc32) || defined(VGA_ppc64be) \
+ || defined(VGA_ppc64le)
# else
# error "Unknown arch"
# endif
@@ -3658,7 +3660,8 @@
if (!is_ehframe)
vg_assert(frame_avma == 0);
-# if defined(VGP_ppc32_linux) || defined(VGP_ppc64_linux)
+# if defined(VGP_ppc32_linux) || defined(VGP_ppc64be_linux) \
+ || defined(VGP_ppc64le_linux)
/* These targets don't use CFI-based stack unwinding. */
return;
# endif
Modified: branches/BUF_REMOVAL/coregrind/m_debuginfo/readdwarf3.c
==============================================================================
--- branches/BUF_REMOVAL/coregrind/m_debuginfo/readdwarf3.c (original)
+++ branches/BUF_REMOVAL/coregrind/m_debuginfo/readdwarf3.c Wed Aug 13 20:51:50 2014
@@ -1574,7 +1574,7 @@
GExpr* gexpr; /* for this variable */
GExpr* fbGX; /* to find the frame base of the enclosing fn, if
any */
- HChar* fName; /* declaring file name, or NULL */
+ UInt fndn_ix; /* declaring file/dirname index in fndnpool, or 0 */
Int fLine; /* declaring file line number, or zero */
/* offset in .debug_info, so that abstract instances can be
found to satisfy references from concrete instances. */
@@ -1610,9 +1610,9 @@
Bool isFunc[N_D3_VAR_STACK]; /* from DW_AT_subprogram? */
GExpr* fbGX[N_D3_VAR_STACK]; /* if isFunc, contains the FB
expr, else NULL */
- /* The file name table. Is a mapping from integer index to the
- (permanent) copy of the string in in DebugInfo's .strpool. */
- XArray* /* of UChar* */ filenameTable;
+ /* The fndn_ix file name/dirname table. Is a mapping from dwarf
+ integer index to the index in di->fndnpool. */
+ XArray* /* of UInt* */ fndn_ix_Table;
}
D3VarParser;
@@ -1733,9 +1733,92 @@
return gexpr;
}
+/* Returns an xarray* of directory names (indexed by the dwarf dirname
+ integer).
+ If 'compdir' is NULL, entry [0] will be set to "."
+ otherwise entry [0] is set to compdir.
+ Entry [0] basically means "the current directory of the compilation",
+ whatever that means, according to the DWARF3 spec.
+ FIXME??? readdwarf3.c/readdwarf.c have a lot of duplicated code */
+static
+XArray* read_dirname_xa (struct _DebugInfo* di, const HChar *compdir,
+ Cursor *c,
...
[truncated message content] |
|
From: <sv...@va...> - 2014-08-13 17:22:35
|
Author: florian
Date: Wed Aug 13 17:22:25 2014
New Revision: 14271
Log:
Audit buffer sizes; increase one.
Modified:
branches/BUF_REMOVAL/exp-dhat/dh_main.c
Modified: branches/BUF_REMOVAL/exp-dhat/dh_main.c
==============================================================================
--- branches/BUF_REMOVAL/exp-dhat/dh_main.c (original)
+++ branches/BUF_REMOVAL/exp-dhat/dh_main.c Wed Aug 13 17:22:25 2014
@@ -1094,7 +1094,7 @@
static void show_APInfo ( APInfo* api )
{
- HChar bufA[80];
+ HChar bufA[80]; // large enough
VG_(memset)(bufA, 0, sizeof(bufA));
if (api->tot_blocks > 0) {
show_N_div_100( bufA, ((ULong)api->tot_bytes * 100ULL)
@@ -1121,7 +1121,7 @@
ULong aad_frac_10k
= g_guest_instrs_executed == 0
? 0 : (10000ULL * aad) / g_guest_instrs_executed;
- HChar buf[16];
+ HChar buf[80]; // large enough
show_N_div_100(buf, aad_frac_10k);
VG_(umsg)("deaths: %'llu, at avg age %'llu "
"(%s%% of prog lifetime)\n",
@@ -1130,7 +1130,7 @@
VG_(umsg)("deaths: none (none of these blocks were freed)\n");
}
- HChar bufR[80], bufW[80];
+ HChar bufR[80], bufW[80]; // large enough
VG_(memset)(bufR, 0, sizeof(bufR));
VG_(memset)(bufW, 0, sizeof(bufW));
if (api->tot_bytes > 0) {
|
|
From: <sv...@va...> - 2014-08-13 17:15:44
|
Author: florian
Date: Wed Aug 13 17:15:34 2014
New Revision: 14270
Log:
Use VG_(fdprintf).
Modified:
branches/BUF_REMOVAL/exp-bbv/bbv_main.c
Modified: branches/BUF_REMOVAL/exp-bbv/bbv_main.c
==============================================================================
--- branches/BUF_REMOVAL/exp-bbv/bbv_main.c (original)
+++ branches/BUF_REMOVAL/exp-bbv/bbv_main.c Wed Aug 13 17:15:34 2014
@@ -35,7 +35,6 @@
#include "pub_tool_tooliface.h"
#include "pub_tool_options.h" /* command line options */
-#include "pub_tool_vki.h" /* vki_stat */
#include "pub_tool_libcbase.h" /* VG_(strlen) */
#include "pub_tool_libcfile.h" /* VG_(write) */
#include "pub_tool_libcprint.h" /* VG_(printf) */
@@ -118,13 +117,10 @@
/* and function name for each basic block */
VG_(OSetGen_ResetIter)(instr_info_table);
while ( (bb_elem = VG_(OSetGen_Next)(instr_info_table)) ) {
- VG_(write)(pctrace_fd,"F",1);
- HChar buf[VG_(strlen)(bb_elem->fn_name) + 100]; // large enough
- VG_(sprintf)( buf,":%d:%x:%s\n",
+ VG_(fdprintf)(pctrace_fd, "F:%d:%x:%s\n",
bb_elem->block_num,
(Int)bb_elem->BB_addr,
bb_elem->fn_name);
- VG_(write)(pctrace_fd, buf, VG_(strlen)(buf));
}
VG_(close)(pctrace_fd);
@@ -171,23 +167,21 @@
}
/* put an entry to the bb.out file */
+ Int fd = bbv_thread[current_thread].bbtrace_fd;
- VG_(write)(bbv_thread[current_thread].bbtrace_fd,"T",1);
+ VG_(fdprintf)(fd, "T");
VG_(OSetGen_ResetIter)(instr_info_table);
while ( (bb_elem = VG_(OSetGen_Next)(instr_info_table)) ) {
if ( bb_elem->inst_counter[current_thread] != 0 ) {
- HChar buf[32]; // large enough
- VG_(sprintf)( buf,":%d:%d ",
+ VG_(fdprintf)(fd, ":%d:%d ",
bb_elem->block_num,
bb_elem->inst_counter[current_thread]);
- VG_(write)(bbv_thread[current_thread].bbtrace_fd,
- buf, VG_(strlen)(buf));
bb_elem->inst_counter[current_thread] = 0;
}
}
- VG_(write)(bbv_thread[current_thread].bbtrace_fd,"\n",1);
+ VG_(fdprintf)(fd, "\n");
}
bbv_thread[current_thread].dyn_instr -= interval_size;
|
|
From: <sv...@va...> - 2014-08-13 14:31:14
|
Author: florian
Date: Wed Aug 13 14:31:04 2014
New Revision: 14269
Log:
Remove benign macro redefinition.
Modified:
trunk/cachegrind/cg_main.c
Modified: trunk/cachegrind/cg_main.c
==============================================================================
--- trunk/cachegrind/cg_main.c (original)
+++ trunk/cachegrind/cg_main.c Wed Aug 13 14:31:04 2014
@@ -1363,8 +1363,6 @@
/*--- Cache configuration ---*/
/*------------------------------------------------------------*/
-#define UNDEFINED_CACHE { -1, -1, -1 }
-
static cache_t clo_I1_cache = UNDEFINED_CACHE;
static cache_t clo_D1_cache = UNDEFINED_CACHE;
static cache_t clo_LL_cache = UNDEFINED_CACHE;
|
|
From: <sv...@va...> - 2014-08-13 13:11:01
|
Author: sewardj
Date: Wed Aug 13 13:10:47 2014
New Revision: 2920
Log:
arm64: implement: uqshrn{2}, sqrshrun{2}, sqshrun{2} (scalar, imm)
Modified:
trunk/priv/guest_arm64_toIR.c
Modified: trunk/priv/guest_arm64_toIR.c
==============================================================================
--- trunk/priv/guest_arm64_toIR.c (original)
+++ trunk/priv/guest_arm64_toIR.c Wed Aug 13 13:10:47 2014
@@ -7489,6 +7489,64 @@
return True;
}
+ if (opcode == BITS5(1,0,0,1,0) || opcode == BITS5(1,0,0,1,1)
+ || (bitU == 1
+ && (opcode == BITS5(1,0,0,0,0) || opcode == BITS5(1,0,0,0,1)))) {
+ /* -------- 0,10010 SQSHRN #imm -------- */
+ /* -------- 1,10010 UQSHRN #imm -------- */
+ /* -------- 0,10011 SQRSHRN #imm -------- */
+ /* -------- 1,10011 UQRSHRN #imm -------- */
+ /* -------- 1,10000 SQSHRUN #imm -------- */
+ /* -------- 1,10001 SQRSHRUN #imm -------- */
+ UInt size = 0;
+ UInt shift = 0;
+ Bool ok = getLaneInfo_IMMH_IMMB(&shift, &size, immh, immb);
+ if (!ok || size == X11) return False;
+ vassert(size >= X00 && size <= X10);
+ vassert(shift >= 1 && shift <= (8 << size));
+ const HChar* nm = "??";
+ IROp op = Iop_INVALID;
+ /* Decide on the name and the operation. */
+ /**/ if (bitU == 0 && opcode == BITS5(1,0,0,1,0)) {
+ nm = "sqshrn"; op = mkVecQANDqsarNNARROWSS(size);
+ }
+ else if (bitU == 1 && opcode == BITS5(1,0,0,1,0)) {
+ nm = "uqshrn"; op = mkVecQANDqshrNNARROWUU(size);
+ }
+ else if (bitU == 0 && opcode == BITS5(1,0,0,1,1)) {
+ nm = "sqrshrn"; op = mkVecQANDqrsarNNARROWSS(size);
+ }
+ else if (bitU == 1 && opcode == BITS5(1,0,0,1,1)) {
+ nm = "uqrshrn"; op = mkVecQANDqrshrNNARROWUU(size);
+ }
+ else if (bitU == 1 && opcode == BITS5(1,0,0,0,0)) {
+ nm = "sqshrun"; op = mkVecQANDqsarNNARROWSU(size);
+ }
+ else if (bitU == 1 && opcode == BITS5(1,0,0,0,1)) {
+ nm = "sqrshrun"; op = mkVecQANDqrsarNNARROWSU(size);
+ }
+ else vassert(0);
+ /* Compute the result (Q, shifted value) pair. */
+ IRTemp src128 = math_ZERO_ALL_EXCEPT_LOWEST_LANE(size+1, getQReg128(nn));
+ IRTemp pair = newTempV128();
+ assign(pair, binop(op, mkexpr(src128), mkU8(shift)));
+ /* Update the result reg */
+ IRTemp res64in128 = newTempV128();
+ assign(res64in128, unop(Iop_ZeroHI64ofV128, mkexpr(pair)));
+ putQReg128(dd, mkexpr(res64in128));
+ /* Update the Q flag. */
+ IRTemp q64q64 = newTempV128();
+ assign(q64q64, binop(Iop_InterleaveHI64x2, mkexpr(pair), mkexpr(pair)));
+ IRTemp z128 = newTempV128();
+ assign(z128, mkV128(0x0000));
+ updateQCFLAGwithDifference(q64q64, z128);
+ /* */
+ const HChar arrNarrow = "bhsd"[size];
+ const HChar arrWide = "bhsd"[size+1];
+ DIP("%s %c%u, %c%u, #%u\n", nm, arrNarrow, dd, arrWide, nn, shift);
+ return True;
+ }
+
# define INSN(_bMax,_bMin) SLICE_UInt(insn, (_bMax), (_bMin))
return False;
# undef INSN
|
|
From: <sv...@va...> - 2014-08-13 12:51:45
|
Author: florian
Date: Wed Aug 13 12:51:36 2014
New Revision: 14268
Log:
Implement a suggestion found in ms_main.c, namely to add the equivalent
of fprintf to m_libcprint.c The new functions are called
VG_(fdprintf) and VG_(vfdprintf) as they take in a file descriptor as
first argument.
Change massif and cachegrind to use those functions.
In massif, also eliminate the truncation of ip_desc. If does not appear
that ms_print has a buffer size limitation anywhere.
Modified:
branches/BUF_REMOVAL/cachegrind/cg_main.c
branches/BUF_REMOVAL/coregrind/m_libcprint.c
branches/BUF_REMOVAL/include/pub_tool_libcprint.h
branches/BUF_REMOVAL/massif/ms_main.c
Modified: branches/BUF_REMOVAL/cachegrind/cg_main.c
==============================================================================
--- branches/BUF_REMOVAL/cachegrind/cg_main.c (original)
+++ branches/BUF_REMOVAL/cachegrind/cg_main.c Wed Aug 13 12:51:36 2014
@@ -1384,8 +1384,6 @@
{
Int i, fd;
SysRes sres;
- // FIXME: use an xarray and VG_(xaprintf) instead
- HChar buf[512];
HChar *currFile = NULL, *currFn = NULL;
LineCC* lineCC;
@@ -1414,46 +1412,39 @@
// "desc:" lines (giving I1/D1/LL cache configuration). The spaces after
// the 2nd colon makes cg_annotate's output look nicer.
- VG_(sprintf)(buf, "desc: I1 cache: %s\n"
+ VG_(fdprintf)(fd, "desc: I1 cache: %s\n"
"desc: D1 cache: %s\n"
"desc: LL cache: %s\n",
I1.desc_line, D1.desc_line, LL.desc_line);
- VG_(write)(fd, (void*)buf, VG_(strlen)(buf));
// "cmd:" line
- VG_(strcpy)(buf, "cmd:");
- VG_(write)(fd, (void*)buf, VG_(strlen)(buf));
+ VG_(fdprintf)(fd, "cmd:");
if (VG_(args_the_exename)) {
- VG_(write)(fd, " ", 1);
- VG_(write)(fd, VG_(args_the_exename),
- VG_(strlen)( VG_(args_the_exename) ));
+ VG_(fdprintf)(fd, " %s", VG_(args_the_exename));
}
for (i = 0; i < VG_(sizeXA)( VG_(args_for_client) ); i++) {
HChar* arg = * (HChar**) VG_(indexXA)( VG_(args_for_client), i );
if (arg) {
- VG_(write)(fd, " ", 1);
- VG_(write)(fd, arg, VG_(strlen)( arg ));
+ VG_(fdprintf)(fd, " %s", arg);
}
}
// "events:" line
if (clo_cache_sim && clo_branch_sim) {
- VG_(sprintf)(buf, "\nevents: Ir I1mr ILmr Dr D1mr DLmr Dw D1mw DLmw "
+ VG_(fdprintf)(fd, "\nevents: Ir I1mr ILmr Dr D1mr DLmr Dw D1mw DLmw "
"Bc Bcm Bi Bim\n");
}
else if (clo_cache_sim && !clo_branch_sim) {
- VG_(sprintf)(buf, "\nevents: Ir I1mr ILmr Dr D1mr DLmr Dw D1mw DLmw "
+ VG_(fdprintf)(fd, "\nevents: Ir I1mr ILmr Dr D1mr DLmr Dw D1mw DLmw "
"\n");
}
else if (!clo_cache_sim && clo_branch_sim) {
- VG_(sprintf)(buf, "\nevents: Ir "
+ VG_(fdprintf)(fd, "\nevents: Ir "
"Bc Bcm Bi Bim\n");
}
else {
- VG_(sprintf)(buf, "\nevents: Ir\n");
+ VG_(fdprintf)(fd, "\nevents: Ir\n");
}
- VG_(write)(fd, (void*)buf, VG_(strlen)(buf));
-
// Traverse every lineCC
VG_(OSetGen_ResetIter)(CC_table);
while ( (lineCC = VG_(OSetGen_Next)(CC_table)) ) {
@@ -1465,8 +1456,7 @@
// the whole strings would have to be checked.
if ( lineCC->loc.file != currFile ) {
currFile = lineCC->loc.file;
- VG_(sprintf)(buf, "fl=%s\n", currFile);
- VG_(write)(fd, (void*)buf, VG_(strlen)(buf));
+ VG_(fdprintf)(fd, "fl=%s\n", currFile);
distinct_files++;
just_hit_a_new_file = True;
}
@@ -1476,14 +1466,13 @@
// in the old file, hence the just_hit_a_new_file test).
if ( just_hit_a_new_file || lineCC->loc.fn != currFn ) {
currFn = lineCC->loc.fn;
- VG_(sprintf)(buf, "fn=%s\n", currFn);
- VG_(write)(fd, (void*)buf, VG_(strlen)(buf));
+ VG_(fdprintf)(fd, "fn=%s\n", currFn);
distinct_fns++;
}
// Print the LineCC
if (clo_cache_sim && clo_branch_sim) {
- VG_(sprintf)(buf, "%u %llu %llu %llu"
+ VG_(fdprintf)(fd, "%u %llu %llu %llu"
" %llu %llu %llu"
" %llu %llu %llu"
" %llu %llu %llu %llu\n",
@@ -1495,7 +1484,7 @@
lineCC->Bi.b, lineCC->Bi.mp);
}
else if (clo_cache_sim && !clo_branch_sim) {
- VG_(sprintf)(buf, "%u %llu %llu %llu"
+ VG_(fdprintf)(fd, "%u %llu %llu %llu"
" %llu %llu %llu"
" %llu %llu %llu\n",
lineCC->loc.line,
@@ -1504,7 +1493,7 @@
lineCC->Dw.a, lineCC->Dw.m1, lineCC->Dw.mL);
}
else if (!clo_cache_sim && clo_branch_sim) {
- VG_(sprintf)(buf, "%u %llu"
+ VG_(fdprintf)(fd, "%u %llu"
" %llu %llu %llu %llu\n",
lineCC->loc.line,
lineCC->Ir.a,
@@ -1512,13 +1501,11 @@
lineCC->Bi.b, lineCC->Bi.mp);
}
else {
- VG_(sprintf)(buf, "%u %llu\n",
+ VG_(fdprintf)(fd, "%u %llu\n",
lineCC->loc.line,
lineCC->Ir.a);
}
- VG_(write)(fd, (void*)buf, VG_(strlen)(buf));
-
// Update summary stats
Ir_total.a += lineCC->Ir.a;
Ir_total.m1 += lineCC->Ir.m1;
@@ -1540,7 +1527,7 @@
// Summary stats must come after rest of table, since we calculate them
// during traversal. */
if (clo_cache_sim && clo_branch_sim) {
- VG_(sprintf)(buf, "summary:"
+ VG_(fdprintf)(fd, "summary:"
" %llu %llu %llu"
" %llu %llu %llu"
" %llu %llu %llu"
@@ -1552,7 +1539,7 @@
Bi_total.b, Bi_total.mp);
}
else if (clo_cache_sim && !clo_branch_sim) {
- VG_(sprintf)(buf, "summary:"
+ VG_(fdprintf)(fd, "summary:"
" %llu %llu %llu"
" %llu %llu %llu"
" %llu %llu %llu\n",
@@ -1561,7 +1548,7 @@
Dw_total.a, Dw_total.m1, Dw_total.mL);
}
else if (!clo_cache_sim && clo_branch_sim) {
- VG_(sprintf)(buf, "summary:"
+ VG_(fdprintf)(fd, "summary:"
" %llu"
" %llu %llu %llu %llu\n",
Ir_total.a,
@@ -1569,12 +1556,11 @@
Bi_total.b, Bi_total.mp);
}
else {
- VG_(sprintf)(buf, "summary:"
+ VG_(fdprintf)(fd, "summary:"
" %llu\n",
Ir_total.a);
}
- VG_(write)(fd, (void*)buf, VG_(strlen)(buf));
VG_(close)(fd);
}
@@ -1592,7 +1578,7 @@
static void cg_fini(Int exitcode)
{
static HChar buf1[128], buf2[128], buf3[128], buf4[123];
- static HChar fmt[128];
+ static HChar fmt[128]; // large enough
CacheCC D_total;
BranchCC B_total;
Modified: branches/BUF_REMOVAL/coregrind/m_libcprint.c
==============================================================================
--- branches/BUF_REMOVAL/coregrind/m_libcprint.c (original)
+++ branches/BUF_REMOVAL/coregrind/m_libcprint.c Wed Aug 13 12:51:36 2014
@@ -294,6 +294,61 @@
}
+/* --------- fdprintf ---------- */
+
+/* This is like [v]fprintf, except it writes to a file handle using
+ VG_(write). */
+
+#define FDPRINTF_BUFSIZE 1024
+
+typedef struct {
+ HChar buf[FDPRINTF_BUFSIZE];
+ UInt num_chars; // number of characters in buf
+ Int fd; // file descriptor to write to
+} fdprintf_buf;
+
+
+static void add_to__fdprintf_buf ( HChar c, void *p )
+{
+ fdprintf_buf *b = p;
+
+ b->buf[b->num_chars++] = c;
+
+ if (b->num_chars == FDPRINTF_BUFSIZE) {
+ VG_(write)(b->fd, b->buf, b->num_chars);
+ b->num_chars = 0;
+ }
+}
+
+
+UInt VG_(vfdprintf) ( Int fd, const HChar *format, va_list vargs )
+{
+ Int ret;
+ fdprintf_buf b;
+
+ b.fd = fd;
+ b.num_chars = 0;
+
+ ret = VG_(debugLog_vprintf)
+ ( add_to__fdprintf_buf, &b, format, vargs );
+
+ // Flush the buffer.
+ if (b.num_chars)
+ VG_(write)(b.fd, b.buf, b.num_chars);
+
+ return ret;
+}
+
+UInt VG_(fdprintf) ( Int fd, const HChar *format, ... )
+{
+ UInt ret;
+ va_list vargs;
+ va_start(vargs,format);
+ ret = VG_(vfdprintf)(fd, format, vargs);
+ va_end(vargs);
+ return ret;
+}
+
/* ---------------------------------------------------------------------
percentify()
------------------------------------------------------------------ */
Modified: branches/BUF_REMOVAL/include/pub_tool_libcprint.h
==============================================================================
--- branches/BUF_REMOVAL/include/pub_tool_libcprint.h (original)
+++ branches/BUF_REMOVAL/include/pub_tool_libcprint.h Wed Aug 13 12:51:36 2014
@@ -106,6 +106,11 @@
extern UInt VG_(vprintf_xml) ( const HChar *format, va_list vargs )
PRINTF_CHECK(1, 0);
+extern UInt VG_(fdprintf) ( Int fd, const HChar *format, ... )
+ PRINTF_CHECK(2, 3);
+extern UInt VG_(vfdprintf) ( Int fd, const HChar *format, va_list vargs )
+ PRINTF_CHECK(2, 0);
+
/* Do a printf-style operation on either the XML
or normal output channel
or gdb output channel, depending on the setting of VG_(clo_xml)
Modified: branches/BUF_REMOVAL/massif/ms_main.c
==============================================================================
--- branches/BUF_REMOVAL/massif/ms_main.c (original)
+++ branches/BUF_REMOVAL/massif/ms_main.c Wed Aug 13 12:51:36 2014
@@ -2111,14 +2111,8 @@
//--- Writing snapshots ---//
//------------------------------------------------------------//
-HChar FP_buf[BUF_LEN];
-
-// XXX: implement f{,n}printf in m_libcprint.c eventually, and use it here.
-// Then change Cachegrind to use it too.
#define FP(format, args...) ({ \
- VG_(snprintf)(FP_buf, BUF_LEN, format, ##args); \
- FP_buf[BUF_LEN-1] = '\0'; /* Make sure the string is terminated. */ \
- VG_(write)(fd, (void*)FP_buf, VG_(strlen)(FP_buf)); \
+ VG_(fdprintf)(fd, format, ##args); \
})
// Nb: uses a static buffer, each call trashes the last string returned.
@@ -2195,25 +2189,14 @@
}
}
}
- // Nb: We treat this specially (ie. we don't use FP) so that if the
- // ip_desc is too long (eg. due to a long C++ function name), it'll
- // get truncated, but the '\n' is still there so its a valid file.
- // (At one point we were truncating without adding the '\n', which
- // caused bug #155929.)
- //
- // Also, we account for the length of the address in ip_desc when
- // truncating. (The longest address we could have is 18 chars: "0x"
- // plus 16 address digits.) This ensures that the truncated function
- // name always has the same length, which makes truncation
- // deterministic and thus makes testing easier.
- tl_assert(j <= 18);
- VG_(snprintf)(FP_buf, BUF_LEN, "%s\n", ip_desc);
- FP_buf[BUF_LEN-18+j-5] = '.'; // "..." at the end make the
- FP_buf[BUF_LEN-18+j-4] = '.'; // truncation more obvious.
- FP_buf[BUF_LEN-18+j-3] = '.';
- FP_buf[BUF_LEN-18+j-2] = '\n'; // The last char is '\n'.
- FP_buf[BUF_LEN-18+j-1] = '\0'; // The string is terminated.
- VG_(write)(fd, (void*)FP_buf, VG_(strlen)(FP_buf));
+
+ // It used to be that ip_desc was truncated at the end.
+ // But there does not seem to be a good reason for that. Besides,
+ // the string was truncated at the right, which is less than ideal.
+ // Truncation at the beginning of the string would be preferable.
+ // Think several nested namespaces in C++....
+ // Anyhow, we spit out the full-length string now.
+ FP("%s\n", ip_desc);
// Indent.
tl_assert(depth+1 < depth_str_len-1); // -1 for end NUL char
|
|
From: <sv...@va...> - 2014-08-13 09:53:26
|
Author: philippe
Date: Wed Aug 13 09:53:18 2014
New Revision: 14267
Log:
Fix some comments
Modified:
trunk/coregrind/m_debuginfo/readelf.c
Modified: trunk/coregrind/m_debuginfo/readelf.c
==============================================================================
--- trunk/coregrind/m_debuginfo/readelf.c (original)
+++ trunk/coregrind/m_debuginfo/readelf.c Wed Aug 13 09:53:18 2014
@@ -687,22 +687,22 @@
* of instructions between the function's global and local entry points. An
* offset of 0 indicates that there is one entry point. The value must be:
*
- * 0 - one entry point, local and global are the same
- * 1 - reserved
- * 2 - local entry point is one instruction after the global entry point
- * 3 - local entry point is two instructions after the global entry point
- * 4 - local entry point is four instructions after the global entry point
- * 5 - local entry point is eight instructions after the global entry point
- * 6 - local entry point is sixteen two instructions after the global entry point
- * 7 - reserved
+ * 0 - one entry point, local and global are the same
+ * 1 - reserved
+ * 2 - local entry point is one instruction after the global entry point
+ * 3 - local entry point is two instructions after the global entry point
+ * 4 - local entry point is four instructions after the global entry point
+ * 5 - local entry point is eight instructions after the global entry point
+ * 6 - local entry point is sixteen instructions after the global entry point
+ * 7 - reserved
*
- * The extract the three bit field from the other field.
+ * Extract the three bit field from the other field is done by:
* (other_field & STO_PPC64_LOCAL_MASK) >> STO_PPC_LOCAL_BIT
*
* where the #define values are given in include/elf/powerpc.h file for
* the PPC binutils.
*
- * coversion of the three bit field to bytes is given by
+ * conversion of the three bit field to bytes is given by
*
* ((1 << bit_field) >> 2) << 2
*/
|
|
From: <sv...@va...> - 2014-08-13 09:04:15
|
Author: sewardj
Date: Wed Aug 13 09:04:02 2014
New Revision: 14266
Log:
Unbreak the MacOS port following the recent ppc64le port merge.
Modified:
trunk/coregrind/launcher-darwin.c
Modified: trunk/coregrind/launcher-darwin.c
==============================================================================
--- trunk/coregrind/launcher-darwin.c (original)
+++ trunk/coregrind/launcher-darwin.c Wed Aug 13 09:04:02 2014
@@ -59,11 +59,15 @@
const char *apple_name; // e.g. x86_64
const char *valgrind_name; // e.g. amd64
} valid_archs[] = {
- { CPU_TYPE_X86, "i386", "x86" },
- { CPU_TYPE_X86_64, "x86_64", "amd64" },
- { CPU_TYPE_ARM, "arm", "arm" },
- { CPU_TYPE_POWERPC, "ppc", "ppc32" },
- { CPU_TYPE_POWERPC64BE, "ppc64be", "ppc64be" },
+ { CPU_TYPE_X86, "i386", "x86" },
+ { CPU_TYPE_X86_64, "x86_64", "amd64" },
+ { CPU_TYPE_ARM, "arm", "arm" },
+ /* Not that it's actually relevant, since we don't support PPC on
+ MacOS X, but .. the Apple PPC descriptors refer to the BE
+ variant, since the LE variant is something that appeared long
+ after Apple dropped PPC. */
+ { CPU_TYPE_POWERPC, "ppc", "ppc32" },
+ { CPU_TYPE_POWERPC64, "ppc64", "ppc64be" }
};
static int valid_archs_count = sizeof(valid_archs)/sizeof(valid_archs[0]);
|
|
From: <sv...@va...> - 2014-08-13 08:18:26
|
Author: florian
Date: Tue Aug 12 21:11:44 2014
New Revision: 14265
Log:
Followup to r14264: Fix VG_(sysnum_string) for Darwin.
Modified:
trunk/coregrind/m_vkiscnums.c
Modified: trunk/coregrind/m_vkiscnums.c
==============================================================================
--- trunk/coregrind/m_vkiscnums.c (original)
+++ trunk/coregrind/m_vkiscnums.c Tue Aug 12 21:11:44 2014
@@ -56,7 +56,7 @@
#elif defined(VGO_darwin)
//---------------------------------------------------------------------------
-const HChar* VG_(sysnum_string)(Word sysnum, SizeT n_buf, HChar* buf)
+const HChar* VG_(sysnum_string)(Word sysnum)
{
static HChar buf[7+1+20+1]; // large enough
@@ -68,7 +68,7 @@
case VG_DARWIN_SYSCALL_CLASS_DIAG: classname = "diag"; break;
default: classname = "UNKNOWN"; break;
}
- VG_(sprintf)("%s:%ld", classname, VG_DARWIN_SYSNO_INDEX(sysnum));
+ VG_(sprintf)(buf, "%s:%ld", classname, VG_DARWIN_SYSNO_INDEX(sysnum));
return buf;
}
|
|
From: Rich C. <rc...@wi...> - 2014-08-13 05:05:48
|
valgrind revision: 14265
VEX revision: 2919
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-08-12 19:22:01 CDT
Ended at 2014-08-13 00:05:38 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
== 608 tests, 6 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)
memcheck/tests/vbit-test/vbit-test (stderr)
exp-sgcheck/tests/hackedbz2 (stderr)
--tools=none,memcheck,callgrind,helgrind,cachegrind,drd,massif --reps=3 --vg=../valgrind-new --vg=../valgrind-old
+ perl perf/vg_perf --tools=none,memcheck,callgrind,helgrind,cachegrind,drd,massif --reps=3 --vg=../valgrind-new --vg=../valgrind-old perf
-- Running tests in perf ----------------------------------------------
-- bigcode1 --
bigcode1 valgrind-new:0.48s no: 7.8s (16.3x, -----) me:15.0s (31.2x, -----) ca:61.2s (127.5x, -----) he: 8.9s (18.5x, -----) ca:25.6s (53.2x, -----) dr: 8.8s (18.3x, -----) ma: 9.1s (18.9x, -----)
bigcode1 valgrind-old:0.48s no: 7.8s (16.2x, 0.1%) me:15.0s (31.2x, -0.1%) ca:61.2s (127.5x, 0.0%) he: 8.9s (18.5x, 0.0%) ca:25.4s (53.0x, 0.4%) dr: 8.8s (18.3x, 0.1%) ma: 9.1s (18.9x, -0.1%)
-- bigcode2 --
bigcode2 valgrind-new:0.49s no:18.6s (38.0x, -----) me:38.3s (78.1x, -----) ca:105.2s (214.6x, -----) he:22.3s (45.4x, -----) ca:41.1s (83.8x, -----) dr:21.5s (43.8x, -----) ma:21.3s (43.4x, -----)
bigcode2 valgrind-old:0.49s no:18.6s (38.0x, 0.2%) me:38.4s (78.3x, -0.2%) ca:105.7s (215.7x, -0.5%) he:22.2s (45.4x, 0.1%) ca:40.7s (83.0x, 0.9%) dr:21.4s (43.7x, 0.2%) ma:21.3s (43.5x, -0.1%)
-- bz2 --
bz2 valgrind-new:2.32s no:10.3s ( 4.4x, -----) me:27.3s (11.8x, -----) ca:58.9s (25.4x, -----) he:40.2s (17.3x, -----) ca:77.4s (33.3x, -----) dr:55.5s (23.9x, -----) ma: 9.7s ( 4.2x, -----)
bz2 valgrind-old:2.32s no:10.2s ( 4.4x, 1.3%) me:27.2s (11.7x, 0.3%) ca:58.7s (25.3x, 0.2%) he:40.1s (17.3x, 0.2%) ca:75.7s (32.6x, 2.1%) dr:56.4s (24.3x, -1.6%) ma: 9.8s ( 4.2x, -1.0%)
-- fbench --
fbench valgrind-new:1.44s no: 5.5s ( 3.8x, -----) me:17.3s (12.0x, -----) ca:27.1s (18.8x, -----) he:12.8s ( 8.9x, -----) ca:21.6s (15.0x, -----) dr:13.0s ( 9.0x, -----) ma: 5.6s ( 3.9x, -----)
fbench valgrind-old:1.44s no: 5.4s ( 3.8x, 0.4%) me:17.7s (12.3x, -2.5%) ca:27.1s (18.8x, 0.2%) he:12.8s ( 8.9x, 0.2%) ca:21.6s (15.0x, 0.0%) dr:13.0s ( 9.0x, 0.1%) ma: 5.6s ( 3.9x, 0.0%)
-- ffbench --
ffbench valgrind-new:1.00s no: 3.7s ( 3.7x, -----) me:12.1s (12.1x, -----) ca: 8.1s ( 8.1x, -----) he:21.5s (21.5x, -----) ca:27.5s (27.5x, -----) dr:16.6s (16.6x, -----) ma: 3.7s ( 3.7x, -----)
ffbench valgrind-old:1.00s no: 3.7s ( 3.7x, -0.3%) me:12.1s (12.1x, 0.0%) ca: 8.1s ( 8.1x, 0.0%) he:21.6s (21.6x, -0.2%) ca:27.4s (27.4x, 0.3%) dr:16.6s (16.6x, 0.1%) ma: 3.7s ( 3.7x, 0.8%)
-- heap --
heap valgrind-new:0.40s no: 3.3s ( 8.2x, -----) me:22.0s (55.0x, -----) ca:31.6s (79.0x, -----) he:30.5s (76.3x, -----) ca:22.8s (56.9x, -----) dr:20.1s (50.3x, -----) ma:22.1s (55.1x, -----)
heap valgrind-old:0.40s no: 3.3s ( 8.3x, -1.2%) me:21.5s (53.8x, 2.1%) ca:31.5s (78.7x, 0.4%) he:30.6s (76.4x, -0.1%) ca:22.8s (56.9x, -0.0%) dr:20.1s (50.3x, 0.0%) ma:22.2s (55.5x, -0.6%)
-- heap_pdb4 --
heap_pdb4 valgrind-new:0.55s no: 3.6s ( 6.6x, -----) me:42.4s (77.0x, -----) ca:34.1s (62.0x, -----) he:36.0s (65.4x, -----) ca:24.8s (45.1x, -----) dr:22.6s (41.1x, -----) ma:23.6s (42.9x, -----)
heap_pdb4 valgrind-old:0.55s no: 3.6s ( 6.6x, 0.3%) me:42.5s (77.2x, -0.3%) ca:33.9s (61.6x, 0.7%) he:35.5s (64.6x, 1.2%) ca:24.7s (45.0x, 0.4%) dr:22.6s (41.1x, -0.1%) ma:23.5s (42.7x, 0.4%)
-- many-loss-records --
many-loss-records valgrind-new:0.05s no: 1.3s (25.2x, -----) me: 5.9s (118.2x, -----) ca: 5.2s (103.2x, -----) he: 5.2s (104.2x, -----) ca: 4.1s (82.0x, -----) dr: 4.7s (94.6x, -----) ma: 4.6s (92.8x, -----)
many-loss-records valgrind-old:0.05s no: 1.3s (25.2x, 0.0%) me: 5.9s (117.6x, 0.5%) ca: 5.1s (102.4x, 0.8%) he: 5.2s (104.4x, -0.2%) ca: 4.1s (81.8x, 0.2%) dr: 4.7s (94.0x, 0.6%) ma: 4.7s (93.0x, -0.2%)
-- many-xpts --
many-xpts valgrind-new:0.15s no: 1.5s (10.1x, -----) me: 7.0s (46.5x, -----) ca:13.1s (87.4x, -----) he: 9.5s (63.3x, -----) ca: 5.8s (38.9x, -----) dr: 6.2s (41.4x, -----) ma: 7.4s (49.1x, -----)
many-xpts valgrind-old:0.15s no: 1.6s (10.4x, -2.6%) me: 7.0s (46.6x, -0.1%) ca:13.0s (86.6x, 0.9%) he: 9.5s (63.3x, 0.1%) ca: 5.9s (39.3x, -1.0%) dr: 6.2s (41.5x, -0.2%) ma: 7.4s (49.1x, 0.0%)
-- sarp --
sarp valgrind-new:0.10s no: 1.5s (14.8x, -----) me: 9.4s (93.6x, -----) ca: 8.5s (85.2x, -----) he:30.8s (307.7x, -----) ca: 5.6s (56.0x, -----) dr: 4.1s (40.8x, -----) ma: 1.5s (15.2x, -----)
sarp valgrind-old:0.10s no: 1.5s (14.7x, 0.7%) me: 9.4s (94.3x, -0.7%) ca: 8.5s (84.8x, 0.5%) he:30.1s (300.5x, 2.3%) ca: 5.6s (55.7x, 0.5%) dr: 4.1s (40.6x, 0.5%) ma: 1.6s (15.5x, -2.0%)
-- tinycc --
tinycc valgrind-new:0.76s no: 7.6s (10.0x, -----) me:37.4s (49.2x, -----) ca:48.1s (63.3x, -----) he:45.5s (59.9x, -----) ca:45.1s (59.3x, -----) dr:37.6s (49.5x, -----) ma:12.0s (15.8x, -----)
tinycc valgrind-old:0.76s no: 7.6s (10.0x, -0.1%) me:37.4s (49.1x, 0.1%) ca:48.2s (63.4x, -0.2%) he:45.5s (59.9x, -0.0%) ca:45.2s (59.4x, -0.2%) dr:37.8s (49.8x, -0.6%) ma:11.9s (15.7x, 0.6%)
-- Finished tests in perf ----------------------------------------------
== 11 programs, 154 timings =================
real 161m56.351s
user 160m0.458s
sys 1m47.726s
=================================================
./valgrind-new/exp-sgcheck/tests/hackedbz2.stderr.diff-glibc28-amd64
=================================================
--- hackedbz2.stderr.exp-glibc28-amd64 2014-08-12 20:23:53.828219671 -0500
+++ hackedbz2.stderr.out 2014-08-12 21:22:31.535263792 -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-08-12 20:24:22.383531598 -0500
+++ err_disable3.stderr.out 2014-08-12 20:43:14.500810893 -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-08-12 20:24:20.561511695 -0500
+++ err_disable4.stderr.out 2014-08-12 20:43:18.739856697 -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-08-12 20:24:19.933504835 -0500
+++ threadname.stderr.out 2014-08-12 20:49:29.024860199 -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-08-12 20:24:19.611501317 -0500
+++ threadname_xml.stderr.out 2014-08-12 20:49:31.099882647 -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-new/memcheck/tests/vbit-test/vbit-test.stderr.diff
=================================================
--- vbit-test.stderr.exp 2014-08-12 20:24:21.775524957 -0500
+++ vbit-test.stderr.out 2014-08-12 20:51:40.078275994 -0500
@@ -0,0 +1 @@
+unknown opcode 5918
=================================================
./valgrind-old/exp-sgcheck/tests/hackedbz2.stderr.diff-glibc28-amd64
=================================================
--- hackedbz2.stderr.exp-glibc28-amd64 2014-08-12 19:22:46.371051586 -0500
+++ hackedbz2.stderr.out 2014-08-12 20:20:42.546130347 -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-08-12 19:23:04.047245115 -0500
+++ err_disable3.stderr.out 2014-08-12 19:41:38.322446390 -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-08-12 19:23:04.477249823 -0500
+++ err_disable4.stderr.out 2014-08-12 19:41:42.656493741 -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-08-12 19:23:03.992244513 -0500
+++ threadname.stderr.out 2014-08-12 19:47:45.948463340 -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-08-12 19:23:06.116267768 -0500
+++ threadname_xml.stderr.out 2014-08-12 19:47:47.981485557 -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/memcheck/tests/vbit-test/vbit-test.stderr.diff
=================================================
--- vbit-test.stderr.exp 2014-08-12 19:22:59.781198408 -0500
+++ vbit-test.stderr.out 2014-08-12 19:49:55.400878073 -0500
@@ -0,0 +1 @@
+unknown opcode 5918
|
|
From: Christian B. <bor...@de...> - 2014-08-13 04:08:49
|
valgrind revision: 14265 VEX revision: 2919 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-08-13 03:45:01 CEST Ended at 2014-08-13 06:08:35 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 == 658 tests, 4 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/origin5-bz2 (stderr) memcheck/tests/vbit-test/vbit-test (stderr) 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.5x, -----) me: 6.6s (30.1x, -----) ca:26.7s (121.4x, -----) he: 5.5s (25.1x, -----) ca: 9.1s (41.5x, -----) dr: 4.8s (21.6x, -----) ma: 4.7s (21.3x, -----) bigcode1 valgrind-old:0.22s no: 4.8s (22.0x, -2.8%) me: 6.3s (28.5x, 5.3%) ca:26.6s (120.9x, 0.4%) he: 5.5s (24.8x, 1.3%) ca: 9.1s (41.4x, 0.2%) dr: 4.8s (21.7x, -0.2%) ma: 3.9s (17.8x, 16.6%) -- bigcode2 -- bigcode2 valgrind-new:0.24s no: 7.7s (32.1x, -----) me:13.5s (56.2x, -----) ca:39.3s (163.8x, -----) he:10.7s (44.5x, -----) ca:14.3s (59.4x, -----) dr: 8.9s (37.0x, -----) ma: 8.2s (34.0x, -----) bigcode2 valgrind-old:0.24s no: 8.1s (33.6x, -4.5%) me:13.5s (56.1x, 0.1%) ca:39.3s (163.9x, -0.1%) he:10.5s (43.7x, 1.9%) ca:14.3s (59.7x, -0.4%) dr: 8.9s (37.1x, -0.1%) ma: 7.4s (30.8x, 9.4%) -- bz2 -- bz2 valgrind-new:0.70s no: 6.5s ( 9.2x, -----) me:12.6s (18.1x, -----) ca:30.9s (44.1x, -----) he:19.7s (28.1x, -----) ca:34.3s (49.0x, -----) dr:29.4s (42.1x, -----) ma: 3.8s ( 5.4x, -----) bz2 valgrind-old:0.70s no: 7.1s (10.2x,-10.5%) me:12.7s (18.1x, -0.3%) ca:30.9s (44.1x, 0.0%) he:19.6s (28.0x, 0.6%) ca:34.3s (49.0x, -0.0%) dr:29.4s (42.1x, 0.0%) ma: 4.1s ( 5.9x, -9.3%) -- fbench -- fbench valgrind-new:0.41s no: 1.6s ( 4.0x, -----) me: 4.3s (10.5x, -----) ca: 9.3s (22.7x, -----) he: 6.2s (15.2x, -----) ca: 7.2s (17.6x, -----) dr: 5.5s (13.4x, -----) ma: 1.6s ( 4.0x, -----) fbench valgrind-old:0.41s no: 1.6s ( 4.0x, 0.0%) me: 4.3s (10.4x, 0.2%) ca: 9.3s (22.7x, -0.3%) he: 6.2s (15.2x, 0.2%) ca: 7.2s (17.7x, -0.4%) dr: 5.5s (13.4x, 0.4%) ma: 1.6s ( 4.0x, 0.6%) -- ffbench -- ffbench valgrind-new:0.20s no: 1.2s ( 6.1x, -----) me: 3.0s (15.0x, -----) ca: 3.1s (15.7x, -----) he:44.3s (221.3x, -----) ca: 9.7s (48.3x, -----) dr: 7.1s (35.4x, -----) ma: 1.0s ( 5.1x, -----) ffbench valgrind-old:0.20s no: 1.2s ( 6.2x, -1.6%) me: 3.0s (14.9x, 1.0%) ca: 3.1s (15.4x, 1.9%) he:44.1s (220.5x, 0.4%) ca: 9.7s (48.3x, 0.0%) dr: 7.0s (35.1x, 0.7%) ma: 1.1s ( 5.3x, -2.9%) -- heap -- heap valgrind-new:0.23s no: 2.3s ( 9.8x, -----) me: 8.7s (37.7x, -----) ca:13.3s (57.7x, -----) he:12.8s (55.7x, -----) ca:11.4s (49.4x, -----) dr: 7.6s (32.9x, -----) ma: 7.9s (34.3x, -----) heap valgrind-old:0.23s no: 2.3s (10.1x, -2.7%) me: 8.7s (37.7x, 0.0%) ca:13.3s (57.7x, 0.2%) he:12.8s (55.9x, -0.2%) ca:11.4s (49.5x, -0.1%) dr: 7.7s (33.7x, -2.4%) ma: 8.0s (34.7x, -1.4%) -- heap_pdb4 -- heap_pdb4 valgrind-new:0.22s no: 2.6s (12.0x, -----) me:13.3s (60.4x, -----) ca:14.4s (65.3x, -----) he:14.1s (64.2x, -----) ca:12.4s (56.3x, -----) dr: 8.5s (38.6x, -----) ma: 8.0s (36.5x, -----) heap_pdb4 valgrind-old:0.22s no: 2.8s (12.5x, -4.6%) me:12.8s (58.4x, 3.4%) ca:14.4s (65.3x, 0.0%) he:14.0s (63.7x, 0.8%) ca:12.4s (56.4x, -0.2%) dr: 8.6s (39.2x, -1.4%) ma: 8.1s (36.8x, -0.9%) -- many-loss-records -- many-loss-records valgrind-new:0.02s no: 0.5s (26.0x, -----) me: 2.1s (103.5x, -----) ca: 1.9s (97.5x, -----) he: 2.1s (106.0x, -----) ca: 1.9s (96.0x, -----) dr: 1.7s (84.5x, -----) ma: 1.7s (83.5x, -----) many-loss-records valgrind-old:0.02s no: 0.5s (26.5x, -1.9%) me: 2.1s (103.5x, 0.0%) ca: 1.9s (97.5x, 0.0%) he: 2.1s (106.0x, 0.0%) ca: 1.9s (96.0x, 0.0%) dr: 1.7s (85.0x, -0.6%) ma: 1.7s (83.0x, 0.6%) -- many-xpts -- many-xpts valgrind-new:0.07s no: 0.7s ( 9.6x, -----) me: 3.1s (44.9x, -----) ca:365.5s (5221.0x, -----) he: 6.5s (92.6x, -----) ca: 2.8s (40.1x, -----) dr: 2.4s (34.7x, -----) ma: 2.6s (37.1x, -----) many-xpts valgrind-old:0.07s no: 0.7s ( 9.7x, -1.5%) me: 3.1s (44.7x, 0.3%) ca:371.5s (5307.3x, -1.7%) he: 6.5s (93.0x, -0.5%) ca: 2.8s (40.1x, 0.0%) dr: 2.5s (35.1x, -1.2%) ma: 2.6s (37.1x, 0.0%) -- sarp -- sarp valgrind-new:0.03s no: 0.6s (19.7x, -----) me: 3.5s (115.7x, -----) ca: 3.2s (107.0x, -----) he:16.6s (552.7x, -----) ca: 2.0s (68.0x, -----) dr: 1.3s (44.7x, -----) ma: 0.5s (16.0x, -----) sarp valgrind-old:0.03s no: 0.6s (20.7x, -5.1%) me: 3.5s (115.3x, 0.3%) ca: 3.2s (106.7x, 0.3%) he:16.4s (546.7x, 1.1%) ca: 2.0s (68.0x, 0.0%) dr: 1.4s (45.0x, -0.7%) ma: 0.5s (16.3x, -2.1%) -- tinycc -- tinycc valgrind-new:0.21s no: 3.0s (14.4x, -----) me:14.5s (69.1x, -----) ca:30.2s (143.6x, -----) he:27.6s (131.2x, -----) ca:21.2s (101.0x, -----) dr:20.4s (97.3x, -----) ma: 3.9s (18.6x, -----) tinycc valgrind-old:0.21s no: 3.4s (16.1x,-12.3%) me:14.5s (69.0x, 0.1%) ca:30.2s (143.9x, -0.2%) he:27.4s (130.6x, 0.5%) ca:21.2s (101.0x, 0.0%) dr:20.4s (97.4x, -0.0%) ma: 3.9s (18.6x, 0.3%) -- Finished tests in perf ---------------------------------------------- == 11 programs, 154 timings ================= real 110m42.425s user 110m8.786s sys 0m28.593s |
|
From: Tom H. <to...@co...> - 2014-08-13 03:36:23
|
valgrind revision: 14265 VEX revision: 2919 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-08-13 03:22:04 BST Ended at 2014-08-13 04:35:58 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 == 661 tests, 3 stderr failures, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/amd64/insn-pcmpistri (stderr) memcheck/tests/err_disable4 (stderr) memcheck/tests/vbit-test/vbit-test (stderr) none/tests/amd64/sse4-64 (stdout) --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.11s no: 1.7s (15.5x, -----) me: 3.5s (31.9x, -----) ca:15.3s (138.8x, -----) he: 2.0s (18.5x, -----) ca: 4.9s (44.5x, -----) dr: 2.0s (17.8x, -----) ma: 2.0s (18.4x, -----) bigcode1 valgrind-old:0.11s no: 1.8s (16.0x, -2.9%) me: 3.7s (33.5x, -5.1%) ca:15.0s (136.5x, 1.7%) he: 2.2s (20.5x,-10.3%) ca: 4.5s (41.4x, 7.0%) dr: 2.0s (18.0x, -1.0%) ma: 2.1s (19.2x, -4.5%) -- bigcode2 -- bigcode2 valgrind-new:0.18s no: 4.5s (24.8x, -----) me: 9.1s (50.8x, -----) ca:27.9s (155.0x, -----) he: 5.3s (29.5x, -----) ca: 8.5s (47.3x, -----) dr: 5.0s (27.8x, -----) ma: 4.9s (27.2x, -----) bigcode2 valgrind-old:0.18s no: 4.2s (23.6x, 5.1%) me: 8.9s (49.4x, 2.7%) ca:25.7s (142.6x, 8.0%) he: 5.2s (29.1x, 1.3%) ca: 8.1s (44.7x, 5.4%) dr: 4.9s (27.4x, 1.2%) ma: 4.9s (27.3x, -0.4%) -- bz2 -- bz2 valgrind-new:0.60s no: 1.7s ( 2.9x, -----) me: 5.8s ( 9.6x, -----) ca:17.3s (28.9x, -----) he: 8.4s (14.0x, -----) ca:12.2s (20.3x, -----) dr:12.8s (21.4x, -----) ma: 1.8s ( 2.9x, -----) bz2 valgrind-old:0.60s no: 1.7s ( 2.9x, 1.1%) me: 5.8s ( 9.6x, 0.2%) ca:17.2s (28.6x, 0.9%) he: 8.4s (13.9x, 0.1%) ca:12.2s (20.3x, -0.2%) dr:12.8s (21.4x, 0.1%) ma: 1.8s ( 2.9x, -0.6%) -- fbench -- fbench valgrind-new:0.22s no: 1.1s ( 4.8x, -----) me: 3.6s (16.2x, -----) ca: 5.8s (26.1x, -----) he: 3.0s (13.8x, -----) ca: 3.5s (15.7x, -----) dr: 2.9s (13.0x, -----) ma: 1.1s ( 5.0x, -----) fbench valgrind-old:0.22s no: 1.0s ( 4.7x, 1.9%) me: 3.6s (16.3x, -0.8%) ca: 5.7s (26.0x, 0.5%) he: 3.0s (13.7x, 0.7%) ca: 3.5s (15.7x, 0.3%) dr: 2.9s (13.1x, -0.3%) ma: 1.1s ( 5.0x, -0.9%) -- ffbench -- ffbench valgrind-new:0.23s no: 1.2s ( 5.2x, -----) me: 3.1s (13.5x, -----) ca: 2.1s ( 9.3x, -----) he: 5.2s (22.7x, -----) ca: 5.0s (21.8x, -----) dr: 3.6s (15.5x, -----) ma: 1.1s ( 5.0x, -----) ffbench valgrind-old:0.23s no: 1.2s ( 5.2x, -0.8%) me: 3.1s (13.5x, 0.0%) ca: 2.2s ( 9.4x, -0.9%) he: 5.7s (25.0x,-10.2%) ca: 5.0s (21.7x, 0.4%) dr: 3.5s (15.4x, 0.6%) ma: 1.2s ( 5.0x, -0.9%) -- heap -- heap valgrind-new:0.08s no: 0.6s ( 7.6x, -----) me: 5.5s (68.5x, -----) ca: 6.0s (74.8x, -----) he: 7.2s (89.5x, -----) ca: 3.6s (45.4x, -----) dr: 4.3s (53.6x, -----) ma: 4.8s (59.9x, -----) heap valgrind-old:0.08s no: 0.6s ( 7.8x, -1.6%) me: 5.5s (68.2x, 0.4%) ca: 6.0s (74.9x, -0.2%) he: 7.1s (89.2x, 0.3%) ca: 3.6s (44.6x, 1.7%) dr: 4.3s (53.6x, 0.0%) ma: 4.8s (60.2x, -0.6%) -- heap_pdb4 -- heap_pdb4 valgrind-new:0.10s no: 0.7s ( 6.6x, -----) me: 9.0s (90.1x, -----) ca: 6.5s (65.4x, -----) he: 8.3s (83.0x, -----) ca: 3.8s (37.8x, -----) dr: 4.8s (47.5x, -----) ma: 4.9s (49.1x, -----) heap_pdb4 valgrind-old:0.10s no: 0.7s ( 6.7x, -1.5%) me: 8.9s (89.3x, 0.9%) ca: 6.5s (64.7x, 1.1%) he: 8.2s (82.4x, 0.7%) ca: 3.7s (37.4x, 1.1%) dr: 4.8s (47.7x, -0.4%) ma: 5.1s (50.7x, -3.3%) -- many-loss-records -- many-loss-records valgrind-new:0.01s no: 0.2s (23.0x, -----) me: 1.3s (126.0x, -----) ca: 0.9s (95.0x, -----) he: 1.1s (108.0x, -----) ca: 0.6s (64.0x, -----) dr: 0.9s (88.0x, -----) ma: 0.9s (95.0x, -----) many-loss-records valgrind-old:0.01s no: 0.2s (23.0x, 0.0%) me: 1.3s (126.0x, 0.0%) ca: 0.9s (95.0x, 0.0%) he: 1.1s (108.0x, 0.0%) ca: 0.7s (65.0x, -1.6%) dr: 0.9s (88.0x, 0.0%) ma: 1.0s (96.0x, -1.1%) -- many-xpts -- many-xpts valgrind-new:0.04s no: 0.3s ( 7.5x, -----) me: 1.8s (44.5x, -----) ca: 2.9s (73.5x, -----) he: 2.2s (55.0x, -----) ca: 1.1s (28.0x, -----) dr: 1.3s (32.8x, -----) ma: 1.4s (35.2x, -----) many-xpts valgrind-old:0.04s no: 0.3s ( 7.8x, -3.3%) me: 1.8s (44.5x, 0.0%) ca: 3.0s (74.0x, -0.7%) he: 2.2s (55.0x, 0.0%) ca: 1.1s (28.2x, -0.9%) dr: 1.3s (33.0x, -0.8%) ma: 1.4s (35.2x, 0.0%) -- sarp -- sarp valgrind-new:0.02s no: 0.2s (12.5x, -----) me: 2.5s (123.0x, -----) ca: 1.8s (88.5x, -----) he: 7.6s (379.5x, -----) ca: 0.9s (45.5x, -----) dr: 0.8s (40.0x, -----) ma: 0.3s (13.0x, -----) sarp valgrind-old:0.02s no: 0.2s (12.5x, 0.0%) me: 2.5s (123.0x, 0.0%) ca: 1.8s (88.5x, 0.0%) he: 7.9s (394.0x, -3.8%) ca: 0.9s (45.5x, 0.0%) dr: 0.8s (40.0x, 0.0%) ma: 0.3s (13.0x, 0.0%) -- tinycc -- tinycc valgrind-new:0.17s no: 1.4s ( 7.9x, -----) me: 9.2s (54.2x, -----) ca:10.8s (63.8x, -----) he:10.4s (61.1x, -----) ca: 8.8s (51.5x, -----) dr: 8.3s (49.1x, -----) ma: 2.4s (13.9x, -----) tinycc valgrind-old:0.17s no: 1.3s ( 7.9x, 0.7%) me: 9.3s (54.5x, -0.4%) ca:10.8s (63.7x, 0.1%) he:10.4s (61.5x, -0.6%) ca: 9.0s (52.7x, -2.3%) dr: 8.6s (50.3x, -2.5%) ma: 2.4s (14.1x, -1.3%) -- Finished tests in perf ---------------------------------------------- == 11 programs, 154 timings ================= real 37m15.742s user 36m21.122s sys 0m21.890s |
|
From: Tom H. <to...@co...> - 2014-08-13 03:31:44
|
valgrind revision: 14265 VEX revision: 2919 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-08-13 03:12:31 BST Ended at 2014-08-13 04:31:23 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 == 693 tests, 2 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/err_disable4 (stderr) memcheck/tests/vbit-test/vbit-test (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.11s no: 1.7s (15.2x, -----) me: 3.3s (30.3x, -----) ca:14.1s (127.8x, -----) he: 2.0s (18.5x, -----) ca: 4.0s (36.1x, -----) dr: 1.9s (17.5x, -----) ma: 2.1s (19.5x, -----) bigcode1 valgrind-old:0.11s no: 2.5s (22.5x,-47.9%) me: 3.3s (30.2x, 0.3%) ca:14.8s (134.3x, -5.0%) he: 2.0s (18.1x, 2.0%) ca: 4.1s (37.6x, -4.3%) dr: 1.9s (17.3x, 1.0%) ma: 2.1s (19.4x, 0.5%) -- bigcode2 -- bigcode2 valgrind-new:0.15s no: 4.2s (28.0x, -----) me: 9.0s (59.7x, -----) ca:26.1s (174.0x, -----) he: 5.2s (34.3x, -----) ca: 7.3s (48.9x, -----) dr: 5.0s (33.3x, -----) ma: 4.5s (30.1x, -----) bigcode2 valgrind-old:0.15s no: 4.1s (27.2x, 2.9%) me: 8.3s (55.1x, 7.7%) ca:28.3s (188.5x, -8.4%) he: 5.0s (33.5x, 2.5%) ca: 8.1s (54.3x,-10.9%) dr: 4.7s (31.3x, 6.2%) ma: 4.8s (32.0x, -6.2%) -- bz2 -- bz2 valgrind-new:0.52s no: 2.1s ( 4.1x, -----) me: 6.2s (11.9x, -----) ca:13.3s (25.6x, -----) he: 9.5s (18.2x, -----) ca:11.7s (22.6x, -----) dr:11.3s (21.7x, -----) ma: 2.1s ( 4.0x, -----) bz2 valgrind-old:0.52s no: 2.1s ( 4.1x, -0.9%) me: 6.2s (12.0x, -0.5%) ca:13.3s (25.6x, -0.2%) he: 9.4s (18.1x, 0.7%) ca:11.7s (22.5x, 0.3%) dr:11.2s (21.6x, 0.4%) ma: 2.1s ( 4.1x, -0.5%) -- fbench -- fbench valgrind-new:0.22s no: 1.0s ( 4.6x, -----) me: 3.6s (16.4x, -----) ca: 5.4s (24.7x, -----) he: 2.7s (12.5x, -----) ca: 3.2s (14.4x, -----) dr: 2.5s (11.4x, -----) ma: 1.1s ( 4.8x, -----) fbench valgrind-old:0.22s no: 1.0s ( 4.6x, 0.0%) me: 3.6s (16.6x, -1.4%) ca: 5.5s (24.8x, -0.4%) he: 2.8s (12.5x, -0.7%) ca: 3.2s (14.5x, -0.9%) dr: 2.5s (11.3x, 0.8%) ma: 1.1s ( 4.9x, -0.9%) -- ffbench -- ffbench valgrind-new:0.23s no: 0.9s ( 4.1x, -----) me: 2.7s (11.9x, -----) ca: 1.9s ( 8.0x, -----) he: 5.7s (24.7x, -----) ca: 4.2s (18.1x, -----) dr: 3.4s (14.7x, -----) ma: 0.9s ( 3.8x, -----) ffbench valgrind-old:0.23s no: 0.9s ( 4.0x, 1.1%) me: 2.7s (11.8x, 0.7%) ca: 1.8s ( 8.0x, 0.5%) he: 5.6s (24.2x, 2.1%) ca: 4.2s (18.4x, -1.7%) dr: 3.4s (14.7x, 0.3%) ma: 0.9s ( 3.8x, 0.0%) -- heap -- heap valgrind-new:0.14s no: 0.6s ( 4.4x, -----) me: 5.1s (36.1x, -----) ca: 6.3s (44.9x, -----) he: 6.8s (48.7x, -----) ca: 3.3s (23.5x, -----) dr: 4.1s (29.4x, -----) ma: 4.8s (34.1x, -----) heap valgrind-old:0.14s no: 0.6s ( 4.4x, 0.0%) me: 5.0s (36.0x, 0.4%) ca: 6.3s (45.1x, -0.5%) he: 6.9s (49.1x, -0.9%) ca: 3.3s (23.4x, 0.6%) dr: 4.2s (29.8x, -1.2%) ma: 4.8s (34.4x, -1.0%) -- heap_pdb4 -- heap_pdb4 valgrind-new:0.12s no: 0.7s ( 5.7x, -----) me: 8.7s (72.2x, -----) ca: 6.9s (57.2x, -----) he: 8.1s (67.2x, -----) ca: 3.7s (31.0x, -----) dr: 4.9s (40.8x, -----) ma: 5.0s (41.9x, -----) heap_pdb4 valgrind-old:0.12s no: 0.7s ( 5.6x, 1.5%) me: 8.7s (72.2x, 0.1%) ca: 6.8s (57.1x, 0.1%) he: 8.1s (67.4x, -0.4%) ca: 3.7s (31.0x, 0.0%) dr: 4.9s (40.8x, 0.2%) ma: 5.0s (41.8x, 0.2%) -- many-loss-records -- many-loss-records valgrind-new:0.01s no: 0.2s (25.0x, -----) me: 1.2s (125.0x, -----) ca: 1.0s (101.0x, -----) he: 1.1s (108.0x, -----) ca: 0.7s (68.0x, -----) dr: 0.9s (94.0x, -----) ma: 1.0s (97.0x, -----) many-loss-records valgrind-old:0.01s no: 0.2s (25.0x, 0.0%) me: 1.2s (125.0x, 0.0%) ca: 1.0s (101.0x, 0.0%) he: 1.1s (106.0x, 1.9%) ca: 0.7s (67.0x, 1.5%) dr: 0.9s (94.0x, 0.0%) ma: 1.0s (99.0x, -2.1%) -- many-xpts -- many-xpts valgrind-new:0.03s no: 0.3s (10.3x, -----) me: 1.8s (58.7x, -----) ca: 2.7s (89.0x, -----) he: 2.1s (71.7x, -----) ca: 1.0s (32.0x, -----) dr: 1.4s (45.7x, -----) ma: 1.4s (47.3x, -----) many-xpts valgrind-old:0.03s no: 0.3s (10.0x, 3.2%) me: 1.8s (58.7x, 0.0%) ca: 2.7s (88.7x, 0.4%) he: 2.1s (71.3x, 0.5%) ca: 1.0s (32.0x, 0.0%) dr: 1.4s (46.0x, -0.7%) ma: 1.4s (48.0x, -1.4%) -- sarp -- sarp valgrind-new:0.02s no: 0.3s (13.5x, -----) me: 2.4s (119.0x, -----) ca: 1.7s (84.5x, -----) he: 6.5s (327.0x, -----) ca: 1.0s (51.0x, -----) dr: 0.8s (42.5x, -----) ma: 0.3s (14.0x, -----) sarp valgrind-old:0.02s no: 0.3s (13.5x, 0.0%) me: 2.4s (119.0x, 0.0%) ca: 1.7s (84.5x, 0.0%) he: 6.5s (327.0x, 0.0%) ca: 1.0s (50.5x, 1.0%) dr: 0.8s (42.0x, 1.2%) ma: 0.3s (14.0x, 0.0%) -- tinycc -- tinycc valgrind-new:0.16s no: 1.4s ( 8.8x, -----) me: 9.3s (58.1x, -----) ca:10.7s (66.9x, -----) he: 9.4s (59.1x, -----) ca: 8.0s (49.9x, -----) dr: 7.8s (48.6x, -----) ma: 2.5s (15.4x, -----) tinycc valgrind-old:0.16s no: 1.4s ( 8.8x, 0.0%) me: 8.7s (54.4x, 6.4%) ca:10.9s (67.9x, -1.5%) he: 9.6s (59.8x, -1.2%) ca: 8.2s (50.9x, -2.0%) dr: 7.9s (49.6x, -2.1%) ma: 2.5s (15.3x, 0.4%) -- Finished tests in perf ---------------------------------------------- == 11 programs, 154 timings ================= real 36m2.029s user 35m7.308s sys 0m22.138s |
|
From: Tom H. <to...@co...> - 2014-08-13 03:22:40
|
valgrind revision: 14265 VEX revision: 2919 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-08-13 03:01:46 BST Ended at 2014-08-13 04:22:26 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 == 693 tests, 2 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/err_disable4 (stderr) memcheck/tests/vbit-test/vbit-test (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.12s no: 1.9s (15.8x, -----) me: 3.9s (32.1x, -----) ca:15.0s (124.8x, -----) he: 2.4s (20.3x, -----) ca: 4.1s (34.3x, -----) dr: 2.1s (17.7x, -----) ma: 2.3s (19.5x, -----) bigcode1 valgrind-old:0.12s no: 1.8s (14.7x, 7.4%) me: 3.4s (28.4x, 11.4%) ca:16.0s (133.4x, -6.9%) he: 2.1s (17.7x, 12.8%) ca: 4.3s (36.1x, -5.1%) dr: 2.0s (16.7x, 5.7%) ma: 2.0s (16.5x, 15.4%) -- bigcode2 -- bigcode2 valgrind-new:0.11s no: 4.2s (38.2x, -----) me: 9.8s (89.2x, -----) ca:31.9s (290.1x, -----) he: 5.5s (49.8x, -----) ca: 7.7s (70.1x, -----) dr: 5.4s (49.1x, -----) ma: 5.3s (47.9x, -----) bigcode2 valgrind-old:0.11s no: 4.2s (37.8x, 1.0%) me: 8.8s (80.3x, 10.0%) ca:26.8s (243.6x, 16.0%) he: 5.1s (46.1x, 7.5%) ca: 7.6s (69.3x, 1.2%) dr: 5.0s (45.4x, 7.6%) ma: 4.8s (43.5x, 9.3%) -- bz2 -- bz2 valgrind-new:0.55s no: 2.2s ( 4.0x, -----) me: 6.7s (12.1x, -----) ca:13.5s (24.5x, -----) he: 9.0s (16.4x, -----) ca:12.5s (22.7x, -----) dr:11.6s (21.0x, -----) ma: 2.3s ( 4.1x, -----) bz2 valgrind-old:0.55s no: 2.1s ( 3.9x, 1.4%) me: 6.5s (11.9x, 2.2%) ca:14.0s (25.5x, -4.1%) he: 9.7s (17.5x, -6.7%) ca:12.6s (22.9x, -0.5%) dr:11.5s (20.9x, 0.4%) ma: 2.1s ( 3.9x, 5.3%) -- fbench -- fbench valgrind-new:0.22s no: 1.1s ( 4.8x, -----) me: 3.9s (17.5x, -----) ca: 5.7s (25.7x, -----) he: 3.0s (13.6x, -----) ca: 3.4s (15.5x, -----) dr: 2.8s (12.8x, -----) ma: 1.2s ( 5.5x, -----) fbench valgrind-old:0.22s no: 1.1s ( 4.8x, 0.9%) me: 3.6s (16.4x, 6.5%) ca: 5.4s (24.7x, 3.7%) he: 2.8s (12.5x, 8.3%) ca: 3.7s (16.9x, -9.1%) dr: 3.1s (14.0x,-10.0%) ma: 1.1s ( 5.1x, 6.7%) -- ffbench -- ffbench valgrind-new:0.26s no: 1.1s ( 4.1x, -----) me: 2.9s (11.0x, -----) ca: 1.9s ( 7.5x, -----) he: 7.0s (26.9x, -----) ca: 4.8s (18.5x, -----) dr: 3.3s (12.8x, -----) ma: 1.0s ( 3.9x, -----) ffbench valgrind-old:0.26s no: 0.9s ( 3.6x, 11.3%) me: 2.8s (10.9x, 1.4%) ca: 1.9s ( 7.4x, 1.0%) he: 6.6s (25.5x, 5.3%) ca: 4.3s (16.4x, 11.6%) dr: 3.3s (12.6x, 1.5%) ma: 0.9s ( 3.4x, 11.9%) -- heap -- heap valgrind-new:0.08s no: 0.7s ( 8.1x, -----) me: 5.2s (65.0x, -----) ca: 6.7s (83.6x, -----) he: 7.0s (88.1x, -----) ca: 3.4s (42.0x, -----) dr: 4.3s (54.4x, -----) ma: 4.8s (60.0x, -----) heap valgrind-old:0.08s no: 0.7s ( 8.1x, 0.0%) me: 5.2s (64.6x, 0.6%) ca: 6.6s (82.9x, 0.9%) he: 7.0s (88.1x, 0.0%) ca: 3.4s (42.8x, -1.8%) dr: 4.3s (54.0x, 0.7%) ma: 4.8s (59.9x, 0.2%) -- heap_pdb4 -- heap_pdb4 valgrind-new:0.11s no: 0.7s ( 6.4x, -----) me: 8.9s (80.5x, -----) ca: 7.1s (64.5x, -----) he: 7.6s (69.1x, -----) ca: 3.8s (34.3x, -----) dr: 5.0s (45.6x, -----) ma: 5.0s (45.6x, -----) heap_pdb4 valgrind-old:0.11s no: 0.7s ( 6.5x, -1.4%) me: 8.7s (79.5x, 1.4%) ca: 7.1s (64.4x, 0.1%) he: 7.6s (69.1x, 0.0%) ca: 3.8s (34.8x, -1.6%) dr: 5.0s (45.5x, 0.4%) ma: 5.0s (45.7x, -0.2%) -- many-loss-records -- many-loss-records valgrind-new:0.01s no: 0.3s (26.0x, -----) me: 1.3s (131.0x, -----) ca: 1.1s (106.0x, -----) he: 1.1s (106.0x, -----) ca: 0.7s (69.0x, -----) dr: 1.0s (101.0x, -----) ma: 1.0s (99.0x, -----) many-loss-records valgrind-old:0.01s no: 0.3s (26.0x, 0.0%) me: 1.3s (128.0x, 2.3%) ca: 1.1s (106.0x, 0.0%) he: 1.1s (107.0x, -0.9%) ca: 0.7s (68.0x, 1.4%) dr: 1.0s (102.0x, -1.0%) ma: 1.0s (99.0x, 0.0%) -- many-xpts -- many-xpts valgrind-new:0.03s no: 0.3s (10.7x, -----) me: 1.8s (60.7x, -----) ca: 2.8s (93.0x, -----) he: 2.1s (70.3x, -----) ca: 1.0s (32.7x, -----) dr: 1.4s (46.0x, -----) ma: 1.5s (49.0x, -----) many-xpts valgrind-old:0.03s no: 0.3s (10.3x, 3.1%) me: 1.8s (60.7x, 0.0%) ca: 2.8s (93.7x, -0.7%) he: 2.1s (69.0x, 1.9%) ca: 1.0s (33.0x, -1.0%) dr: 1.4s (45.7x, 0.7%) ma: 1.5s (48.7x, 0.7%) -- sarp -- sarp valgrind-new:0.02s no: 0.3s (14.0x, -----) me: 2.4s (117.5x, -----) ca: 1.7s (85.0x, -----) he: 6.3s (315.0x, -----) ca: 1.0s (48.0x, -----) dr: 0.9s (43.0x, -----) ma: 0.3s (15.0x, -----) sarp valgrind-old:0.02s no: 0.3s (14.0x, 0.0%) me: 2.4s (118.0x, -0.4%) ca: 1.7s (86.5x, -1.8%) he: 6.3s (314.5x, 0.2%) ca: 1.0s (48.0x, 0.0%) dr: 0.9s (43.5x, -1.2%) ma: 0.3s (15.0x, 0.0%) -- tinycc -- tinycc valgrind-new:0.17s no: 1.4s ( 8.4x, -----) me: 8.9s (52.4x, -----) ca:11.1s (65.0x, -----) he: 9.5s (55.6x, -----) ca: 8.3s (48.9x, -----) dr: 7.8s (45.9x, -----) ma: 2.5s (14.5x, -----) tinycc valgrind-old:0.17s no: 1.4s ( 8.4x, 0.0%) me: 9.0s (52.9x, -1.0%) ca:11.4s (67.1x, -3.2%) he: 9.4s (55.3x, 0.6%) ca: 8.5s (49.8x, -1.7%) dr: 7.9s (46.6x, -1.5%) ma: 2.4s (14.4x, 0.8%) -- Finished tests in perf ---------------------------------------------- == 11 programs, 154 timings ================= real 37m45.262s user 36m48.984s sys 0m23.869s |
|
From: Tom H. <to...@co...> - 2014-08-13 03:13:28
|
valgrind revision: 14265 VEX revision: 2919 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-08-13 02:51:03 BST Ended at 2014-08-13 04:13:06 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 == 693 tests, 6 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) memcheck/tests/err_disable4 (stderr) memcheck/tests/vbit-test/vbit-test (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 == 693 tests, 7 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) memcheck/tests/err_disable4 (stderr) memcheck/tests/vbit-test/vbit-test (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-08-13 03:10:19.094126681 +0100 --- new.short 2014-08-13 03:32:54.495180985 +0100 *************** *** 8,10 **** ! == 693 tests, 7 stderr failures, 2 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == gdbserver_tests/mcinfcallRU (stderr) --- 8,10 ---- ! == 693 tests, 6 stderr failures, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures == gdbserver_tests/mcinfcallRU (stderr) *************** *** 14,17 **** memcheck/tests/vbit-test/vbit-test (stderr) - none/tests/fdleak_ipv4 (stdout) - none/tests/fdleak_ipv4 (stderr) exp-sgcheck/tests/preen_invars (stdout) --- 14,15 ---- --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.11s no: 1.8s (16.4x, -----) me: 4.3s (39.0x, -----) ca:18.4s (166.9x, -----) he: 2.5s (22.3x, -----) ca: 4.2s (37.7x, -----) dr: 1.9s (17.1x, -----) ma: 2.1s (19.1x, -----) bigcode1 valgrind-old:0.11s no: 2.0s (17.9x, -9.4%) me: 3.9s (35.4x, 9.3%) ca:18.2s (165.6x, 0.8%) he: 2.5s (22.4x, -0.4%) ca: 4.8s (43.8x,-16.1%) dr: 2.0s (18.5x, -8.5%) ma: 2.3s (20.7x, -8.6%) -- bigcode2 -- bigcode2 valgrind-new:0.13s no: 4.8s (36.7x, -----) me:10.5s (80.5x, -----) ca:35.7s (274.3x, -----) he: 6.4s (49.5x, -----) ca: 8.9s (68.6x, -----) dr: 5.3s (40.6x, -----) ma: 5.3s (41.2x, -----) bigcode2 valgrind-old:0.13s no: 4.5s (34.5x, 5.9%) me:10.0s (76.9x, 4.4%) ca:30.1s (231.6x, 15.6%) he: 5.6s (42.8x, 13.4%) ca: 7.4s (57.0x, 16.9%) dr: 5.4s (41.3x, -1.7%) ma: 5.3s (40.5x, 1.5%) -- bz2 -- bz2 valgrind-new:0.55s no: 2.4s ( 4.4x, -----) me: 8.1s (14.7x, -----) ca:14.5s (26.3x, -----) he:10.6s (19.2x, -----) ca:11.8s (21.4x, -----) dr:14.6s (26.5x, -----) ma: 2.4s ( 4.4x, -----) bz2 valgrind-old:0.55s no: 2.1s ( 3.9x, 12.3%) me: 7.7s (13.9x, 5.3%) ca:15.6s (28.3x, -7.6%) he:10.6s (19.3x, -0.5%) ca:13.2s (24.0x,-12.4%) dr:14.6s (26.5x, 0.2%) ma: 2.2s ( 4.1x, 6.2%) -- fbench -- fbench valgrind-new:0.23s no: 1.1s ( 4.6x, -----) me: 3.5s (15.2x, -----) ca: 6.2s (26.8x, -----) he: 2.6s (11.2x, -----) ca: 3.4s (14.8x, -----) dr: 2.9s (12.4x, -----) ma: 1.1s ( 4.9x, -----) fbench valgrind-old:0.23s no: 1.2s ( 5.0x, -9.4%) me: 3.7s (15.9x, -4.9%) ca: 7.0s (30.6x,-14.1%) he: 2.6s (11.2x, 0.0%) ca: 3.0s (13.1x, 11.2%) dr: 2.4s (10.4x, 15.8%) ma: 1.1s ( 4.7x, 3.6%) -- ffbench -- ffbench valgrind-new:0.24s no: 1.0s ( 4.0x, -----) me: 2.9s (12.0x, -----) ca: 1.9s ( 8.0x, -----) he: 6.8s (28.3x, -----) ca: 4.3s (18.0x, -----) dr: 3.5s (14.4x, -----) ma: 0.9s ( 3.8x, -----) ffbench valgrind-old:0.24s no: 1.0s ( 4.2x, -4.2%) me: 2.9s (12.2x, -1.0%) ca: 1.9s ( 7.7x, 3.1%) he: 7.2s (29.9x, -5.4%) ca: 4.1s (16.9x, 6.2%) dr: 3.4s (14.2x, 1.4%) ma: 1.0s ( 4.0x, -7.8%) -- heap -- heap valgrind-new:0.08s no: 0.7s ( 8.6x, -----) me: 5.3s (66.5x, -----) ca: 6.2s (78.1x, -----) he: 7.1s (89.0x, -----) ca: 3.2s (39.6x, -----) dr: 4.4s (54.5x, -----) ma: 5.0s (62.0x, -----) heap valgrind-old:0.08s no: 0.6s ( 8.0x, 7.2%) me: 5.7s (71.5x, -7.5%) ca: 6.7s (84.2x, -7.8%) he: 7.7s (95.8x, -7.6%) ca: 3.2s (40.4x, -1.9%) dr: 4.5s (55.9x, -2.5%) ma: 5.4s (67.4x, -8.7%) -- heap_pdb4 -- heap_pdb4 valgrind-new:0.11s no: 0.7s ( 6.3x, -----) me:10.0s (91.2x, -----) ca: 7.1s (64.3x, -----) he: 8.5s (76.9x, -----) ca: 3.7s (33.4x, -----) dr: 5.2s (47.5x, -----) ma: 5.4s (49.3x, -----) heap_pdb4 valgrind-old:0.11s no: 0.9s ( 7.8x,-24.6%) me: 9.2s (83.3x, 8.7%) ca: 6.7s (61.0x, 5.1%) he: 8.0s (72.5x, 5.7%) ca: 3.6s (32.4x, 3.0%) dr: 5.2s (47.5x, -0.2%) ma: 5.5s (49.9x, -1.3%) -- many-loss-records -- many-loss-records valgrind-new:0.02s no: 0.4s (19.0x, -----) me: 1.4s (71.5x, -----) ca: 1.1s (55.0x, -----) he: 1.2s (62.0x, -----) ca: 0.7s (32.5x, -----) dr: 1.0s (49.5x, -----) ma: 1.1s (55.0x, -----) many-loss-records valgrind-old:0.02s no: 0.2s (12.5x, 34.2%) me: 1.5s (74.0x, -3.5%) ca: 1.0s (51.0x, 7.3%) he: 1.2s (59.0x, 4.8%) ca: 0.7s (37.0x,-13.8%) dr: 1.0s (49.5x, 0.0%) ma: 1.2s (61.5x,-11.8%) -- many-xpts -- many-xpts valgrind-new:0.04s no: 0.4s ( 9.0x, -----) me: 1.9s (48.5x, -----) ca: 2.7s (66.8x, -----) he: 2.2s (56.0x, -----) ca: 0.9s (23.5x, -----) dr: 1.5s (36.5x, -----) ma: 1.7s (42.2x, -----) many-xpts valgrind-old:0.04s no: 0.3s ( 7.8x, 13.9%) me: 1.8s (44.8x, 7.7%) ca: 2.6s (65.5x, 1.9%) he: 2.3s (57.0x, -1.8%) ca: 0.9s (22.8x, 3.2%) dr: 1.4s (36.0x, 1.4%) ma: 1.7s (42.5x, -0.6%) -- sarp -- sarp valgrind-new:0.02s no: 0.3s (14.0x, -----) me: 2.3s (113.5x, -----) ca: 1.7s (85.5x, -----) he: 7.0s (348.0x, -----) ca: 0.9s (43.0x, -----) dr: 0.9s (45.5x, -----) ma: 0.3s (15.0x, -----) sarp valgrind-old:0.02s no: 0.3s (13.5x, 3.6%) me: 2.3s (113.5x, 0.0%) ca: 1.7s (84.5x, 1.2%) he: 6.9s (347.0x, 0.3%) ca: 0.9s (43.0x, 0.0%) dr: 0.9s (45.5x, 0.0%) ma: 0.3s (15.0x, 0.0%) -- tinycc -- tinycc valgrind-new:0.16s no: 1.4s ( 8.8x, -----) me: 8.7s (54.1x, -----) ca:11.0s (68.9x, -----) he:10.4s (64.9x, -----) ca: 7.6s (47.2x, -----) dr: 7.8s (48.8x, -----) ma: 2.5s (15.5x, -----) tinycc valgrind-old:0.16s no: 1.4s ( 8.6x, 2.8%) me: 8.4s (52.6x, 2.8%) ca:10.9s (68.1x, 1.2%) he:10.0s (62.6x, 3.5%) ca: 7.6s (47.3x, -0.1%) dr: 7.7s (48.4x, 0.9%) ma: 2.5s (15.5x, 0.0%) -- Finished tests in perf ---------------------------------------------- == 11 programs, 154 timings ================= real 40m11.557s user 39m6.971s sys 0m25.320s |
|
From: Tom H. <to...@co...> - 2014-08-13 03:06:11
|
valgrind revision: 14265 VEX revision: 2919 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-08-13 02:41:09 BST Ended at 2014-08-13 04:05:54 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 == 693 tests, 3 stderr failures, 1 stdout failure, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/err_disable4 (stderr) memcheck/tests/vbit-test/vbit-test (stderr) exp-sgcheck/tests/preen_invars (stdout) exp-sgcheck/tests/preen_invars (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.12s no: 2.0s (16.6x, -----) me: 4.2s (34.8x, -----) ca:18.3s (152.4x, -----) he: 2.6s (21.6x, -----) ca: 4.9s (40.8x, -----) dr: 2.4s (19.7x, -----) ma: 2.4s (19.8x, -----) bigcode1 valgrind-old:0.12s no: 2.2s (18.2x,-10.1%) me: 3.7s (30.5x, 12.4%) ca:17.9s (148.8x, 2.4%) he: 2.3s (19.2x, 11.2%) ca: 4.9s (40.5x, 0.8%) dr: 2.0s (16.8x, 14.4%) ma: 2.1s (17.2x, 13.0%) -- bigcode2 -- bigcode2 valgrind-new:0.11s no: 4.9s (44.2x, -----) me:10.4s (94.7x, -----) ca:34.6s (314.8x, -----) he: 5.5s (50.5x, -----) ca: 8.1s (73.5x, -----) dr: 6.0s (54.4x, -----) ma: 5.6s (50.8x, -----) bigcode2 valgrind-old:0.11s no: 4.7s (42.9x, 2.9%) me: 9.8s (89.5x, 5.6%) ca:35.2s (319.7x, -1.6%) he: 5.9s (53.4x, -5.8%) ca: 8.5s (77.5x, -5.6%) dr: 5.7s (51.5x, 5.4%) ma: 5.3s (47.9x, 5.7%) -- bz2 -- bz2 valgrind-new:0.61s no: 2.8s ( 4.5x, -----) me: 8.7s (14.3x, -----) ca:17.8s (29.2x, -----) he:11.8s (19.4x, -----) ca:14.9s (24.4x, -----) dr:16.0s (26.3x, -----) ma: 3.5s ( 5.7x, -----) bz2 valgrind-old:0.61s no: 2.8s ( 4.6x, -1.1%) me: 9.2s (15.0x, -5.0%) ca:17.6s (28.9x, 1.2%) he:12.4s (20.3x, -4.9%) ca:12.4s (20.3x, 16.8%) dr:15.2s (24.9x, 5.2%) ma: 2.6s ( 4.2x, 26.2%) -- fbench -- fbench valgrind-new:0.23s no: 1.4s ( 6.0x, -----) me: 4.4s (19.1x, -----) ca: 6.2s (27.0x, -----) he: 2.6s (11.5x, -----) ca: 4.3s (18.7x, -----) dr: 3.0s (12.8x, -----) ma: 1.1s ( 4.7x, -----) fbench valgrind-old:0.23s no: 1.0s ( 4.5x, 24.8%) me: 4.2s (18.1x, 5.0%) ca: 7.0s (30.5x,-12.9%) he: 3.7s (16.3x,-41.7%) ca: 3.8s (16.3x, 12.8%) dr: 2.5s (10.9x, 14.9%) ma: 1.2s ( 5.0x, -6.4%) -- ffbench -- ffbench valgrind-new:0.28s no: 1.1s ( 4.1x, -----) me: 3.0s (10.8x, -----) ca: 2.0s ( 7.0x, -----) he: 8.0s (28.5x, -----) ca: 5.2s (18.6x, -----) dr: 3.5s (12.5x, -----) ma: 1.1s ( 3.8x, -----) ffbench valgrind-old:0.28s no: 1.1s ( 3.9x, 6.1%) me: 2.9s (10.4x, 3.6%) ca: 2.0s ( 7.2x, -3.6%) he: 6.8s (24.1x, 15.2%) ca: 4.3s (15.4x, 16.9%) dr: 3.8s (13.4x, -6.8%) ma: 1.1s ( 3.8x, 0.9%) -- heap -- heap valgrind-new:0.12s no: 0.8s ( 6.7x, -----) me: 6.5s (53.8x, -----) ca: 6.6s (54.8x, -----) he: 7.7s (64.5x, -----) ca: 4.0s (33.8x, -----) dr: 5.0s (41.9x, -----) ma: 6.1s (50.8x, -----) heap valgrind-old:0.12s no: 1.0s ( 8.2x,-22.5%) me: 6.5s (54.0x, -0.5%) ca: 7.0s (58.1x, -5.9%) he: 8.4s (70.0x, -8.5%) ca: 4.2s (35.3x, -4.4%) dr: 4.4s (36.7x, 12.5%) ma: 5.7s (47.2x, 6.9%) -- heap_pdb4 -- heap_pdb4 valgrind-new:0.12s no: 0.7s ( 5.8x, -----) me: 9.0s (74.8x, -----) ca: 8.8s (73.4x, -----) he: 9.8s (81.8x, -----) ca: 4.3s (36.0x, -----) dr: 5.4s (45.2x, -----) ma: 5.2s (43.1x, -----) heap_pdb4 valgrind-old:0.12s no: 0.8s ( 6.2x, -7.1%) me: 9.1s (75.9x, -1.4%) ca: 7.5s (62.1x, 15.4%) he: 8.1s (67.8x, 17.1%) ca: 4.0s (33.5x, 6.9%) dr: 5.2s (43.1x, 4.6%) ma: 5.2s (43.6x, -1.2%) -- many-loss-records -- many-loss-records valgrind-new:0.01s no: 0.3s (26.0x, -----) me: 1.4s (139.0x, -----) ca: 1.1s (106.0x, -----) he: 1.2s (117.0x, -----) ca: 0.7s (67.0x, -----) dr: 1.2s (120.0x, -----) ma: 1.0s (103.0x, -----) many-loss-records valgrind-old:0.01s no: 0.3s (27.0x, -3.8%) me: 1.4s (138.0x, 0.7%) ca: 1.0s (101.0x, 4.7%) he: 1.1s (113.0x, 3.4%) ca: 0.7s (66.0x, 1.5%) dr: 1.0s (101.0x, 15.8%) ma: 1.0s (104.0x, -1.0%) -- many-xpts -- many-xpts valgrind-new:0.03s no: 0.3s (10.3x, -----) me: 1.8s (59.7x, -----) ca: 2.6s (87.3x, -----) he: 2.2s (73.3x, -----) ca: 0.9s (30.3x, -----) dr: 1.4s (47.7x, -----) ma: 1.6s (53.0x, -----) many-xpts valgrind-old:0.03s no: 0.3s (10.7x, -3.2%) me: 1.9s (62.7x, -5.0%) ca: 2.6s (88.0x, -0.8%) he: 2.2s (74.3x, -1.4%) ca: 0.9s (30.7x, -1.1%) dr: 1.5s (50.0x, -4.9%) ma: 1.6s (53.7x, -1.3%) -- sarp -- sarp valgrind-new:0.03s no: 0.3s ( 9.7x, -----) me: 2.1s (70.0x, -----) ca: 1.8s (59.0x, -----) he: 7.5s (248.7x, -----) ca: 1.1s (35.3x, -----) dr: 0.9s (31.7x, -----) ma: 0.3s (10.0x, -----) sarp valgrind-old:0.03s no: 0.3s ( 9.7x, 0.0%) me: 2.6s (87.3x,-24.8%) ca: 1.9s (62.7x, -6.2%) he: 8.2s (273.0x, -9.8%) ca: 0.9s (30.0x, 15.1%) dr: 0.9s (30.0x, 5.3%) ma: 0.3s (10.0x, 0.0%) -- tinycc -- tinycc valgrind-new:0.16s no: 1.4s ( 9.0x, -----) me: 9.5s (59.6x, -----) ca:12.6s (78.9x, -----) he:10.5s (65.4x, -----) ca: 8.4s (52.4x, -----) dr: 9.1s (56.8x, -----) ma: 2.5s (15.4x, -----) tinycc valgrind-old:0.16s no: 1.4s ( 8.6x, 4.9%) me: 9.0s (56.4x, 5.2%) ca:12.1s (75.6x, 4.2%) he:10.5s (65.8x, -0.7%) ca: 8.7s (54.2x, -3.5%) dr: 9.1s (56.7x, 0.1%) ma: 2.6s (16.1x, -4.5%) -- Finished tests in perf ---------------------------------------------- == 11 programs, 154 timings ================= real 43m15.800s user 42m1.015s sys 0m26.576s |
|
From: Tom H. <to...@co...> - 2014-08-13 02:54:08
|
valgrind revision: 14265 VEX revision: 2919 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-08-13 02:31:35 BST Ended at 2014-08-13 03:53:50 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 == 693 tests, 4 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/err_disable4 (stderr) memcheck/tests/vbit-test/vbit-test (stderr) 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 == 693 tests, 3 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/err_disable4 (stderr) memcheck/tests/vbit-test/vbit-test (stderr) exp-sgcheck/tests/hackedbz2 (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short 2014-08-13 02:50:42.971640628 +0100 --- new.short 2014-08-13 03:10:26.450985853 +0100 *************** *** 8,12 **** ! == 693 tests, 3 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/err_disable4 (stderr) memcheck/tests/vbit-test/vbit-test (stderr) exp-sgcheck/tests/hackedbz2 (stderr) --- 8,13 ---- ! == 693 tests, 4 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/err_disable4 (stderr) memcheck/tests/vbit-test/vbit-test (stderr) + none/tests/fdleak_ipv4 (stderr) exp-sgcheck/tests/hackedbz2 (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.11s no: 1.8s (16.4x, -----) me: 3.2s (29.4x, -----) ca:14.7s (133.2x, -----) he: 1.9s (17.6x, -----) ca: 3.8s (34.5x, -----) dr: 2.0s (18.6x, -----) ma: 2.2s (20.3x, -----) bigcode1 valgrind-old:0.11s no: 1.7s (15.1x, 7.8%) me: 3.5s (31.6x, -7.7%) ca:15.8s (143.9x, -8.1%) he: 2.1s (18.7x, -6.2%) ca: 3.9s (35.5x, -3.2%) dr: 2.2s (19.6x, -5.4%) ma: 1.9s (17.5x, 13.9%) -- bigcode2 -- bigcode2 valgrind-new:0.12s no: 3.9s (32.6x, -----) me: 9.0s (75.2x, -----) ca:30.3s (252.8x, -----) he: 5.4s (44.8x, -----) ca: 7.7s (64.4x, -----) dr: 4.5s (37.9x, -----) ma: 4.6s (38.2x, -----) bigcode2 valgrind-old:0.12s no: 3.9s (32.1x, 1.5%) me: 8.6s (71.4x, 5.0%) ca:29.1s (242.3x, 4.1%) he: 5.2s (43.0x, 4.1%) ca: 7.9s (66.2x, -2.7%) dr: 4.6s (38.7x, -2.0%) ma: 4.4s (37.0x, 3.1%) -- bz2 -- bz2 valgrind-new:0.50s no: 2.1s ( 4.1x, -----) me: 6.2s (12.5x, -----) ca:15.1s (30.1x, -----) he:12.9s (25.8x, -----) ca:15.1s (30.1x, -----) dr:15.5s (31.0x, -----) ma: 2.6s ( 5.2x, -----) bz2 valgrind-old:0.50s no: 2.7s ( 5.4x,-29.5%) me: 7.7s (15.4x,-23.8%) ca:17.2s (34.4x,-14.4%) he:12.2s (24.4x, 5.6%) ca:16.1s (32.2x, -6.8%) dr:15.4s (30.8x, 0.6%) ma: 2.5s ( 5.1x, 2.3%) -- fbench -- fbench valgrind-new:0.23s no: 1.3s ( 5.5x, -----) me: 4.0s (17.3x, -----) ca: 6.5s (28.4x, -----) he: 2.8s (12.3x, -----) ca: 3.7s (16.3x, -----) dr: 2.8s (12.2x, -----) ma: 1.2s ( 5.3x, -----) fbench valgrind-old:0.23s no: 1.2s ( 5.3x, 4.7%) me: 4.3s (18.6x, -7.6%) ca: 7.6s (33.0x,-16.4%) he: 3.1s (13.6x,-10.2%) ca: 3.7s (15.9x, 2.1%) dr: 2.9s (12.8x, -5.0%) ma: 1.1s ( 5.0x, 5.7%) -- ffbench -- ffbench valgrind-new:0.27s no: 1.0s ( 3.8x, -----) me: 2.8s (10.4x, -----) ca: 2.2s ( 8.1x, -----) he: 9.1s (33.7x, -----) ca: 6.2s (22.9x, -----) dr: 4.4s (16.4x, -----) ma: 1.1s ( 3.9x, -----) ffbench valgrind-old:0.27s no: 1.1s ( 4.1x, -6.8%) me: 3.1s (11.4x,-10.4%) ca: 2.0s ( 7.6x, 7.3%) he: 8.2s (30.6x, 9.3%) ca: 4.7s (17.4x, 23.7%) dr: 3.9s (14.3x, 12.4%) ma: 1.0s ( 3.9x, 1.9%) -- heap -- heap valgrind-new:0.09s no: 0.7s ( 7.4x, -----) me: 6.8s (75.0x, -----) ca: 7.6s (84.8x, -----) he: 8.8s (97.6x, -----) ca: 4.4s (49.0x, -----) dr: 5.4s (59.7x, -----) ma: 6.1s (68.1x, -----) heap valgrind-old:0.09s no: 0.7s ( 7.8x, -4.5%) me: 6.6s (73.7x, 1.8%) ca: 7.2s (79.9x, 5.8%) he: 9.6s (106.9x, -9.6%) ca: 4.2s (46.6x, 5.0%) dr: 4.8s (53.6x, 10.2%) ma: 5.9s (65.2x, 4.2%) -- heap_pdb4 -- heap_pdb4 valgrind-new:0.11s no: 0.8s ( 7.3x, -----) me:11.2s (102.1x, -----) ca: 8.9s (80.9x, -----) he:11.2s (101.5x, -----) ca: 5.0s (45.5x, -----) dr: 6.5s (59.0x, -----) ma: 6.1s (55.4x, -----) heap_pdb4 valgrind-old:0.11s no: 0.8s ( 6.8x, 6.2%) me:10.8s (98.5x, 3.6%) ca: 9.2s (83.9x, -3.7%) he:10.8s (98.5x, 2.9%) ca: 3.9s (35.3x, 22.4%) dr: 5.2s (47.2x, 20.0%) ma: 5.9s (53.5x, 3.4%) -- many-loss-records -- many-loss-records valgrind-new:0.01s no: 0.3s (29.0x, -----) me: 1.4s (137.0x, -----) ca: 1.0s (104.0x, -----) he: 1.2s (116.0x, -----) ca: 0.7s (72.0x, -----) dr: 1.0s (97.0x, -----) ma: 1.2s (122.0x, -----) many-loss-records valgrind-old:0.01s no: 0.4s (36.0x,-24.1%) me: 1.4s (142.0x, -3.6%) ca: 1.3s (130.0x,-25.0%) he: 1.3s (131.0x,-12.9%) ca: 0.7s (72.0x, 0.0%) dr: 1.2s (124.0x,-27.8%) ma: 1.1s (112.0x, 8.2%) -- many-xpts -- many-xpts valgrind-new:0.03s no: 0.3s (11.0x, -----) me: 1.6s (53.7x, -----) ca: 3.2s (106.7x, -----) he: 2.3s (77.0x, -----) ca: 1.2s (41.0x, -----) dr: 1.7s (56.7x, -----) ma: 1.6s (54.3x, -----) many-xpts valgrind-old:0.03s no: 0.3s (10.7x, 3.0%) me: 1.5s (50.7x, 5.6%) ca: 2.6s (88.0x, 17.5%) he: 2.3s (76.3x, 0.9%) ca: 1.1s (35.3x, 13.8%) dr: 1.5s (51.0x, 10.0%) ma: 1.6s (53.0x, 2.5%) -- sarp -- sarp valgrind-new:0.03s no: 0.4s (12.0x, -----) me: 2.5s (82.3x, -----) ca: 2.5s (83.3x, -----) he: 8.2s (273.0x, -----) ca: 0.9s (31.7x, -----) dr: 1.1s (35.3x, -----) ma: 0.4s (12.0x, -----) sarp valgrind-old:0.03s no: 0.3s (10.0x, 16.7%) me: 2.3s (75.3x, 8.5%) ca: 1.8s (59.3x, 28.8%) he: 7.6s (253.0x, 7.3%) ca: 1.0s (33.0x, -4.2%) dr: 1.0s (34.7x, 1.9%) ma: 0.4s (13.7x,-13.9%) -- tinycc -- tinycc valgrind-new:0.19s no: 1.6s ( 8.6x, -----) me: 8.7s (45.6x, -----) ca:12.2s (64.5x, -----) he:11.9s (62.4x, -----) ca: 8.8s (46.6x, -----) dr:10.5s (55.3x, -----) ma: 3.1s (16.3x, -----) tinycc valgrind-old:0.19s no: 1.5s ( 8.1x, 6.1%) me: 9.7s (50.9x,-11.6%) ca:11.9s (62.4x, 3.2%) he:11.7s (61.4x, 1.7%) ca: 9.4s (49.4x, -6.1%) dr: 9.1s (47.9x, 13.2%) ma: 2.4s (12.6x, 22.7%) -- Finished tests in perf ---------------------------------------------- == 11 programs, 154 timings ================= real 43m23.807s user 41m59.725s sys 0m28.158s |
|
From: Tom H. <to...@co...> - 2014-08-13 02:43:24
|
valgrind revision: 14265 VEX revision: 2919 C compiler: gcc (GCC) 4.8.3 20140624 (Red Hat 4.8.3-1) GDB: GNU gdb (GDB) Fedora 7.7.1-17.fc20 Assembler: GNU assembler version 2.23.2 C library: GNU C Library (GNU libc) stable release version 2.18 uname -mrs: Linux 3.15.3-200.fc20.x86_64 x86_64 Vendor version: Fedora release 20 (Heisenbug) Nightly build on bristol ( x86_64, Fedora 20 ) Started at 2014-08-13 02:21:34 BST Ended at 2014-08-13 03:43:00 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 == 693 tests, 4 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/err_disable4 (stderr) memcheck/tests/vbit-test/vbit-test (stderr) helgrind/tests/hg05_race2 (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 == 693 tests, 3 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/err_disable4 (stderr) memcheck/tests/vbit-test/vbit-test (stderr) exp-sgcheck/tests/hackedbz2 (stderr) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short 2014-08-13 02:42:25.625161058 +0100 --- new.short 2014-08-13 03:01:27.606300660 +0100 *************** *** 8,12 **** ! == 693 tests, 3 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/err_disable4 (stderr) memcheck/tests/vbit-test/vbit-test (stderr) exp-sgcheck/tests/hackedbz2 (stderr) --- 8,13 ---- ! == 693 tests, 4 stderr failures, 0 stdout failures, 0 stderrB failures, 0 stdoutB failures, 0 post failures == memcheck/tests/err_disable4 (stderr) memcheck/tests/vbit-test/vbit-test (stderr) + helgrind/tests/hg05_race2 (stderr) exp-sgcheck/tests/hackedbz2 (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.11s no: 1.6s (14.9x, -----) me: 3.1s (28.4x, -----) ca:13.6s (123.2x, -----) he: 1.9s (17.2x, -----) ca: 3.8s (34.3x, -----) dr: 2.0s (18.5x, -----) ma: 1.9s (17.7x, -----) bigcode1 valgrind-old:0.11s no: 1.7s (15.6x, -4.9%) me: 3.1s (28.5x, -0.6%) ca:13.8s (125.7x, -2.1%) he: 1.9s (17.6x, -2.6%) ca: 3.9s (35.6x, -4.0%) dr: 1.9s (17.0x, 7.9%) ma: 1.9s (17.4x, 2.1%) -- bigcode2 -- bigcode2 valgrind-new:0.14s no: 4.0s (28.4x, -----) me: 8.6s (61.6x, -----) ca:27.1s (193.8x, -----) he: 4.7s (33.5x, -----) ca: 7.2s (51.6x, -----) dr: 4.4s (31.6x, -----) ma: 4.4s (31.7x, -----) bigcode2 valgrind-old:0.14s no: 3.8s (27.4x, 3.5%) me: 8.2s (58.3x, 5.3%) ca:26.2s (187.1x, 3.5%) he: 4.8s (33.9x, -1.3%) ca: 7.3s (52.5x, -1.8%) dr: 5.2s (37.2x,-17.6%) ma: 4.4s (31.5x, 0.7%) -- bz2 -- bz2 valgrind-new:0.52s no: 2.1s ( 4.1x, -----) me: 6.7s (12.9x, -----) ca:13.5s (26.0x, -----) he:10.2s (19.7x, -----) ca:12.6s (24.2x, -----) dr:13.4s (25.7x, -----) ma: 2.6s ( 5.0x, -----) bz2 valgrind-old:0.52s no: 2.2s ( 4.2x, -4.7%) me: 7.0s (13.5x, -5.1%) ca:15.0s (28.9x,-10.9%) he: 9.2s (17.7x, 10.3%) ca:11.6s (22.3x, 7.8%) dr:12.6s (24.1x, 6.1%) ma: 2.2s ( 4.2x, 15.6%) -- fbench -- fbench valgrind-new:0.22s no: 1.1s ( 4.8x, -----) me: 3.3s (15.0x, -----) ca: 5.8s (26.4x, -----) he: 2.9s (13.1x, -----) ca: 3.2s (14.6x, -----) dr: 2.6s (12.0x, -----) ma: 1.1s ( 4.8x, -----) fbench valgrind-old:0.22s no: 1.0s ( 4.7x, 1.9%) me: 3.5s (15.7x, -5.2%) ca: 5.7s (25.7x, 2.6%) he: 2.5s (11.4x, 12.8%) ca: 3.4s (15.4x, -5.0%) dr: 2.4s (10.9x, 9.1%) ma: 1.1s ( 4.9x, -1.9%) -- ffbench -- ffbench valgrind-new:0.26s no: 1.0s ( 3.9x, -----) me: 3.0s (11.6x, -----) ca: 2.3s ( 8.8x, -----) he: 6.3s (24.1x, -----) ca: 4.4s (16.9x, -----) dr: 3.2s (12.5x, -----) ma: 0.9s ( 3.5x, -----) ffbench valgrind-old:0.26s no: 1.0s ( 4.0x, -3.0%) me: 2.8s (10.9x, 6.3%) ca: 1.9s ( 7.5x, 15.3%) he: 5.3s (20.3x, 15.8%) ca: 5.3s (20.3x,-20.5%) dr: 4.4s (16.8x,-34.5%) ma: 1.1s ( 4.2x,-21.1%) -- heap -- heap valgrind-new:0.14s no: 0.8s ( 6.1x, -----) me: 6.9s (49.1x, -----) ca: 7.7s (54.7x, -----) he: 8.9s (63.9x, -----) ca: 4.4s (31.1x, -----) dr: 5.5s (38.9x, -----) ma: 6.5s (46.6x, -----) heap valgrind-old:0.14s no: 0.9s ( 6.4x, -5.9%) me: 6.3s (45.0x, 8.4%) ca: 8.1s (57.9x, -5.9%) he: 8.3s (59.5x, 6.9%) ca: 3.6s (25.8x, 17.2%) dr: 6.2s (44.6x,-14.5%) ma: 6.3s (44.9x, 3.8%) -- heap_pdb4 -- heap_pdb4 valgrind-new:0.11s no: 0.9s ( 7.8x, -----) me:11.6s (105.7x, -----) ca: 8.9s (80.8x, -----) he: 9.0s (82.0x, -----) ca: 4.5s (41.2x, -----) dr: 6.4s (57.9x, -----) ma: 5.8s (52.5x, -----) heap_pdb4 valgrind-old:0.11s no: 1.1s ( 9.8x,-25.6%) me:10.4s (94.7x, 10.4%) ca:10.0s (91.3x,-12.9%) he:10.8s (98.2x,-19.7%) ca: 4.6s (41.8x, -1.5%) dr: 5.5s (49.7x, 14.1%) ma: 6.4s (58.2x,-10.9%) -- many-loss-records -- many-loss-records valgrind-new:0.01s no: 0.3s (26.0x, -----) me: 1.5s (148.0x, -----) ca: 1.3s (129.0x, -----) he: 1.5s (146.0x, -----) ca: 0.8s (76.0x, -----) dr: 1.3s (126.0x, -----) ma: 1.4s (143.0x, -----) many-loss-records valgrind-old:0.01s no: 0.3s (27.0x, -3.8%) me: 1.7s (173.0x,-16.9%) ca: 1.2s (125.0x, 3.1%) he: 1.4s (143.0x, 2.1%) ca: 0.8s (76.0x, 0.0%) dr: 1.2s (123.0x, 2.4%) ma: 1.1s (107.0x, 25.2%) -- many-xpts -- many-xpts valgrind-new:0.04s no: 0.3s ( 8.0x, -----) me: 2.0s (50.5x, -----) ca: 3.4s (85.0x, -----) he: 3.0s (74.0x, -----) ca: 1.0s (25.8x, -----) dr: 1.7s (41.5x, -----) ma: 1.6s (41.2x, -----) many-xpts valgrind-old:0.04s no: 0.3s ( 8.8x, -9.4%) me: 1.6s (41.0x, 18.8%) ca: 3.5s (86.7x, -2.1%) he: 2.8s (70.5x, 4.7%) ca: 1.3s (33.0x,-28.2%) dr: 2.0s (49.2x,-18.7%) ma: 2.1s (52.0x,-26.1%) -- sarp -- sarp valgrind-new:0.02s no: 0.3s (17.5x, -----) me: 2.4s (122.0x, -----) ca: 2.1s (105.5x, -----) he: 7.3s (367.5x, -----) ca: 1.2s (62.5x, -----) dr: 1.2s (62.0x, -----) ma: 0.4s (22.0x, -----) sarp valgrind-old:0.02s no: 0.4s (19.5x,-11.4%) me: 2.5s (125.5x, -2.9%) ca: 2.3s (116.0x,-10.0%) he: 8.8s (438.0x,-19.2%) ca: 1.1s (55.0x, 12.0%) dr: 1.3s (63.0x, -1.6%) ma: 0.5s (24.5x,-11.4%) -- tinycc -- tinycc valgrind-new:0.20s no: 1.8s ( 8.8x, -----) me:10.6s (52.9x, -----) ca:14.3s (71.3x, -----) he:12.4s (62.0x, -----) ca:10.2s (51.1x, -----) dr:10.4s (52.0x, -----) ma: 3.2s (15.9x, -----) tinycc valgrind-old:0.20s no: 1.7s ( 8.6x, 1.7%) me: 9.9s (49.6x, 6.1%) ca:13.2s (66.1x, 7.2%) he:11.8s (58.8x, 5.2%) ca:10.2s (50.9x, 0.2%) dr:10.6s (53.0x, -2.1%) ma: 2.8s (14.2x, 11.0%) -- Finished tests in perf ---------------------------------------------- == 11 programs, 154 timings ================= real 41m32.626s user 40m1.776s sys 0m28.914s |