You can subscribe to this list here.
| 2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
(122) |
Nov
(152) |
Dec
(69) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2003 |
Jan
(6) |
Feb
(25) |
Mar
(73) |
Apr
(82) |
May
(24) |
Jun
(25) |
Jul
(10) |
Aug
(11) |
Sep
(10) |
Oct
(54) |
Nov
(203) |
Dec
(182) |
| 2004 |
Jan
(307) |
Feb
(305) |
Mar
(430) |
Apr
(312) |
May
(187) |
Jun
(342) |
Jul
(487) |
Aug
(637) |
Sep
(336) |
Oct
(373) |
Nov
(441) |
Dec
(210) |
| 2005 |
Jan
(385) |
Feb
(480) |
Mar
(636) |
Apr
(544) |
May
(679) |
Jun
(625) |
Jul
(810) |
Aug
(838) |
Sep
(634) |
Oct
(521) |
Nov
(965) |
Dec
(543) |
| 2006 |
Jan
(494) |
Feb
(431) |
Mar
(546) |
Apr
(411) |
May
(406) |
Jun
(322) |
Jul
(256) |
Aug
(401) |
Sep
(345) |
Oct
(542) |
Nov
(308) |
Dec
(481) |
| 2007 |
Jan
(427) |
Feb
(326) |
Mar
(367) |
Apr
(255) |
May
(244) |
Jun
(204) |
Jul
(223) |
Aug
(231) |
Sep
(354) |
Oct
(374) |
Nov
(497) |
Dec
(362) |
| 2008 |
Jan
(322) |
Feb
(482) |
Mar
(658) |
Apr
(422) |
May
(476) |
Jun
(396) |
Jul
(455) |
Aug
(267) |
Sep
(280) |
Oct
(253) |
Nov
(232) |
Dec
(304) |
| 2009 |
Jan
(486) |
Feb
(470) |
Mar
(458) |
Apr
(423) |
May
(696) |
Jun
(461) |
Jul
(551) |
Aug
(575) |
Sep
(134) |
Oct
(110) |
Nov
(157) |
Dec
(102) |
| 2010 |
Jan
(226) |
Feb
(86) |
Mar
(147) |
Apr
(117) |
May
(107) |
Jun
(203) |
Jul
(193) |
Aug
(238) |
Sep
(300) |
Oct
(246) |
Nov
(23) |
Dec
(75) |
| 2011 |
Jan
(133) |
Feb
(195) |
Mar
(315) |
Apr
(200) |
May
(267) |
Jun
(293) |
Jul
(353) |
Aug
(237) |
Sep
(278) |
Oct
(611) |
Nov
(274) |
Dec
(260) |
| 2012 |
Jan
(303) |
Feb
(391) |
Mar
(417) |
Apr
(441) |
May
(488) |
Jun
(655) |
Jul
(590) |
Aug
(610) |
Sep
(526) |
Oct
(478) |
Nov
(359) |
Dec
(372) |
| 2013 |
Jan
(467) |
Feb
(226) |
Mar
(391) |
Apr
(281) |
May
(299) |
Jun
(252) |
Jul
(311) |
Aug
(352) |
Sep
(481) |
Oct
(571) |
Nov
(222) |
Dec
(231) |
| 2014 |
Jan
(185) |
Feb
(329) |
Mar
(245) |
Apr
(238) |
May
(281) |
Jun
(399) |
Jul
(382) |
Aug
(500) |
Sep
(579) |
Oct
(435) |
Nov
(487) |
Dec
(256) |
| 2015 |
Jan
(338) |
Feb
(357) |
Mar
(330) |
Apr
(294) |
May
(191) |
Jun
(108) |
Jul
(142) |
Aug
(261) |
Sep
(190) |
Oct
(54) |
Nov
(83) |
Dec
(22) |
| 2016 |
Jan
(49) |
Feb
(89) |
Mar
(33) |
Apr
(50) |
May
(27) |
Jun
(34) |
Jul
(53) |
Aug
(53) |
Sep
(98) |
Oct
(206) |
Nov
(93) |
Dec
(53) |
| 2017 |
Jan
(65) |
Feb
(82) |
Mar
(102) |
Apr
(86) |
May
(187) |
Jun
(67) |
Jul
(23) |
Aug
(93) |
Sep
(65) |
Oct
(45) |
Nov
(35) |
Dec
(17) |
| 2018 |
Jan
(26) |
Feb
(35) |
Mar
(38) |
Apr
(32) |
May
(8) |
Jun
(43) |
Jul
(27) |
Aug
(30) |
Sep
(43) |
Oct
(42) |
Nov
(38) |
Dec
(67) |
| 2019 |
Jan
(32) |
Feb
(37) |
Mar
(53) |
Apr
(64) |
May
(49) |
Jun
(18) |
Jul
(14) |
Aug
(53) |
Sep
(25) |
Oct
(30) |
Nov
(49) |
Dec
(31) |
| 2020 |
Jan
(87) |
Feb
(45) |
Mar
(37) |
Apr
(51) |
May
(99) |
Jun
(36) |
Jul
(11) |
Aug
(14) |
Sep
(20) |
Oct
(24) |
Nov
(40) |
Dec
(23) |
| 2021 |
Jan
(14) |
Feb
(53) |
Mar
(85) |
Apr
(15) |
May
(19) |
Jun
(3) |
Jul
(14) |
Aug
(1) |
Sep
(57) |
Oct
(73) |
Nov
(56) |
Dec
(22) |
| 2022 |
Jan
(3) |
Feb
(22) |
Mar
(6) |
Apr
(55) |
May
(46) |
Jun
(39) |
Jul
(15) |
Aug
(9) |
Sep
(11) |
Oct
(34) |
Nov
(20) |
Dec
(36) |
| 2023 |
Jan
(79) |
Feb
(41) |
Mar
(99) |
Apr
(169) |
May
(48) |
Jun
(16) |
Jul
(16) |
Aug
(57) |
Sep
(19) |
Oct
|
Nov
|
Dec
|
| S | M | T | W | T | F | S |
|---|---|---|---|---|---|---|
|
|
|
|
|
1
(14) |
2
(16) |
3
(7) |
|
4
(7) |
5
(9) |
6
(8) |
7
(10) |
8
(16) |
9
(15) |
10
(9) |
|
11
(11) |
12
(13) |
13
(8) |
14
(8) |
15
(10) |
16
(25) |
17
(7) |
|
18
(7) |
19
(13) |
20
(10) |
21
(14) |
22
(11) |
23
(12) |
24
(8) |
|
25
(19) |
26
(10) |
27
(16) |
28
(13) |
|
|
|
|
From: <js...@ac...> - 2007-02-25 05:30:45
|
Nightly build on phoenix ( SuSE 10.0 ) started at 2007-02-25 04:55:01 GMT Checking out vex source tree ... done Building vex ... done Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 254 tests, 6 stderr failures, 1 stdout failure, 0 posttest failures == memcheck/tests/leak-tree (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) |
|
From: Tom H. <th...@cy...> - 2007-02-25 03:23:53
|
Nightly build on dellow ( x86_64, Fedora Core 6 ) started at 2007-02-25 03:10:11 GMT Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 288 tests, 4 stderr failures, 2 stdout failures, 0 posttest failures == memcheck/tests/pointer-trace (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/xml1 (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) none/tests/pth_detached (stdout) |
|
From: Tom H. <th...@cy...> - 2007-02-25 03:23:29
|
Nightly build on alvis ( i686, Red Hat 7.3 ) started at 2007-02-25 03:15:02 GMT Results differ from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Last 20 lines of verbose log follow echo /tmp/ccYTMDnQ.s:4393: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/ccYTMDnQ.s:4513: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/ccYTMDnQ.s:4633: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/ccYTMDnQ.s:4753: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/ccYTMDnQ.s:4873: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/ccYTMDnQ.s:4993: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/ccYTMDnQ.s:5113: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/ccYTMDnQ.s:5233: Error: no such instruction: `fisttpq -56(%ebp)' make[5]: *** [insn_sse3.o] Error 1 rm insn_mmx.c insn_sse2.c insn_fpu.c insn_mmxext.c insn_sse.c insn_sse3.c insn_cmov.c insn_basic.c make[5]: Leaving directory `/tmp/valgrind.15862/valgrind/none/tests/x86' make[4]: *** [check-am] Error 2 make[4]: Leaving directory `/tmp/valgrind.15862/valgrind/none/tests/x86' make[3]: *** [check-recursive] Error 1 make[3]: Leaving directory `/tmp/valgrind.15862/valgrind/none/tests' make[2]: *** [check-recursive] Error 1 make[2]: Leaving directory `/tmp/valgrind.15862/valgrind/none' make[1]: *** [check-recursive] Error 1 make[1]: Leaving directory `/tmp/valgrind.15862/valgrind' make: *** [check] Error 2 ================================================= == Results from 24 hours ago == ================================================= Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Last 20 lines of verbose log follow echo /tmp/ccT8jvVS.s:4393: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/ccT8jvVS.s:4513: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/ccT8jvVS.s:4633: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/ccT8jvVS.s:4753: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/ccT8jvVS.s:4873: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/ccT8jvVS.s:4993: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/ccT8jvVS.s:5113: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/ccT8jvVS.s:5233: Error: no such instruction: `fisttpq -56(%ebp)' make[5]: *** [insn_sse3.o] Error 1 rm insn_mmx.c insn_sse2.c insn_fpu.c insn_mmxext.c insn_sse.c insn_sse3.c insn_cmov.c insn_basic.c make[5]: Leaving directory `/tmp/valgrind.15862/valgrind/none/tests/x86' make[4]: *** [check-am] Error 2 make[4]: Leaving directory `/tmp/valgrind.15862/valgrind/none/tests/x86' make[3]: *** [check-recursive] Error 1 make[3]: Leaving directory `/tmp/valgrind.15862/valgrind/none/tests' make[2]: *** [check-recursive] Error 1 make[2]: Leaving directory `/tmp/valgrind.15862/valgrind/none' make[1]: *** [check-recursive] Error 1 make[1]: Leaving directory `/tmp/valgrind.15862/valgrind' make: *** [check] Error 2 ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Sun Feb 25 03:19:02 2007 --- new.short Sun Feb 25 03:22:50 2007 *************** *** 7,16 **** Last 20 lines of verbose log follow echo ! /tmp/ccT8jvVS.s:4393: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/ccT8jvVS.s:4513: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/ccT8jvVS.s:4633: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/ccT8jvVS.s:4753: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/ccT8jvVS.s:4873: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/ccT8jvVS.s:4993: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/ccT8jvVS.s:5113: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/ccT8jvVS.s:5233: Error: no such instruction: `fisttpq -56(%ebp)' make[5]: *** [insn_sse3.o] Error 1 --- 7,16 ---- Last 20 lines of verbose log follow echo ! /tmp/ccYTMDnQ.s:4393: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/ccYTMDnQ.s:4513: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/ccYTMDnQ.s:4633: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/ccYTMDnQ.s:4753: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/ccYTMDnQ.s:4873: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/ccYTMDnQ.s:4993: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/ccYTMDnQ.s:5113: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/ccYTMDnQ.s:5233: Error: no such instruction: `fisttpq -56(%ebp)' make[5]: *** [insn_sse3.o] Error 1 |
|
From: Tom H. <th...@cy...> - 2007-02-25 03:19:15
|
Nightly build on lloyd ( x86_64, Fedora Core 3 ) started at 2007-02-25 03:05:03 GMT Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 288 tests, 6 stderr failures, 1 stdout failure, 0 posttest failures == memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/xml1 (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) |
|
From: Tom H. <th...@cy...> - 2007-02-25 03:12:43
|
Nightly build on gill ( x86_64, Fedora Core 2 ) started at 2007-02-25 03:00:07 GMT Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 290 tests, 6 stderr failures, 1 stdout failure, 0 posttest failures == memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) none/tests/fdleak_fcntl (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) |
|
From: <js...@ac...> - 2007-02-25 01:17:28
|
Nightly build on g5 ( SuSE 10.1, ppc970 ) started at 2007-02-25 02:00:01 CET 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 == 225 tests, 6 stderr failures, 2 stdout failures, 0 posttest failures == memcheck/tests/deep_templates (stdout) memcheck/tests/leak-cycle (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/pointer-trace (stderr) none/tests/faultstatus (stderr) none/tests/fdleak_cmsg (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) ================================================= == 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 == 225 tests, 6 stderr failures, 3 stdout failures, 0 posttest failures == memcheck/tests/deep_templates (stdout) memcheck/tests/leak-cycle (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/pointer-trace (stderr) none/tests/faultstatus (stderr) none/tests/fdleak_cmsg (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) none/tests/res_search (stdout) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Sun Feb 25 02:09:04 2007 --- new.short Sun Feb 25 02:17:26 2007 *************** *** 8,10 **** ! == 225 tests, 6 stderr failures, 3 stdout failures, 0 posttest failures == memcheck/tests/deep_templates (stdout) --- 8,10 ---- ! == 225 tests, 6 stderr failures, 2 stdout failures, 0 posttest failures == memcheck/tests/deep_templates (stdout) *************** *** 17,19 **** none/tests/mremap2 (stdout) - none/tests/res_search (stdout) --- 17,18 ---- |
|
From: <sv...@va...> - 2007-02-25 00:04:15
|
Author: sewardj
Date: 2007-02-25 00:04:14 +0000 (Sun, 25 Feb 2007)
New Revision: 6613
Log:
Update.
Modified:
trunk/docs/internals/3_2_BUGSTATUS.txt
Modified: trunk/docs/internals/3_2_BUGSTATUS.txt
===================================================================
--- trunk/docs/internals/3_2_BUGSTATUS.txt 2007-02-25 00:03:00 UTC (rev 6612)
+++ trunk/docs/internals/3_2_BUGSTATUS.txt 2007-02-25 00:04:14 UTC (rev 6613)
@@ -33,11 +33,21 @@
r6608 pending 32 n-i-bz intercept for __memmove_chk
+r6593 pending 32 139363 callgrind: fix --collect-systime=yes
+ with "no instrumentation" mode
+
+r6601 pending 32 n-i-bz callgrind: Fix threads display
+ of "callgrind_control -s"
+
Ashley logfile qualifiers in coredumps patch
-RedHat8 needs suppressions
-where did mpi wrappers for Pack/Unpack go? (r6575 ?)
+RedHat8 needs suppressions (r6612) (definitely merge)
+64 bit DWARF in unwind (r6610) (definitely merge)
+Correctly handle DW_CFA_def_cfa_sf (r6599) (definitely merge)
+get rid of kludge_then_addDiCfSI (r6611; do not merge)
+sym reading problems?
+
------- Bugs reported and fixed in 3.2.3 ------
TRUNK 32BRANCH PRI BUG# WHAT
@@ -112,12 +122,7 @@
pending pending 138702 amd64->IR: 0xF0 0xF 0xC0 0x90
(lock xadd %dl,0xb5(%rax))
-r6593 pending 139363 callgrind: fix --collect-systime=yes
- with "no instrumentation" mode
-r6601 pending n-i-bz callgrind: Fix threads display
- of "callgrind_control -s"
-
------- Bugs reported and fixed in 3.2.2 ------
TRUNK 32BRANCH PRI BUG# WHAT
|
|
From: <sv...@va...> - 2007-02-25 00:03:07
|
Author: sewardj
Date: 2007-02-25 00:03:00 +0000 (Sun, 25 Feb 2007)
New Revision: 6612
Log:
Update redhat8 suppressions.
Modified:
trunk/glibc-2.3.supp
Modified: trunk/glibc-2.3.supp
===================================================================
--- trunk/glibc-2.3.supp 2007-02-24 23:29:31 UTC (rev 6611)
+++ trunk/glibc-2.3.supp 2007-02-25 00:03:00 UTC (rev 6612)
@@ -104,6 +104,29 @@
fun:_dl_relocate_object_internal
fun:dl_open_worker
}
+{
+ RedHat8-1
+ Memcheck:Cond
+ fun:elf_dynamic_do_rela.8
+ fun:_dl_relocate_object
+ fun:dl_main
+ fun:_dl_sysdep_start
+}
+{
+ RedHat8-2
+ Memcheck:Cond
+ fun:elf_dynamic_do_rel.7
+ fun:_dl_relocate_object
+ fun:dl_main
+ fun:_dl_sysdep_start
+}
+{
+ RedHat8-3
+ Memcheck:Cond
+ fun:elf_dynamic_do_rela.8
+ fun:_dl_relocate_object
+ fun:dl_open_worker
+}
#-------- glibc 2.3.2/ Fedora Core 1
{
|
|
From: <sv...@va...> - 2007-02-24 23:29:37
|
Author: sewardj
Date: 2007-02-24 23:29:31 +0000 (Sat, 24 Feb 2007)
New Revision: 6611
Log:
CFI reader: make reading of 'encoded addresses' be much more in
line with the DWARF3 spec and also with binutils/readelf.c:
- Update some comments
- Get rid of kludge_then_addDiCfSI; apparently no longer needed
- Pass the SegInfo's text_bias around in the AddressDecodingInfo,
so that ...
- read_encoded_Addr can set 'base' to the text_bias when handling
DW_EH_PE_absptr. This is the central change of this commit and
appears (to me) to be what DWARF3 requires. (The spec is less
than clear ..)
- don't use read_encoded_Addr to read the FDE arange field since
read_encoded_Addr's adding-on of a 'base' value is meaningless
here - the arange is not an address, but a value saying how many
bytes the FDE covers. Instead just read a little-endian value of
the right size. This is in accordance with DWARF3 and with
readelf.c. Add new function read_le_encoded_literal to make
this possible.
I believe this is all correct, and it's certainly much better than it
was. But given that the DWARF3 spec isn't as formal as it should be,
it's hard to be sure.
Modified:
trunk/coregrind/m_debuginfo/readdwarf.c
Modified: trunk/coregrind/m_debuginfo/readdwarf.c
===================================================================
--- trunk/coregrind/m_debuginfo/readdwarf.c 2007-02-23 10:10:02 UTC (rev 6610)
+++ trunk/coregrind/m_debuginfo/readdwarf.c 2007-02-24 23:29:31 UTC (rev 6611)
@@ -1872,6 +1872,7 @@
UChar encoding;
UChar* ehframe_image;
Addr ehframe_avma;
+ Addr text_bias;
}
AddressDecodingInfo;
@@ -2083,6 +2084,18 @@
return data[0];
}
+static ULong read_le_encoded_literal ( UChar* data, UInt size )
+{
+ switch (size) {
+ case 8: return (ULong)read_ULong( data );
+ case 4: return (ULong)read_UInt( data );
+ case 2: return (ULong)read_UShort( data );
+ case 1: return (ULong)read_UChar( data );
+ default: vg_assert(0); /*NOTREACHED*/ return 0;
+ }
+}
+
+
static UChar default_Addr_encoding ( void )
{
switch (sizeof(Addr)) {
@@ -2110,6 +2123,25 @@
AddressDecodingInfo* adi,
UChar* data )
{
+ /* Regarding the handling of DW_EH_PE_absptr. DWARF3 says this
+ denotes an absolute address, hence you would think 'base' is
+ zero. However, that is nonsensical (unless relocations are to
+ be applied to the unwind data before reading it, which sounds
+ unlikely). My interpretation is that DW_EH_PE_absptr indicates
+ an address relative to where the object was loaded (technically,
+ relative to its stated load VMA, hence the use of text_bias
+ rather than text_avma). Hmm, should we use text_bias or
+ text_avma here? Not sure.
+
+ This view appears to be supported by DWARF3 spec sec 7.3
+ "Executable Objects and Shared Objects":
+
+ This requirement makes the debugging information for shared
+ objects position independent. Virtual addresses in a shared
+ object may be calculated by adding the offset to the base
+ address at which the object was attached. This offset is
+ available in the run-time linker's data structures.
+ */
Addr base;
Word offset;
UChar encoding = adi->encoding;
@@ -2122,7 +2154,7 @@
switch (encoding & 0x70) {
case DW_EH_PE_absptr:
- base = 0;
+ base = adi->text_bias;
break;
case DW_EH_PE_pcrel:
base = ehframe_avma + ( data - ehframe_image );
@@ -2194,7 +2226,7 @@
Int i = 0;
UChar hi2 = (instr[i] >> 6) & 3;
UChar lo6 = instr[i] & 0x3F;
- Addr printing_bias = ((Addr)ctx->initloc) - ((Addr)si->text_start_avma);
+ Addr printing_bias = ((Addr)ctx->initloc) - ((Addr)si->text_bias);
i++;
if (hi2 == DW_CFA_advance_loc) {
@@ -2245,6 +2277,9 @@
/* WAS:
ctx->loc = read_Addr(&instr[i]) - ctx->initloc; i+= sizeof(Addr);
Was this ever right? */
+ /* 2007 Feb 23: No. binutils/dwarf.c treats it as an encoded
+ address and that appears to be in accordance with the
+ DWARF3 spec. */
ctx->loc = read_encoded_Addr(&len, adi, &instr[i]);
i += len;
if (si->ddump_frames)
@@ -2336,8 +2371,10 @@
ctx->reg[reg].tag = RR_CFAoff;
ctx->reg[reg].coff = off * ctx->data_a_f;
if (si->ddump_frames)
- VG_(printf)(" rci:DW_CFA_offset_extended_sf\n");
- break;
+ VG_(printf)(" DW_CFA_offset_extended_sf: r%d at cfa%s%d\n",
+ reg, ctx->reg[reg].coff < 0 ? "" : "+",
+ (Int)ctx->reg[reg].coff);
+ break;
case DW_CFA_GNU_negative_offset_extended:
reg = read_leb128( &instr[i], &nleb, 0 );
@@ -2555,7 +2592,8 @@
break;
case DW_CFA_set_loc:
- /* WAS: loc = read_Addr(&instr[i]); i+= sizeof(Addr); */
+ /* WAS: loc = read_Addr(&instr[i]); i+= sizeof(Addr);
+ (now known to be incorrect -- the address is encoded) */
loc = read_encoded_Addr(&len, adi, &instr[i]);
i += len;
VG_(printf)(" sci:DW_CFA_set_loc(%p)\n", loc);
@@ -2573,7 +2611,7 @@
case DW_CFA_advance_loc4:
delta = (UInt)read_UInt(&instr[i]); i+= sizeof(UInt);
- VG_(printf)(" sci:DW_CFA_advance_loc4(%d)\n", delta);
+ VG_(printf)(" DW_CFA_advance_loc4(%d)\n", delta);
break;
case DW_CFA_def_cfa:
@@ -2685,13 +2723,14 @@
"off %d x data_af)\n", reg, off);
break;
- case DW_CFA_offset_extended_sf:
+ case DW_CFA_offset_extended_sf:
reg = read_leb128( &instr[i], &nleb, 0 );
i += nleb;
off = read_leb128( &instr[i], &nleb, 1 );
i += nleb;
- VG_(printf)(" sci:DW_CFA_offset_extended_sf"
- "(r%d, off %d x data_af)\n", reg, off);
+ coff = (Int)(off * data_a_f);
+ VG_(printf)(" DW_CFA_offset_extended_sf: r%d at cfa%s%d\n",
+ reg, coff < 0 ? "" : "+", coff);
break;
case DW_CFA_GNU_negative_offset_extended:
@@ -2747,64 +2786,6 @@
}
-/* Attempt to add a CFI record to the collection. Nominally this just
- hands the record off to ML_(addDiCfSI), which will ignore it if it
- falls outside the mapped text segment of this SegInfo. However, a
- nasty kludge may be pre-applied: if the record's base address is
- very small, and does not come anywhere near the mapped text
- segment, then assume we forgot to add the text_bias for some
- reason, so add it on and then try again. */
-static
-void kludge_then_addDiCfSI ( struct _SegInfo* si, DiCfSI* cfsi )
-{
-# define IN_TEXT_SEG(_addr) \
- ((_addr) >= si->text_start_avma \
- && (_addr) < (si->text_start_avma + si->text_size))
-
- if ( /* "has implausibly low addr" */
- cfsi->base < 2 * 1024 * 1024
- /* "has plausible size" */
- && cfsi->len > 0
- && cfsi->len < 50000
- /* "is well clear of the text segment" */
- && (2 * (cfsi->base + cfsi->len)) < si->text_start_avma
- /* "adding text_bias would put the start in the text segment */
- && IN_TEXT_SEG(si->text_bias + cfsi->base)
- /* "adding text_bias would put the end in the text segment */
- && IN_TEXT_SEG(si->text_bias + cfsi->base + cfsi->len - 1)
- /* XXX and there isn't already a record present */ )
- {
- static Int complaints = 3;
-
- /* Oh, well, let's kludge it into the text segment, then. */
- /* First, though, complain: */
- if (si->trace_cfi || complaints > 0) {
- complaints--;
- if (VG_(clo_verbosity) > 1) {
- VG_(message)(
- Vg_DebugMsg,
- "warning: DiCfSI %p .. %p kludge reloc to %p .. %p",
- cfsi->base,
- cfsi->base + cfsi->len - 1,
- si->text_bias + cfsi->base,
- si->text_bias + cfsi->base + cfsi->len - 1
- );
- }
- if (si->trace_cfi)
- ML_(ppDiCfSI)(cfsi);
- }
-
- /* last but not least ... */
- cfsi->base += si->text_bias;
- }
-
- /* finished monkeying around, let's add it. */
- ML_(addDiCfSI)(si, cfsi);
-
-# undef IN_TEXT_SEG
-}
-
-
/* Run the CF instructions in instrs[0 .. ilen-1], until the end is
reached, or until there is a failure. Return True iff success.
*/
@@ -2835,7 +2816,7 @@
if (record && loc_prev != ctx->loc) {
summ_ok = summarise_context ( &cfsi, loc_prev, ctx, si );
if (summ_ok) {
- kludge_then_addDiCfSI(si, &cfsi);
+ ML_(addDiCfSI)(si, &cfsi);
if (si->trace_cfi)
ML_(ppDiCfSI)(&cfsi);
}
@@ -2847,7 +2828,7 @@
if (record) {
summ_ok = summarise_context ( &cfsi, loc_prev, ctx, si );
if (summ_ok) {
- kludge_then_addDiCfSI(si, &cfsi);
+ ML_(addDiCfSI)(si, &cfsi);
if (si->trace_cfi)
ML_(ppDiCfSI)(&cfsi);
}
@@ -3167,6 +3148,7 @@
adi.encoding = the_CIEs[this_CIE].address_encoding;
adi.ehframe_image = ehframe_image;
adi.ehframe_avma = ehframe_avma;
+ adi.text_bias = si->text_bias;
show_CF_instructions( the_CIEs[this_CIE].instrs,
the_CIEs[this_CIE].ilen, &adi,
the_CIEs[this_CIE].code_a_f,
@@ -3213,6 +3195,7 @@
adi.encoding = the_CIEs[cie].address_encoding;
adi.ehframe_image = ehframe_image;
adi.ehframe_avma = ehframe_avma;
+ adi.text_bias = si->text_bias;
fde_initloc = read_encoded_Addr(&nbytes, &adi, data);
data += nbytes;
if (si->trace_cfi)
@@ -3221,8 +3204,26 @@
adi.encoding = the_CIEs[cie].address_encoding & 0xf;
adi.ehframe_image = ehframe_image;
adi.ehframe_avma = ehframe_avma;
- fde_arange = read_encoded_Addr(&nbytes, &adi, data);
- data += nbytes;
+ adi.text_bias = si->text_bias;
+
+ /* WAS (incorrectly):
+ fde_arange = read_encoded_Addr(&nbytes, &adi, data);
+ data += nbytes;
+ The following corresponds to what binutils/dwarf.c does:
+ */
+ { UInt ptr_size = size_of_encoded_Addr( adi.encoding );
+ switch (ptr_size) {
+ case 8: case 4: case 2: case 1:
+ fde_arange
+ = (UWord)read_le_encoded_literal(data, ptr_size);
+ data += ptr_size;
+ break;
+ default:
+ how = "unknown arange field encoding in FDE";
+ goto bad;
+ }
+ }
+
if (si->trace_cfi)
VG_(printf)("fde.arangec = %p\n", (void*)fde_arange);
@@ -3232,8 +3233,8 @@
(Addr)ciefde_len,
(Addr)(UWord)cie_pointer,
(Addr)look_for,
- ((Addr)fde_initloc) - si->text_start_avma,
- ((Addr)fde_initloc) - si->text_start_avma + fde_arange);
+ ((Addr)fde_initloc) - si->text_bias,
+ ((Addr)fde_initloc) - si->text_bias + fde_arange);
if (the_CIEs[cie].saw_z_augmentation) {
UInt length = read_leb128( data, &nbytes, 0);
@@ -3265,6 +3266,7 @@
adi.encoding = the_CIEs[cie].address_encoding;
adi.ehframe_image = ehframe_image;
adi.ehframe_avma = ehframe_avma;
+ adi.text_bias = si->text_bias;
if (si->trace_cfi)
show_CF_instructions( fde_instrs, fde_ilen, &adi,
|
|
From: <js...@ac...> - 2007-02-24 09:58:58
|
Nightly build on minnie ( SuSE 10.0, ppc32 ) started at 2007-02-24 09:00:02 GMT Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 219 tests, 10 stderr failures, 6 stdout failures, 0 posttest failures == memcheck/tests/leak-tree (stderr) memcheck/tests/leakotron (stdout) memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_changes (stderr) memcheck/tests/xml1 (stderr) none/tests/faultstatus (stderr) none/tests/fdleak_cmsg (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) none/tests/ppc32/jm-fp (stdout) none/tests/ppc32/jm-fp (stderr) none/tests/ppc32/round (stdout) none/tests/ppc32/round (stderr) none/tests/ppc32/test_fx (stdout) none/tests/ppc32/test_fx (stderr) none/tests/ppc32/test_gx (stdout) |
|
From: <js...@ac...> - 2007-02-24 05:30:53
|
Nightly build on phoenix ( SuSE 10.0 ) started at 2007-02-24 04:55:01 GMT Checking out vex source tree ... done Building vex ... done Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 254 tests, 6 stderr failures, 1 stdout failure, 0 posttest failures == memcheck/tests/leak-tree (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) |
|
From: Tom H. <th...@cy...> - 2007-02-24 03:24:19
|
Nightly build on alvis ( i686, Red Hat 7.3 ) started at 2007-02-24 03:15:02 GMT Results differ from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Last 20 lines of verbose log follow echo /tmp/ccGeYKcK.s:4393: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/ccGeYKcK.s:4513: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/ccGeYKcK.s:4633: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/ccGeYKcK.s:4753: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/ccGeYKcK.s:4873: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/ccGeYKcK.s:4993: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/ccGeYKcK.s:5113: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/ccGeYKcK.s:5233: Error: no such instruction: `fisttpq -56(%ebp)' make[5]: *** [insn_sse3.o] Error 1 rm insn_mmx.c insn_sse2.c insn_fpu.c insn_mmxext.c insn_sse.c insn_sse3.c insn_cmov.c insn_basic.c make[5]: Leaving directory `/tmp/valgrind.24949/valgrind/none/tests/x86' make[4]: *** [check-am] Error 2 make[4]: Leaving directory `/tmp/valgrind.24949/valgrind/none/tests/x86' make[3]: *** [check-recursive] Error 1 make[3]: Leaving directory `/tmp/valgrind.24949/valgrind/none/tests' make[2]: *** [check-recursive] Error 1 make[2]: Leaving directory `/tmp/valgrind.24949/valgrind/none' make[1]: *** [check-recursive] Error 1 make[1]: Leaving directory `/tmp/valgrind.24949/valgrind' make: *** [check] Error 2 ================================================= == Results from 24 hours ago == ================================================= Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Last 20 lines of verbose log follow echo /tmp/cckteGFg.s:4393: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/cckteGFg.s:4513: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/cckteGFg.s:4633: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/cckteGFg.s:4753: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/cckteGFg.s:4873: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/cckteGFg.s:4993: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/cckteGFg.s:5113: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/cckteGFg.s:5233: Error: no such instruction: `fisttpq -56(%ebp)' make[5]: *** [insn_sse3.o] Error 1 rm insn_mmx.c insn_sse2.c insn_fpu.c insn_mmxext.c insn_sse.c insn_sse3.c insn_cmov.c insn_basic.c make[5]: Leaving directory `/tmp/valgrind.24949/valgrind/none/tests/x86' make[4]: *** [check-am] Error 2 make[4]: Leaving directory `/tmp/valgrind.24949/valgrind/none/tests/x86' make[3]: *** [check-recursive] Error 1 make[3]: Leaving directory `/tmp/valgrind.24949/valgrind/none/tests' make[2]: *** [check-recursive] Error 1 make[2]: Leaving directory `/tmp/valgrind.24949/valgrind/none' make[1]: *** [check-recursive] Error 1 make[1]: Leaving directory `/tmp/valgrind.24949/valgrind' make: *** [check] Error 2 ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Sat Feb 24 03:19:16 2007 --- new.short Sat Feb 24 03:23:32 2007 *************** *** 7,16 **** Last 20 lines of verbose log follow echo ! /tmp/cckteGFg.s:4393: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/cckteGFg.s:4513: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/cckteGFg.s:4633: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/cckteGFg.s:4753: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/cckteGFg.s:4873: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/cckteGFg.s:4993: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/cckteGFg.s:5113: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/cckteGFg.s:5233: Error: no such instruction: `fisttpq -56(%ebp)' make[5]: *** [insn_sse3.o] Error 1 --- 7,16 ---- Last 20 lines of verbose log follow echo ! /tmp/ccGeYKcK.s:4393: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/ccGeYKcK.s:4513: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/ccGeYKcK.s:4633: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/ccGeYKcK.s:4753: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/ccGeYKcK.s:4873: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/ccGeYKcK.s:4993: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/ccGeYKcK.s:5113: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/ccGeYKcK.s:5233: Error: no such instruction: `fisttpq -56(%ebp)' make[5]: *** [insn_sse3.o] Error 1 |
|
From: Tom H. <th...@cy...> - 2007-02-24 03:24:19
|
Nightly build on dellow ( x86_64, Fedora Core 6 ) started at 2007-02-24 03:10:04 GMT Results differ from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 288 tests, 4 stderr failures, 1 stdout failure, 0 posttest failures == memcheck/tests/pointer-trace (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/xml1 (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) ================================================= == Results from 24 hours ago == ================================================= Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 288 tests, 4 stderr failures, 2 stdout failures, 0 posttest failures == memcheck/tests/pointer-trace (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/xml1 (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) none/tests/pth_detached (stdout) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Sat Feb 24 03:16:56 2007 --- new.short Sat Feb 24 03:23:28 2007 *************** *** 8,10 **** ! == 288 tests, 4 stderr failures, 2 stdout failures, 0 posttest failures == memcheck/tests/pointer-trace (stderr) --- 8,10 ---- ! == 288 tests, 4 stderr failures, 1 stdout failure, 0 posttest failures == memcheck/tests/pointer-trace (stderr) *************** *** 14,16 **** none/tests/mremap2 (stdout) - none/tests/pth_detached (stdout) --- 14,15 ---- |
|
From: Tom H. <th...@cy...> - 2007-02-24 03:19:10
|
Nightly build on lloyd ( x86_64, Fedora Core 3 ) started at 2007-02-24 03:05:08 GMT Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 288 tests, 6 stderr failures, 1 stdout failure, 0 posttest failures == memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) memcheck/tests/xml1 (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) |
|
From: Tom H. <th...@cy...> - 2007-02-24 03:12:04
|
Nightly build on gill ( x86_64, Fedora Core 2 ) started at 2007-02-24 03:00:08 GMT Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 290 tests, 6 stderr failures, 1 stdout failure, 0 posttest failures == memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) none/tests/fdleak_fcntl (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) |
|
From: <js...@ac...> - 2007-02-24 01:16:54
|
Nightly build on g5 ( SuSE 10.1, ppc970 ) started at 2007-02-24 02:00:01 CET Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 225 tests, 6 stderr failures, 2 stdout failures, 0 posttest failures == memcheck/tests/deep_templates (stdout) memcheck/tests/leak-cycle (stderr) memcheck/tests/leak-tree (stderr) memcheck/tests/pointer-trace (stderr) none/tests/faultstatus (stderr) none/tests/fdleak_cmsg (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) |
|
From: Bart V. A. <bar...@gm...> - 2007-02-23 14:35:30
|
On 2/22/07, Nicholas Nethercote <nj...@cs...> wrote: > The last sentence of the comment for the tool-defined 'update_extra' > function explains: > > // Should fill in any details that could be postponed until after the > // decision whether to ignore the error (ie. details not affecting the > // result of VG_(tdict).tool_eq_Error()). This saves time when errors > // are ignored. > // Yuk. > // Return value: must be the size of the `extra' part in bytes -- used by > // the core to make a copy. > UInt (*update_extra)(Error* err), > > The whole mechanism is ugly but I've never been able to think of a way to > improve it much. Thanks for the info -- this allowed me to fix the crash in drd triggered by -v. Regarding passing the size of the 'extra' part to Valgrind's core: is this size already known at the time VG_(maybe_record_error)() is called in every tool ? In that case it would be more elegant to have e.g. a function VG_(maybe_record_error2)() that accepts one more argument than VG_(maybe_record_error)(), namely the size of the object 'extra' points to. Bart. |
|
From: <sv...@va...> - 2007-02-23 10:10:13
|
Author: sewardj
Date: 2007-02-23 10:10:02 +0000 (Fri, 23 Feb 2007)
New Revision: 6610
Log:
Make the frame unwinder able to handle 64-bit DWARF (untested :-(
mostly by a lot of comparison of this code vs that of
binutils-2.17/binutils/dwarf.c vs the relevant specs.
Modified:
trunk/coregrind/m_debuginfo/priv_readdwarf.h
trunk/coregrind/m_debuginfo/readdwarf.c
trunk/coregrind/m_debuginfo/readelf.c
Modified: trunk/coregrind/m_debuginfo/priv_readdwarf.h
===================================================================
--- trunk/coregrind/m_debuginfo/priv_readdwarf.h 2007-02-23 09:04:16 UTC (rev 6609)
+++ trunk/coregrind/m_debuginfo/priv_readdwarf.h 2007-02-23 10:10:02 UTC (rev 6610)
@@ -61,7 +61,7 @@
CFI reader
-------------------- */
extern
-void ML_(read_callframe_info_dwarf2)
+void ML_(read_callframe_info_dwarf3)
( /*OUT*/struct _SegInfo* si,
UChar* ehframe, Int ehframe_sz, Addr ehframe_addr );
Modified: trunk/coregrind/m_debuginfo/readdwarf.c
===================================================================
--- trunk/coregrind/m_debuginfo/readdwarf.c 2007-02-23 09:04:16 UTC (rev 6609)
+++ trunk/coregrind/m_debuginfo/readdwarf.c 2007-02-23 10:10:02 UTC (rev 6610)
@@ -1439,6 +1439,25 @@
/*--- Read call-frame info from an .eh_frame section ---*/
/*------------------------------------------------------------*/
+/* Sources of info:
+
+ The DWARF3 spec, available from http://www.dwarfstd.org/Download.php
+
+ This describes how to read CFA data from .debug_frame sections.
+ So as to maximise everybody's annoyance and confusion, .eh_frame
+ sections are almost the same as .debug_frame sections, but differ
+ in a few subtle and ill documented but important aspects.
+
+ Generic ELF Specification, sections 7.5 (DWARF Extensions) and 7.6
+ (Exception Frames), available from
+
+ http://www.linux-foundation.org/spec/book/ELF-generic/ELF-generic.html
+
+ This really does describe .eh_frame, at least the aspects that
+ differ from standard DWARF3. It's better than guessing, and
+ (marginally) more fun than reading the gdb source code.
+*/
+
/* Useful info ..
In general:
@@ -2843,7 +2862,7 @@
typedef
struct {
/* This gives the CIE an identity to which FDEs will refer. */
- UInt offset;
+ ULong offset;
/* Code, data factors. */
Int code_a_f;
Int data_a_f;
@@ -2875,7 +2894,7 @@
static CIE the_CIEs[N_CIEs];
-void ML_(read_callframe_info_dwarf2)
+void ML_(read_callframe_info_dwarf3)
( /*OUT*/struct _SegInfo* si,
UChar* ehframe_image, Int ehframe_sz, Addr ehframe_avma )
{
@@ -2920,8 +2939,9 @@
*/
while (True) {
UChar* ciefde_start;
- UInt ciefde_len;
- UInt cie_pointer;
+ ULong ciefde_len;
+ ULong cie_pointer;
+ Bool dw64;
/* Are we done? */
if (data == ehframe_image + ehframe_sz)
@@ -2938,31 +2958,45 @@
ciefde_start = data;
if (si->trace_cfi)
- VG_(printf)("\ncie/fde.start = %p (ehframe_image + 0x%x)\n",
+ VG_(printf)("\ncie/fde.start = %p (ehframe_image + 0x%lx)\n",
ciefde_start, ciefde_start - ehframe_image);
- ciefde_len = read_UInt(data); data += sizeof(UInt);
+ ciefde_len = (ULong) read_UInt(data); data += sizeof(UInt);
if (si->trace_cfi)
- VG_(printf)("cie/fde.length = %d\n", ciefde_len);
+ VG_(printf)("cie/fde.length = %lld\n", ciefde_len);
/* Apparently, if the .length field is zero, we are at the end
- of the sequence. ?? Neither the DWARF2 spec not the AMD64
- ABI spec say this, though. */
+ of the sequence. This is stated in the Generic Elf
+ Specification (see comments far above here) and is one of the
+ places where .eh_frame and .debug_frame data differ. */
if (ciefde_len == 0) {
- if (data == ehframe_image + ehframe_sz) {
- if (si->ddump_frames)
- VG_(printf)("%08lx ZERO terminator\n\n",
- ((Addr)ciefde_start) - ((Addr)ehframe_image));
- return;
- }
- how = "zero-sized CIE/FDE but not at section end";
- goto bad;
+ if (si->ddump_frames)
+ VG_(printf)("%08lx ZERO terminator\n\n",
+ ((Addr)ciefde_start) - ((Addr)ehframe_image));
+ return;
}
- cie_pointer = read_UInt(data);
- data += sizeof(UInt); /* XXX see XXX below */
+ /* If the .length field is 0xFFFFFFFF then we're dealing with
+ 64-bit DWARF, and the real length is stored as a 64-bit
+ number immediately following it. */
+ dw64 = False;
+ if (ciefde_len == 0xFFFFFFFFUL) {
+ dw64 = True;
+ ciefde_len = read_ULong(data); data += sizeof(ULong);
+ }
+
+ /* Now get the CIE ID, whose size depends on the DWARF 32 vs
+ 64-ness. */
+ if (dw64) {
+ cie_pointer = read_ULong(data);
+ data += sizeof(ULong); /* XXX see XXX below */
+ } else {
+ cie_pointer = (ULong)read_UInt(data);
+ data += sizeof(UInt); /* XXX see XXX below */
+ }
+
if (si->trace_cfi)
- VG_(printf)("cie.pointer = %d\n", cie_pointer);
+ VG_(printf)("cie.pointer = %lld\n", cie_pointer);
/* If cie_pointer is zero, we've got a CIE; else it's an FDE. */
if (cie_pointer == 0) {
@@ -2989,13 +3023,13 @@
/* Record its offset. This is how we will find it again
later when looking at an FDE. */
- the_CIEs[this_CIE].offset = ciefde_start - ehframe_image;
+ the_CIEs[this_CIE].offset = (ULong)(ciefde_start - ehframe_image);
if (si->ddump_frames)
VG_(printf)("%08lx %08lx %08lx CIE\n",
((Addr)ciefde_start) - ((Addr)ehframe_image),
(Addr)ciefde_len,
- (Addr)cie_pointer );
+ (Addr)(UWord)cie_pointer );
cie_version = read_UChar(data); data += sizeof(UChar);
if (si->trace_cfi)
@@ -3147,7 +3181,7 @@
AddressDecodingInfo adi;
UnwindContext ctx, restore_ctx;
Int cie;
- UInt look_for;
+ ULong look_for;
Bool ok;
Addr fde_initloc;
UWord fde_arange;
@@ -3159,12 +3193,13 @@
/* Find the relevant CIE. The CIE we want is located
cie_pointer bytes back from here. */
- /* re sizeof(UInt), matches XXX above. For 64-bit dwarf this
- will have to be a ULong instead. */
- look_for = (data - sizeof(UInt) - ehframe_image) - cie_pointer;
+ /* re sizeof(UInt) / sizeof(ULong), matches XXX above. */
+ look_for = (data - (dw64 ? sizeof(ULong) : sizeof(UInt))
+ - ehframe_image)
+ - cie_pointer;
for (cie = 0; cie < n_CIEs; cie++) {
- if (0) VG_(printf)("look for %d %d\n",
+ if (0) VG_(printf)("look for %lld %lld\n",
look_for, the_CIEs[cie].offset );
if (the_CIEs[cie].offset == look_for)
break;
@@ -3195,7 +3230,7 @@
VG_(printf)("%08lx %08lx %08lx FDE cie=%08lx pc=%08lx..%08lx\n",
((Addr)ciefde_start) - ((Addr)ehframe_image),
(Addr)ciefde_len,
- (Addr)cie_pointer,
+ (Addr)(UWord)cie_pointer,
(Addr)look_for,
((Addr)fde_initloc) - si->text_start_avma,
((Addr)fde_initloc) - si->text_start_avma + fde_arange);
Modified: trunk/coregrind/m_debuginfo/readelf.c
===================================================================
--- trunk/coregrind/m_debuginfo/readelf.c 2007-02-23 09:04:16 UTC (rev 6609)
+++ trunk/coregrind/m_debuginfo/readelf.c 2007-02-23 10:10:02 UTC (rev 6610)
@@ -1226,7 +1226,7 @@
/* Read .eh_frame (call-frame-info) if any */
if (ehframe_img) {
- ML_(read_callframe_info_dwarf2)
+ ML_(read_callframe_info_dwarf3)
( si, ehframe_img, ehframe_sz, ehframe_avma );
}
|
|
From: <js...@ac...> - 2007-02-23 09:49:58
|
Nightly build on minnie ( SuSE 10.0, ppc32 ) started at 2007-02-23 09:00:01 GMT Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 219 tests, 10 stderr failures, 6 stdout failures, 0 posttest failures == memcheck/tests/leak-tree (stderr) memcheck/tests/leakotron (stdout) memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_changes (stderr) memcheck/tests/xml1 (stderr) none/tests/faultstatus (stderr) none/tests/fdleak_cmsg (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) none/tests/ppc32/jm-fp (stdout) none/tests/ppc32/jm-fp (stderr) none/tests/ppc32/round (stdout) none/tests/ppc32/round (stderr) none/tests/ppc32/test_fx (stdout) none/tests/ppc32/test_fx (stderr) none/tests/ppc32/test_gx (stdout) |
|
From: <sv...@va...> - 2007-02-23 09:04:18
|
Author: sewardj
Date: 2007-02-23 09:04:16 +0000 (Fri, 23 Feb 2007)
New Revision: 6609
Log:
Update
Modified:
trunk/docs/internals/3_2_BUGSTATUS.txt
Modified: trunk/docs/internals/3_2_BUGSTATUS.txt
===================================================================
--- trunk/docs/internals/3_2_BUGSTATUS.txt 2007-02-23 09:03:26 UTC (rev 6608)
+++ trunk/docs/internals/3_2_BUGSTATUS.txt 2007-02-23 09:04:16 UTC (rev 6609)
@@ -21,6 +21,7 @@
pending pending n-i-bz --track-fds reports leakage of
stdout/in/err and doesn't respect -q
+ XXX where is the patch?
pending pending 141366 Add sys_vserver support to valgrind (w/ patch)
@@ -28,8 +29,15 @@
and MPI_STATUSES_IGNORE not supported and makes
a valid MPI program crash.
+vx1735 pending 32 141790 Missing amd64 x87 insns
+
+r6608 pending 32 n-i-bz intercept for __memmove_chk
+
Ashley logfile qualifiers in coredumps patch
+RedHat8 needs suppressions
+where did mpi wrappers for Pack/Unpack go? (r6575 ?)
+
------- Bugs reported and fixed in 3.2.3 ------
TRUNK 32BRANCH PRI BUG# WHAT
|
|
From: <sv...@va...> - 2007-02-23 09:03:32
|
Author: sewardj
Date: 2007-02-23 09:03:26 +0000 (Fri, 23 Feb 2007)
New Revision: 6608
Log:
Add an intercept for __memmove_chk (another glibc 2.5 artefact)
Modified:
trunk/memcheck/mc_replace_strmem.c
Modified: trunk/memcheck/mc_replace_strmem.c
===================================================================
--- trunk/memcheck/mc_replace_strmem.c 2007-02-21 10:51:41 UTC (rev 6607)
+++ trunk/memcheck/mc_replace_strmem.c 2007-02-23 09:03:26 UTC (rev 6608)
@@ -509,6 +509,40 @@
MEMMOVE(m_libc_soname, memmove)
+/* glibc 2.5 variant of memmove which checks the dest is big enough.
+ There is no specific part of glibc that this is copied from. */
+#define GLIBC25___MEMMOVE_CHK(soname, fnname) \
+ void* VG_REPLACE_FUNCTION_ZU(soname,fnname) \
+ (void *dstV, const void *srcV, SizeT n, SizeT destlen); \
+ void* VG_REPLACE_FUNCTION_ZU(soname,fnname) \
+ (void *dstV, const void *srcV, SizeT n, SizeT destlen) \
+ { \
+ extern void _exit(int status); \
+ SizeT i; \
+ Char* dst = (Char*)dstV; \
+ Char* src = (Char*)srcV; \
+ if (destlen < n) \
+ goto badness; \
+ if (dst < src) { \
+ for (i = 0; i < n; i++) \
+ dst[i] = src[i]; \
+ } \
+ else \
+ if (dst > src) { \
+ for (i = 0; i < n; i++) \
+ dst[n-i-1] = src[n-i-1]; \
+ } \
+ return dst; \
+ badness: \
+ VALGRIND_PRINTF_BACKTRACE( \
+ "*** memmove_chk: buffer overflow detected ***: " \
+ "program terminated"); \
+ _exit(127); \
+ }
+
+GLIBC25___MEMMOVE_CHK(m_libc_soname, __memmove_chk)
+
+
/* Find the first occurrence of C in S or the final NUL byte. */
#define GLIBC232_STRCHRNUL(soname, fnname) \
char* VG_REPLACE_FUNCTION_ZU(soname,fnname) (const char* s, int c_in); \
@@ -560,7 +594,8 @@
return ret; \
badness: \
VALGRIND_PRINTF_BACKTRACE( \
- "***buffer overflow detected ***: program terminated"); \
+ "*** strcpy_chk: buffer overflow detected ***: " \
+ "program terminated"); \
_exit(127); \
/*NOTREACHED*/ \
return NULL; \
@@ -586,7 +621,8 @@
return dst - 1; \
badness: \
VALGRIND_PRINTF_BACKTRACE( \
- "***buffer overflow detected ***: program terminated"); \
+ "*** stpcpy_chk: buffer overflow detected ***: " \
+ "program terminated"); \
_exit(127); \
/*NOTREACHED*/ \
return NULL; \
|
|
From: <sv...@va...> - 2007-02-23 08:48:33
|
Author: sewardj
Date: 2007-02-23 08:48:22 +0000 (Fri, 23 Feb 2007)
New Revision: 1735
Log:
Handle FCOM and FCOMPP in 64-bit mode (see #141790)
Modified:
trunk/priv/guest-amd64/toIR.c
Modified: trunk/priv/guest-amd64/toIR.c
===================================================================
--- trunk/priv/guest-amd64/toIR.c 2007-02-06 01:52:52 UTC (rev 1734)
+++ trunk/priv/guest-amd64/toIR.c 2007-02-23 08:48:22 UTC (rev 1735)
@@ -4465,23 +4465,23 @@
fp_do_op_ST_ST ( "mul", Iop_MulF64, modrm - 0xC8, 0, False );
break;
+ /* Dunno if this is right */
+ case 0xD0 ... 0xD7: /* FCOM %st(?),%st(0) */
+ r_dst = (UInt)modrm - 0xD0;
+ DIP("fcom %%st(0),%%st(%d)\n", r_dst);
+ /* This forces C1 to zero, which isn't right. */
+ put_C3210(
+ unop(Iop_32Uto64,
+ binop( Iop_And32,
+ binop(Iop_Shl32,
+ binop(Iop_CmpF64, get_ST(0), get_ST(r_dst)),
+ mkU8(8)),
+ mkU32(0x4500)
+ )));
+ break;
+
//.. #if 1
//.. /* Dunno if this is right */
-//.. case 0xD0 ... 0xD7: /* FCOM %st(?),%st(0) */
-//.. r_dst = (UInt)modrm - 0xD0;
-//.. DIP("fcom %%st(0),%%st(%d)\n", r_dst);
-//.. /* This forces C1 to zero, which isn't right. */
-//.. put_C3210(
-//.. binop( Iop_And32,
-//.. binop(Iop_Shl32,
-//.. binop(Iop_CmpF64, get_ST(0), get_ST(r_dst)),
-//.. mkU8(8)),
-//.. mkU32(0x4500)
-//.. ));
-//.. break;
-//.. #endif
-//.. #if 1
-//.. /* Dunno if this is right */
//.. case 0xD8 ... 0xDF: /* FCOMP %st(?),%st(0) */
//.. r_dst = (UInt)modrm - 0xD8;
//.. DIP("fcomp %%st(0),%%st(%d)\n", r_dst);
@@ -5761,19 +5761,20 @@
fp_do_op_ST_ST ( "mul", Iop_MulF64, 0, modrm - 0xC8, True );
break;
-//.. case 0xD9: /* FCOMPP %st(0),%st(1) */
-//.. DIP("fuompp %%st(0),%%st(1)\n");
-//.. /* This forces C1 to zero, which isn't right. */
-//.. put_C3210(
-//.. binop( Iop_And32,
-//.. binop(Iop_Shl32,
-//.. binop(Iop_CmpF64, get_ST(0), get_ST(1)),
-//.. mkU8(8)),
-//.. mkU32(0x4500)
-//.. ));
-//.. fp_pop();
-//.. fp_pop();
-//.. break;
+ case 0xD9: /* FCOMPP %st(0),%st(1) */
+ DIP("fcompp %%st(0),%%st(1)\n");
+ /* This forces C1 to zero, which isn't right. */
+ put_C3210(
+ unop(Iop_32Uto64,
+ binop( Iop_And32,
+ binop(Iop_Shl32,
+ binop(Iop_CmpF64, get_ST(0), get_ST(1)),
+ mkU8(8)),
+ mkU32(0x4500)
+ )));
+ fp_pop();
+ fp_pop();
+ break;
case 0xE0 ... 0xE7: /* FSUBRP %st(0),%st(?) */
fp_do_oprev_ST_ST ( "subr", Iop_SubF64, 0, modrm - 0xE0, True );
|
|
From: <js...@ac...> - 2007-02-23 05:29:43
|
Nightly build on phoenix ( SuSE 10.0 ) started at 2007-02-23 04:55:01 GMT Checking out vex source tree ... done Building vex ... done Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 254 tests, 6 stderr failures, 1 stdout failure, 0 posttest failures == memcheck/tests/leak-tree (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) ================================================= == Results from 24 hours ago == ================================================= Checking out vex source tree ... done Building vex ... done Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 254 tests, 6 stderr failures, 2 stdout failures, 0 posttest failures == memcheck/tests/leak-tree (stderr) memcheck/tests/pointer-trace (stderr) memcheck/tests/stack_switch (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/x86/scalar_supp (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) none/tests/pth_detached (stdout) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Fri Feb 23 05:13:19 2007 --- new.short Fri Feb 23 05:30:17 2007 *************** *** 10,12 **** ! == 254 tests, 6 stderr failures, 2 stdout failures, 0 posttest failures == memcheck/tests/leak-tree (stderr) --- 10,12 ---- ! == 254 tests, 6 stderr failures, 1 stdout failure, 0 posttest failures == memcheck/tests/leak-tree (stderr) *************** *** 18,20 **** none/tests/mremap2 (stdout) - none/tests/pth_detached (stdout) --- 18,19 ---- |
|
From: Tom H. <th...@cy...> - 2007-02-23 03:25:42
|
Nightly build on dellow ( x86_64, Fedora Core 6 ) started at 2007-02-23 03:10:17 GMT Results unchanged from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 288 tests, 4 stderr failures, 1 stdout failure, 0 posttest failures == memcheck/tests/pointer-trace (stderr) memcheck/tests/x86/scalar (stderr) memcheck/tests/xml1 (stderr) none/tests/mremap (stderr) none/tests/mremap2 (stdout) |
|
From: Tom H. <th...@cy...> - 2007-02-23 03:23:19
|
Nightly build on alvis ( i686, Red Hat 7.3 ) started at 2007-02-23 03:15:02 GMT Results differ from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Last 20 lines of verbose log follow echo /tmp/ccHGp0pA.s:4393: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/ccHGp0pA.s:4513: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/ccHGp0pA.s:4633: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/ccHGp0pA.s:4753: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/ccHGp0pA.s:4873: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/ccHGp0pA.s:4993: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/ccHGp0pA.s:5113: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/ccHGp0pA.s:5233: Error: no such instruction: `fisttpq -56(%ebp)' make[5]: *** [insn_sse3.o] Error 1 rm insn_mmx.c insn_sse2.c insn_fpu.c insn_mmxext.c insn_sse.c insn_sse3.c insn_cmov.c insn_basic.c make[5]: Leaving directory `/tmp/valgrind.30420/valgrind/none/tests/x86' make[4]: *** [check-am] Error 2 make[4]: Leaving directory `/tmp/valgrind.30420/valgrind/none/tests/x86' make[3]: *** [check-recursive] Error 1 make[3]: Leaving directory `/tmp/valgrind.30420/valgrind/none/tests' make[2]: *** [check-recursive] Error 1 make[2]: Leaving directory `/tmp/valgrind.30420/valgrind/none' make[1]: *** [check-recursive] Error 1 make[1]: Leaving directory `/tmp/valgrind.30420/valgrind' make: *** [check] Error 2 ================================================= == Results from 24 hours ago == ================================================= Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Last 20 lines of verbose log follow echo /tmp/ccU7SPKL.s:4393: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/ccU7SPKL.s:4513: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/ccU7SPKL.s:4633: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/ccU7SPKL.s:4753: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/ccU7SPKL.s:4873: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/ccU7SPKL.s:4993: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/ccU7SPKL.s:5113: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/ccU7SPKL.s:5233: Error: no such instruction: `fisttpq -56(%ebp)' make[5]: *** [insn_sse3.o] Error 1 rm insn_mmx.c insn_sse2.c insn_fpu.c insn_mmxext.c insn_sse.c insn_sse3.c insn_cmov.c insn_basic.c make[5]: Leaving directory `/tmp/valgrind.30420/valgrind/none/tests/x86' make[4]: *** [check-am] Error 2 make[4]: Leaving directory `/tmp/valgrind.30420/valgrind/none/tests/x86' make[3]: *** [check-recursive] Error 1 make[3]: Leaving directory `/tmp/valgrind.30420/valgrind/none/tests' make[2]: *** [check-recursive] Error 1 make[2]: Leaving directory `/tmp/valgrind.30420/valgrind/none' make[1]: *** [check-recursive] Error 1 make[1]: Leaving directory `/tmp/valgrind.30420/valgrind' make: *** [check] Error 2 ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Fri Feb 23 03:19:14 2007 --- new.short Fri Feb 23 03:23:10 2007 *************** *** 7,16 **** Last 20 lines of verbose log follow echo ! /tmp/ccU7SPKL.s:4393: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/ccU7SPKL.s:4513: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/ccU7SPKL.s:4633: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/ccU7SPKL.s:4753: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/ccU7SPKL.s:4873: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/ccU7SPKL.s:4993: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/ccU7SPKL.s:5113: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/ccU7SPKL.s:5233: Error: no such instruction: `fisttpq -56(%ebp)' make[5]: *** [insn_sse3.o] Error 1 --- 7,16 ---- Last 20 lines of verbose log follow echo ! /tmp/ccHGp0pA.s:4393: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/ccHGp0pA.s:4513: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/ccHGp0pA.s:4633: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/ccHGp0pA.s:4753: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/ccHGp0pA.s:4873: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/ccHGp0pA.s:4993: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/ccHGp0pA.s:5113: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/ccHGp0pA.s:5233: Error: no such instruction: `fisttpq -56(%ebp)' make[5]: *** [insn_sse3.o] Error 1 |