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
(8) |
3
(7) |
|
4
(7) |
5
(7) |
6
(6) |
7
(11) |
8
(10) |
9
(14) |
10
(10) |
|
11
(13) |
12
(15) |
13
(6) |
14
(8) |
15
(6) |
16
(6) |
17
(6) |
|
18
(6) |
19
(11) |
20
(15) |
21
(14) |
22
(11) |
23
(7) |
24
(17) |
|
25
(14) |
26
(28) |
27
(21) |
28
(23) |
29
(21) |
30
(17) |
31
(8) |
|
From: Ashley P. <as...@qu...> - 2007-03-12 18:14:56
|
On Sat, 2007-03-10 at 12:35 +0000, Julian Seward wrote:
> I presume you're meaning 32-bit for 'word' and 64-bit for 'dword' here,
> and this is on a 32-bit target.
Yes, word=4 bytes, d(ouble)word=8 bytes.
> > Unfortunatly in practice it only seems to fix a small % of errors for us
> > because our copy routines only use dword copies for larger messages and
> > word copies for smaller messages, I'm still seeing errors of the form
> > shown if anybody can recommend a way of suppressing them properly. The
> > key thing is it's a four byte aligned/eight byte misaligned word read
> > immediately after a chunk of addressable memory and the suppressions
> > format doesn't let me specify this.
> >
> > RMS_RANK 0
> > Invalid read of size 4
> > at 0x4305C19: elan_tportTxStart (tportTx.c:299)
> > by 0x4245705: MPID_ELAN_SendContig (adi2send.c:70)
> > by 0x424566F: MPID_SendContig (adi2send.c:139)
> > by 0x4242044: MPID_SendDatatype (adi2hsend.c:66)
> > by 0x426A595: PMPI_Send (send.c:91)
> > by 0x8048F46: main (sendvector.c:94)
> > Address 0x5f0f41c is 0 bytes after a block of size 20 alloc'd
> > at 0x401B742: malloc (vg_replace_malloc.c:207)
> > by 0x42443D7: MPID_PackMessage (adi2mpack.c:37)
> > by 0x424200C: MPID_SendDatatype (adi2hsend.c:62)
> > by 0x426A595: PMPI_Send (send.c:91)
> > by 0x8048F46: main (sendvector.c:94)
>
> Um, this is a bit hard to think about without a specific example
> to prod at. Could you make one?
Assume that shm is a shared memory fifo and the process copying out
knows to read the size from the correct slot and only loads the relevant
data. In our experiance the use of a copy routine like this is
significantly faster than memcpy() in the cases we care about.
The code complains on i686 and x86_64 normally, --partial-loads-ok=yes
allows it to run cleanly on x86_64 but it still reports errors on i686.
Originally I had suppressions for the warning but then I realised that
it suppressed the case where invalid addresses were being passed to
send_data()
#include <inttypes.h>
#define ELAN_ALIGNUP(x,a) ((typeof(x))(((uintptr_t)(x) + ((a)-1)) &
(-(a)))) /* 'a' power of 2 */
uint64_t *shm;
void copy (void *dst, void *src, int size) {
if ( (int)src & 7 ) {
memcpy(dst,src,size);
return;
}
int ndwords = (ELAN_ALIGNUP(size, 8) >> 3);
int i,idx;
uint64_t *s = src;
uint64_t *d = dst;
idx = 0;
for ( i = 0 ; i < ndwords ; i++ )
d[idx++] = s[i];
}
int send_data (int idx, void *base, int size) {
shm[0] = idx;
shm[1] = size;
copy(&shm[2],base,size);
}
int main () {
shm = malloc(1024*64);
int i;
for ( i = 0 ; i < 32 ; i++ ) {
char *buf = malloc(i);
send_data(42,buf,i);
free(buf);
}
return 0;
}
|
|
From: <sv...@va...> - 2007-03-12 15:11:09
|
Author: sewardj
Date: 2007-03-12 15:10:59 +0000 (Mon, 12 Mar 2007)
New Revision: 6647
Log:
Tidy up a lot
Modified:
trunk/docs/internals/3_2_BUGSTATUS.txt
Modified: trunk/docs/internals/3_2_BUGSTATUS.txt
===================================================================
--- trunk/docs/internals/3_2_BUGSTATUS.txt 2007-03-12 14:53:58 UTC (rev 6646)
+++ trunk/docs/internals/3_2_BUGSTATUS.txt 2007-03-12 15:10:59 UTC (rev 6647)
@@ -13,15 +13,16 @@
---------- Bugs reported after (in) 3.2.3 --------------------------
+//// possibly fix these for a 3.2.4 ?
+
TRUNK 32BRANCH PRI BUG# WHAT
r6566 pending 32 n-i-bz AT_FDCWD support for openat()
r6575 pending 32 n-i-bz walk_type: unhandled base type 0xe PACKED
-pending pending n-i-bz --track-fds reports leakage of
+pending pending 140939 --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)
@@ -47,27 +48,46 @@
Ashley logfile qualifiers in coredumps patch
-RedHat8 needs suppressions (r6612) (definitely merge)
-- see 142228 complaint of elf_dynamic_do_rela in trivial usage
-- also 142229 unexpected "write(buf) points to uninitialised byte(s)"
+r6612 pending 32 142228 RedHat8: complaint of elf_dynamic_do_rela
+r6646 pending 32 142229 RedHat8: unexpected "write(buf) points
+ to uninitialised byte(s)" (partial fix)
-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)
+vx1736 pending 32 133984 int3 (x86) support
+vx1741 pending 32 133984 int3 (amd64) support
-[Bug 142279] New: long indirect jmp unhandled: unhandled Grp5(M) case 5
-int3 (133984): vx1736; merge to stable
+r6599 pending 32 n-i-bz Correctly handle DW_CFA_def_cfa_sf
-vx1737 (26 2E 64 65 90 %es:%cs:%fs:%gs:nop) - x86 - merge
+vx1737 pending 32 n-i-bz x86->IR: 26 2E 64 65 90 %es:%cs:%fs:%gs:nop
+vx1739 pending 32 n-i-bz ppc64 iselWordExpr_AMode fix
+
+r6641 pending 32 n-i-bz handle sys_ioprio_set on amd64-linux
+
+vx1740 pending ?? n-i-bz handle REX.W fsqrt
+
Make configure check try for -fno-stack-protector (users, 26 Feb)
possible false errors on amd64 cmpq/jae, cmpq/jbe
-r6630 pending ?? ptrace extra reason codes
-r6631 pending 142186 dd support for some I2C ioctls.
+//// maybe do not fix in 3.2 branch
+64 bit DWARF in unwind (r6610) (definitely merge (??))
+
+get rid of kludge_then_addDiCfSI (r6611; do not merge)
+
+142279 long indirect jmp unhandled: unhandled Grp5(M) case 5
+ (intersegment jump?)
+
+r6630 pending ?? ptrace extra reason codes
+r6631 pending ?? 142186 dd support for some I2C ioctls.
+
+r6640 pending no n-i-bz memcheck: intercept getenv
+(XXXX maybe get rid of this)
+
+3.2.4 criteria: FC7 runs, SuSE 10.3a? runs
+
+
------- Bugs reported and fixed in 3.2.3 ------
TRUNK 32BRANCH PRI BUG# WHAT
|
|
From: <sv...@va...> - 2007-03-12 14:54:10
|
Author: sewardj
Date: 2007-03-12 14:53:58 +0000 (Mon, 12 Mar 2007)
New Revision: 6646
Log:
More redhat8 suppressions.
Modified:
trunk/glibc-2.3.supp
Modified: trunk/glibc-2.3.supp
===================================================================
--- trunk/glibc-2.3.supp 2007-03-12 02:10:23 UTC (rev 6645)
+++ trunk/glibc-2.3.supp 2007-03-12 14:53:58 UTC (rev 6646)
@@ -345,6 +345,14 @@
fun:pthread_create@@GLIBC_2.1
}
{
+ LinuxThreads: write/pthread_create 2
+ Memcheck:Param
+ write(buf)
+ fun:write
+ fun:pthread_create@@GLIBC_2.1
+ fun:main
+}
+{
LinuxThreads: write/__pthread_initialize_manager/pthread_create
Memcheck:Param
write(buf)
|
|
From: Ashley P. <as...@qu...> - 2007-03-12 12:18:39
|
On Sat, 2007-03-10 at 12:24 +0000, Julian Seward wrote: > [Marginally OT ..] I wouldn't have said so. > Perhaps a better fix is to set those V bits to 'undefined' in that case. > > iow, for a read which partially overlaps the end of a block: > > - With --partial-loads-ok=no [the default] > give an addressing error, and set the corresponding V bits to 'defined' > > - With --partial-loads-ok=yes > do not give an addressing error, and set the corresponding V bits > to 'undefined', so we yelp later if anybody uses them > > If this sounds all a bit arcane, that's because it is :-) The last part > of Sec 2.7 of http://www.valgrind.org/docs/memcheck2005.pdf might help. I had to read that two or three times to understand it but yes I think you are right, it's probably "OK" to set the Vbits to defined if a error was raised when they were read but if the error was suppressed then they should be set to undefined. This highlights the sensible but not always obvious approach that when diagnosing programs with memcheck errors the errors should be tackled in chronological order rather than in order of severity, in particular earlier "invalid read" errors could have the effect of hiding later "undefined behaviour" errors. Ashley, |
|
From: <js...@ac...> - 2007-03-12 11:00:18
|
Nightly build on minnie ( SuSE 10.0, ppc32 ) started at 2007-03-12 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: Tom H. <th...@cy...> - 2007-03-12 03:23:46
|
Nightly build on dellow ( x86_64, Fedora Core 6 ) started at 2007-03-12 03:10:05 GMT Results differ from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 291 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) ================================================= == 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 == 289 tests, 5 stderr failures, 2 stdout failures, 0 posttest failures == memcheck/tests/amd64/defcfaexpr (stderr) 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 Mon Mar 12 03:17:06 2007 --- new.short Mon Mar 12 03:23:38 2007 *************** *** 8,11 **** ! == 289 tests, 5 stderr failures, 2 stdout failures, 0 posttest failures == ! memcheck/tests/amd64/defcfaexpr (stderr) memcheck/tests/pointer-trace (stderr) --- 8,10 ---- ! == 291 tests, 4 stderr failures, 2 stdout failures, 0 posttest failures == memcheck/tests/pointer-trace (stderr) |
|
From: Tom H. <th...@cy...> - 2007-03-12 03:22:47
|
Nightly build on alvis ( i686, Red Hat 7.3 ) started at 2007-03-12 03:15:01 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/cc6S0eHG.s:4393: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/cc6S0eHG.s:4513: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/cc6S0eHG.s:4633: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/cc6S0eHG.s:4753: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/cc6S0eHG.s:4873: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/cc6S0eHG.s:4993: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/cc6S0eHG.s:5113: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/cc6S0eHG.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/vgtest/2007-03-12/valgrind/none/tests/x86' make[4]: *** [check-am] Error 2 make[4]: Leaving directory `/tmp/vgtest/2007-03-12/valgrind/none/tests/x86' make[3]: *** [check-recursive] Error 1 make[3]: Leaving directory `/tmp/vgtest/2007-03-12/valgrind/none/tests' make[2]: *** [check-recursive] Error 1 make[2]: Leaving directory `/tmp/vgtest/2007-03-12/valgrind/none' make[1]: *** [check-recursive] Error 1 make[1]: Leaving directory `/tmp/vgtest/2007-03-12/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/cc3EgH3k.s:4393: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/cc3EgH3k.s:4513: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/cc3EgH3k.s:4633: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/cc3EgH3k.s:4753: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/cc3EgH3k.s:4873: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/cc3EgH3k.s:4993: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/cc3EgH3k.s:5113: Error: no such instruction: `fisttpq -56(%ebp)' /tmp/cc3EgH3k.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/vgtest/2007-03-12/valgrind/none/tests/x86' make[4]: *** [check-am] Error 2 make[4]: Leaving directory `/tmp/vgtest/2007-03-12/valgrind/none/tests/x86' make[3]: *** [check-recursive] Error 1 make[3]: Leaving directory `/tmp/vgtest/2007-03-12/valgrind/none/tests' make[2]: *** [check-recursive] Error 1 make[2]: Leaving directory `/tmp/vgtest/2007-03-12/valgrind/none' make[1]: *** [check-recursive] Error 1 make[1]: Leaving directory `/tmp/vgtest/2007-03-12/valgrind' make: *** [check] Error 2 ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Mon Mar 12 03:18:53 2007 --- new.short Mon Mar 12 03:22:39 2007 *************** *** 7,16 **** Last 20 lines of verbose log follow echo ! /tmp/cc3EgH3k.s:4393: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/cc3EgH3k.s:4513: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/cc3EgH3k.s:4633: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/cc3EgH3k.s:4753: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/cc3EgH3k.s:4873: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/cc3EgH3k.s:4993: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/cc3EgH3k.s:5113: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/cc3EgH3k.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/cc6S0eHG.s:4393: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/cc6S0eHG.s:4513: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/cc6S0eHG.s:4633: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/cc6S0eHG.s:4753: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/cc6S0eHG.s:4873: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/cc6S0eHG.s:4993: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/cc6S0eHG.s:5113: Error: no such instruction: `fisttpq -56(%ebp)' ! /tmp/cc6S0eHG.s:5233: Error: no such instruction: `fisttpq -56(%ebp)' make[5]: *** [insn_sse3.o] Error 1 |
|
From: Tom H. <th...@cy...> - 2007-03-12 03:18:41
|
Nightly build on lloyd ( x86_64, Fedora Core 3 ) started at 2007-03-12 03:05:05 GMT Results differ from 24 hours ago Checking out valgrind source tree ... done Configuring valgrind ... done Building valgrind ... done Running regression tests ... failed Regression test results follow == 291 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) ================================================= == 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 == 289 tests, 7 stderr failures, 1 stdout failure, 0 posttest failures == memcheck/tests/amd64/defcfaexpr (stderr) 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) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Mon Mar 12 03:12:30 2007 --- new.short Mon Mar 12 03:18:36 2007 *************** *** 8,11 **** ! == 289 tests, 7 stderr failures, 1 stdout failure, 0 posttest failures == ! memcheck/tests/amd64/defcfaexpr (stderr) memcheck/tests/pointer-trace (stderr) --- 8,10 ---- ! == 291 tests, 6 stderr failures, 1 stdout failure, 0 posttest failures == memcheck/tests/pointer-trace (stderr) |
|
From: Tom H. <th...@cy...> - 2007-03-12 03:14:19
|
Nightly build on gill ( x86_64, Fedora Core 2 ) started at 2007-03-12 03:00:03 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 == 293 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) ================================================= == 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 == 291 tests, 7 stderr failures, 1 stdout failure, 0 posttest failures == memcheck/tests/amd64/defcfaexpr (stderr) 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) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Mon Mar 12 03:08:21 2007 --- new.short Mon Mar 12 03:14:10 2007 *************** *** 8,11 **** ! == 291 tests, 7 stderr failures, 1 stdout failure, 0 posttest failures == ! memcheck/tests/amd64/defcfaexpr (stderr) memcheck/tests/pointer-trace (stderr) --- 8,10 ---- ! == 293 tests, 6 stderr failures, 1 stdout failure, 0 posttest failures == memcheck/tests/pointer-trace (stderr) |
|
From: <sv...@va...> - 2007-03-12 02:10:24
|
Author: sewardj
Date: 2007-03-12 02:10:23 +0000 (Mon, 12 Mar 2007)
New Revision: 6645
Log:
Add a test for vex ppc64 code generation bug fixed by vex r1739
(When generating 64-bit code, ensure that any addresses used in 4 or 8
byte loads or stores of the form reg+imm have the lowest 2 bits of imm
set to zero, so that they can safely be used in ld/ldu/lda/std/stdu
instructions.)
Added:
trunk/none/tests/ppc64/std_reg_imm.c
trunk/none/tests/ppc64/std_reg_imm.stderr.exp
trunk/none/tests/ppc64/std_reg_imm.stdout.exp
trunk/none/tests/ppc64/std_reg_imm.vgtest
Modified:
trunk/none/tests/ppc64/Makefile.am
Modified: trunk/none/tests/ppc64/Makefile.am
===================================================================
--- trunk/none/tests/ppc64/Makefile.am 2007-03-12 01:29:31 UTC (rev 6644)
+++ trunk/none/tests/ppc64/Makefile.am 2007-03-12 02:10:23 UTC (rev 6645)
@@ -6,11 +6,12 @@
jm-fp.stderr.exp jm-fp.stdout.exp jm-fp.vgtest \
jm-vmx.stderr.exp jm-vmx.stdout.exp jm-vmx.vgtest \
lsw.stderr.exp lsw.stdout.exp lsw.vgtest \
+ std_reg_imm.vgtest std_reg_imm.stderr.exp std_reg_imm.stdout.exp \
round.stderr.exp round.stdout.exp round.vgtest \
twi_tdi.stderr.exp twi_tdi.stdout.exp twi_tdi.vgtest
check_PROGRAMS = \
- jm-insns lsw round twi_tdi
+ jm-insns lsw round std_reg_imm twi_tdi
AM_CFLAGS = $(WERROR) -Winline -Wall -Wshadow -g -I$(top_srcdir)/include \
@FLAG_M64@
Added: trunk/none/tests/ppc64/std_reg_imm.c
===================================================================
--- trunk/none/tests/ppc64/std_reg_imm.c (rev 0)
+++ trunk/none/tests/ppc64/std_reg_imm.c 2007-03-12 02:10:23 UTC (rev 6645)
@@ -0,0 +1,79 @@
+
+/*
+This is a regression test for the following problem, noticed by
+Greg Parker:
+
+vex ppc64 generates bad code for instruction sequences like this:
+
+ li r0, 2
+ stdx r3, r1, r0
+
+gcc emits code like this when manipulating packed structures
+with 8-byte fields on 2-byte boundaries.
+
+First, vex's optimizer substitutes a constant 0x2 for r0:
+
+ ------ IMark(0x100000F34, 4) ------
+ PUT(1024) = 0x100000F34:I64
+ t3 = GET:I64(24)
+ t14 = GET:I64(8)
+ t13 = Add64(t14,0x2:I64)
+ STbe(t13) = t3
+
+Then instruction selection chooses `std` with an index not divisible by 4:
+
+ -- STbe(Add64(GET:I64(8),0x2:I64)) = GET:I64(24)
+ ldz %vR22,8(%r31)
+ ldz %vR23,24(%r31)
+ std %vR23,2(%vR22)
+
+Finally, the assembler silently strips the index&3 part,
+because `std` can't encode that:
+
+ std %r6,2(%r5)
+ F8 C5 00 00
+
+...but 0xF8C50000 is `std r6, 0(r5)`, which writes to the wrong address.
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <assert.h>
+
+typedef
+struct __attribute__ ((__packed__)) {
+ char before[2];
+ unsigned long long int w64;
+ char after[6];
+}
+T;
+
+void foo (T* t, unsigned long long int w)
+{
+ __asm__ __volatile__(
+ "stdx %0,%1,%2"
+ : : "b"(w), "b"(t), "b"(2) : "memory"
+ );
+}
+
+int main ( void )
+{
+ T* t;
+ unsigned char* p;
+ int i;
+ assert(sizeof(T) == 16);
+ t = calloc(sizeof(T),1);
+ assert(t);
+ /* check t is 8-aligned. This causes the write done by 'foo' to be
+ misaligned by 2 as desired, triggering the bug. */
+ assert(0 == (((unsigned long)t) & 7));
+ foo(t, 0x1122334455667788);
+ p = (unsigned char*)t;
+ for (i = 0; i < 16; i++)
+ if (p[i] == 0)
+ printf("..");
+ else
+ printf("%02x", (int)p[i]);
+ printf("\n");
+ return 0;
+}
Added: trunk/none/tests/ppc64/std_reg_imm.stderr.exp
===================================================================
Added: trunk/none/tests/ppc64/std_reg_imm.stdout.exp
===================================================================
--- trunk/none/tests/ppc64/std_reg_imm.stdout.exp (rev 0)
+++ trunk/none/tests/ppc64/std_reg_imm.stdout.exp 2007-03-12 02:10:23 UTC (rev 6645)
@@ -0,0 +1 @@
+....1122334455667788............
Added: trunk/none/tests/ppc64/std_reg_imm.vgtest
===================================================================
--- trunk/none/tests/ppc64/std_reg_imm.vgtest (rev 0)
+++ trunk/none/tests/ppc64/std_reg_imm.vgtest 2007-03-12 02:10:23 UTC (rev 6645)
@@ -0,0 +1,2 @@
+prog: std_reg_imm
+vgopts: -q
|
|
From: <sv...@va...> - 2007-03-12 01:29:34
|
Author: sewardj Date: 2007-03-12 01:29:31 +0000 (Mon, 12 Mar 2007) New Revision: 6644 Log: Add a custom stderr filter for memcheck/tests/amd64/defcfaexpr. Added: trunk/memcheck/tests/amd64/filter_defcfaexpr Modified: trunk/memcheck/tests/amd64/Makefile.am trunk/memcheck/tests/amd64/defcfaexpr.stderr.exp trunk/memcheck/tests/amd64/defcfaexpr.vgtest Modified: trunk/memcheck/tests/amd64/Makefile.am =================================================================== --- trunk/memcheck/tests/amd64/Makefile.am 2007-03-12 00:42:26 UTC (rev 6643) +++ trunk/memcheck/tests/amd64/Makefile.am 2007-03-12 01:29:31 UTC (rev 6644) @@ -11,7 +11,7 @@ bt_everything.stderr.exp bt_everything.stdout.exp \ bt_everything.vgtest \ bug132146.vgtest bug132146.stderr.exp bug132146.stdout.exp \ - defcfaexpr.vgtest defcfaexpr.stderr.exp \ + defcfaexpr.vgtest defcfaexpr.stderr.exp filter_defcfaexpr \ fxsave-amd64.vgtest fxsave-amd64.stdout.exp fxsave-amd64.stderr.exp \ int3-amd64.vgtest int3-amd64.stdout.exp int3-amd64.stderr.exp \ more_x87_fp.stderr.exp more_x87_fp.stdout.exp more_x87_fp.vgtest \ Modified: trunk/memcheck/tests/amd64/defcfaexpr.stderr.exp =================================================================== --- trunk/memcheck/tests/amd64/defcfaexpr.stderr.exp 2007-03-12 00:42:26 UTC (rev 6643) +++ trunk/memcheck/tests/amd64/defcfaexpr.stderr.exp 2007-03-12 01:29:31 UTC (rev 6644) @@ -1,5 +1,5 @@ Conditional jump or move depends on uninitialised value(s) - at 0x........: bbb (in ...) - by 0x........: aaa (in ...) - by 0x........: aaa (in ...) - by 0x........: main (in ...) + at 0x........: bbb (bogus.S:0) + by 0x........: aaa (bogus.S:0) + by 0x........: aaa (bogus.S:0) + by 0x........: main (bogus.S:0) Modified: trunk/memcheck/tests/amd64/defcfaexpr.vgtest =================================================================== --- trunk/memcheck/tests/amd64/defcfaexpr.vgtest 2007-03-12 00:42:26 UTC (rev 6643) +++ trunk/memcheck/tests/amd64/defcfaexpr.vgtest 2007-03-12 01:29:31 UTC (rev 6644) @@ -1,2 +1,3 @@ prog: defcfaexpr +stderr_filter: filter_defcfaexpr vgopts: -q Added: trunk/memcheck/tests/amd64/filter_defcfaexpr =================================================================== --- trunk/memcheck/tests/amd64/filter_defcfaexpr (rev 0) +++ trunk/memcheck/tests/amd64/filter_defcfaexpr 2007-03-12 01:29:31 UTC (rev 6644) @@ -0,0 +1,28 @@ +#! /bin/sh + +# change +# +# ==6019== at 0x400512: bbb (in +# /home/sewardj/VgTRUNK/trunk/memcheck/tests/amd64/defcfaexpr) +# +# to +# +# ==6019== at 0x400512: bbb (in bogus.S:0) +# +# and then to +# +# ==6019== at 0x400512: bbb (bogus.S:0) +# +# Then the standard ./filter_stderr won't screw it up any more, +# instead producing what we want, which is +# +# at 0x........: bbb (bogus.S:0) +# +# where the important point is that the function name is intact. +# since the point of this test is to check that V can unwind the +# stack given the unusual CFAs describing it. + + +sed "s/\/.*\/tests\/amd64\/defcfaexpr/bogus.S:0/" | \ + sed "s/(in /(/" | \ + ./filter_stderr Property changes on: trunk/memcheck/tests/amd64/filter_defcfaexpr ___________________________________________________________________ Name: svn:executable + * |
|
From: <js...@ac...> - 2007-03-12 01:16:54
|
Nightly build on g5 ( SuSE 10.1, ppc970 ) started at 2007-03-12 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, 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) ================================================= == 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, 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) ================================================= == Difference between 24 hours ago and now == ================================================= *** old.short Mon Mar 12 02:08:12 2007 --- new.short Mon Mar 12 02:16:52 2007 *************** *** 8,10 **** ! == 225 tests, 6 stderr failures, 2 stdout failures, 0 posttest failures == memcheck/tests/deep_templates (stdout) --- 8,10 ---- ! == 225 tests, 6 stderr failures, 3 stdout failures, 0 posttest failures == memcheck/tests/deep_templates (stdout) *************** *** 17,18 **** --- 17,19 ---- none/tests/mremap2 (stdout) + none/tests/res_search (stdout) |
|
From: <sv...@va...> - 2007-03-12 00:44:01
|
Author: sewardj
Date: 2007-03-12 00:43:59 +0000 (Mon, 12 Mar 2007)
New Revision: 1741
Log:
Support 'INT $3' instruction on amd64 (counterpart to vx1736).
Modified:
trunk/priv/guest-amd64/toIR.c
trunk/priv/host-amd64/hdefs.c
Modified: trunk/priv/guest-amd64/toIR.c
===================================================================
--- trunk/priv/guest-amd64/toIR.c 2007-03-11 19:34:13 UTC (rev 1740)
+++ trunk/priv/guest-amd64/toIR.c 2007-03-12 00:43:59 UTC (rev 1741)
@@ -12405,6 +12405,12 @@
/* ------------------------ INT ------------------------ */
+ case 0xCC: /* INT 3 */
+ jmp_lit(Ijk_Trap, guest_RIP_bbstart + delta);
+ dres.whatNext = Dis_StopHere;
+ DIP("int $0x3\n");
+ break;
+
case 0xCD: { /* INT imm8 */
IRJumpKind jk = Ijk_Boring;
if (have66orF2orF3(pfx)) goto decode_failure;
Modified: trunk/priv/host-amd64/hdefs.c
===================================================================
--- trunk/priv/host-amd64/hdefs.c 2007-03-11 19:34:13 UTC (rev 1740)
+++ trunk/priv/host-amd64/hdefs.c 2007-03-12 00:43:59 UTC (rev 1741)
@@ -2640,6 +2640,9 @@
case Ijk_NoRedir:
*p++ = 0xBD;
p = emit32(p, VEX_TRC_JMP_NOREDIR); break;
+ case Ijk_Trap:
+ *p++ = 0xBD;
+ p = emit32(p, VEX_TRC_JMP_TRAP); break;
case Ijk_Ret:
case Ijk_Call:
case Ijk_Boring:
|
|
From: <sv...@va...> - 2007-03-12 00:42:28
|
Author: sewardj
Date: 2007-03-12 00:42:26 +0000 (Mon, 12 Mar 2007)
New Revision: 6643
Log:
Add a test for int3 on x86 (from Peter Maydell)
Added:
trunk/memcheck/tests/x86/int3-x86.c
trunk/memcheck/tests/x86/int3-x86.stderr.exp
trunk/memcheck/tests/x86/int3-x86.stdout.exp
trunk/memcheck/tests/x86/int3-x86.vgtest
Modified:
trunk/memcheck/tests/x86/Makefile.am
Modified: trunk/memcheck/tests/x86/Makefile.am
===================================================================
--- trunk/memcheck/tests/x86/Makefile.am 2007-03-12 00:27:30 UTC (rev 6642)
+++ trunk/memcheck/tests/x86/Makefile.am 2007-03-12 00:42:26 UTC (rev 6643)
@@ -11,6 +11,7 @@
$(addsuffix .stderr.exp,$(INSN_TESTS)) \
$(addsuffix .stdout.exp,$(INSN_TESTS)) \
$(addsuffix .vgtest,$(INSN_TESTS)) \
+ int3-x86.vgtest int3-x86.stderr.exp int3-x86.stdout.exp \
pushfpopf.stderr.exp pushfpopf.stdout.exp pushfpopf.vgtest \
pushpopmem.stderr.exp pushpopmem.stdout.exp pushpopmem.vgtest \
scalar.stderr.exp scalar.stderr.exp2 scalar.vgtest \
@@ -31,6 +32,7 @@
check_PROGRAMS = \
bug133694 \
espindola2 \
+ int3-x86 \
scalar_exit_group scalar_fork scalar_supp scalar_vfork \
fpeflags pushfpopf pushpopmem scalar sse_memory tronical \
more_x86_fp fprem xor-undef-x86
Added: trunk/memcheck/tests/x86/int3-x86.c
===================================================================
--- trunk/memcheck/tests/x86/int3-x86.c (rev 0)
+++ trunk/memcheck/tests/x86/int3-x86.c 2007-03-12 00:42:26 UTC (rev 6643)
@@ -0,0 +1,52 @@
+
+#undef _GNU_SOURCE
+#define _GNU_SOURCE 1
+
+#include <signal.h>
+#include <stdio.h>
+#include <sys/ucontext.h>
+
+static char* eip_at_sig = NULL;
+
+static void int_handler(int signum, siginfo_t *si, void *uc_arg)
+{
+ ucontext_t *uc = (ucontext_t *)uc_arg;
+ /* Note that uc->uc_mcontext is an embedded struct, not a pointer */
+ mcontext_t *mc = &(uc->uc_mcontext);
+ void *pc = (void*)mc->gregs[REG_EIP];
+ printf("in int_handler, EIP is ...\n");
+ eip_at_sig = pc;
+}
+
+static void register_handler(int sig, void *handler)
+{
+ struct sigaction sa;
+ sa.sa_flags = SA_RESTART | SA_SIGINFO;
+ sigfillset(&sa.sa_mask);
+ sa.sa_sigaction = handler;
+ sigaction(sig, &sa, NULL);
+}
+
+int main(void) {
+ char *intaddr = NULL;
+ puts("main");
+ register_handler(SIGTRAP, int_handler);
+ asm volatile(
+ "movl $zz_int, %%edx\n"
+ "mov %%edx, %0\n"
+ "zz_int:\n"
+ "int $3\n"
+ : /* no outputs */
+ : "m" (intaddr) /* input: address of var to store target addr to */
+ : /* clobbers */ "edx"
+ );
+ /* intaddr is the address of the int 3 insn. eip_at_sig is the PC
+ after the exception, which should be the next insn along.
+ Hence: */
+ if (intaddr != NULL && eip_at_sig != NULL
+ && eip_at_sig == intaddr+1)
+ printf("PASS\n");
+ else
+ printf("FAIL\n");
+ return 0;
+}
Added: trunk/memcheck/tests/x86/int3-x86.stderr.exp
===================================================================
Added: trunk/memcheck/tests/x86/int3-x86.stdout.exp
===================================================================
--- trunk/memcheck/tests/x86/int3-x86.stdout.exp (rev 0)
+++ trunk/memcheck/tests/x86/int3-x86.stdout.exp 2007-03-12 00:42:26 UTC (rev 6643)
@@ -0,0 +1,3 @@
+main
+in int_handler, EIP is ...
+PASS
Added: trunk/memcheck/tests/x86/int3-x86.vgtest
===================================================================
--- trunk/memcheck/tests/x86/int3-x86.vgtest (rev 0)
+++ trunk/memcheck/tests/x86/int3-x86.vgtest 2007-03-12 00:42:26 UTC (rev 6643)
@@ -0,0 +1,2 @@
+prog: int3-x86
+vgopts: -q
|
|
From: <sv...@va...> - 2007-03-12 00:27:35
|
Author: sewardj
Date: 2007-03-12 00:27:30 +0000 (Mon, 12 Mar 2007)
New Revision: 6642
Log:
Add a test for int3 on amd64 (from Peter Maydell)
Added:
trunk/memcheck/tests/amd64/int3-amd64.c
trunk/memcheck/tests/amd64/int3-amd64.stderr.exp
trunk/memcheck/tests/amd64/int3-amd64.stdout.exp
trunk/memcheck/tests/amd64/int3-amd64.vgtest
Modified:
trunk/memcheck/tests/amd64/Makefile.am
Modified: trunk/memcheck/tests/amd64/Makefile.am
===================================================================
--- trunk/memcheck/tests/amd64/Makefile.am 2007-03-11 19:28:02 UTC (rev 6641)
+++ trunk/memcheck/tests/amd64/Makefile.am 2007-03-12 00:27:30 UTC (rev 6642)
@@ -13,12 +13,14 @@
bug132146.vgtest bug132146.stderr.exp bug132146.stdout.exp \
defcfaexpr.vgtest defcfaexpr.stderr.exp \
fxsave-amd64.vgtest fxsave-amd64.stdout.exp fxsave-amd64.stderr.exp \
+ int3-amd64.vgtest int3-amd64.stdout.exp int3-amd64.stderr.exp \
more_x87_fp.stderr.exp more_x87_fp.stdout.exp more_x87_fp.vgtest \
sse_memory.stderr.exp sse_memory.stdout.exp sse_memory.vgtest \
xor-undef-amd64.stderr.exp xor-undef-amd64.stdout.exp \
xor-undef-amd64.vgtest
check_PROGRAMS = bt_everything bug132146 defcfaexpr fxsave-amd64 \
+ int3-amd64 \
more_x87_fp sse_memory xor-undef-amd64
AM_CPPFLAGS = -I$(top_srcdir)/include
Added: trunk/memcheck/tests/amd64/int3-amd64.c
===================================================================
--- trunk/memcheck/tests/amd64/int3-amd64.c (rev 0)
+++ trunk/memcheck/tests/amd64/int3-amd64.c 2007-03-12 00:27:30 UTC (rev 6642)
@@ -0,0 +1,52 @@
+
+#undef _GNU_SOURCE
+#define _GNU_SOURCE 1
+
+#include <signal.h>
+#include <stdio.h>
+#include <sys/ucontext.h>
+
+static char* rip_at_sig = NULL;
+
+static void int_handler(int signum, siginfo_t *si, void *uc_arg)
+{
+ ucontext_t *uc = (ucontext_t *)uc_arg;
+ /* Note that uc->uc_mcontext is an embedded struct, not a pointer */
+ mcontext_t *mc = &(uc->uc_mcontext);
+ void *pc = (void*)mc->gregs[REG_RIP];
+ printf("in int_handler, RIP is ...\n");
+ rip_at_sig = pc;
+}
+
+static void register_handler(int sig, void *handler)
+{
+ struct sigaction sa;
+ sa.sa_flags = SA_RESTART | SA_SIGINFO;
+ sigfillset(&sa.sa_mask);
+ sa.sa_sigaction = handler;
+ sigaction(sig, &sa, NULL);
+}
+
+int main(void) {
+ char *intaddr = NULL;
+ puts("main");
+ register_handler(SIGTRAP, int_handler);
+ asm volatile(
+ "movabsq $zz_int, %%rdx\n"
+ "mov %%rdx, %0\n"
+ "zz_int:\n"
+ "int $3\n"
+ : /* no outputs */
+ : "m" (intaddr) /* input: address of var to store target addr to */
+ : /* clobbers */ "rdx"
+ );
+ /* intaddr is the address of the int 3 insn. rip_at_sig is the PC
+ after the exception, which should be the next insn along.
+ Hence: */
+ if (intaddr != NULL && rip_at_sig != NULL
+ && rip_at_sig == intaddr+1)
+ printf("PASS\n");
+ else
+ printf("FAIL\n");
+ return 0;
+}
Added: trunk/memcheck/tests/amd64/int3-amd64.stderr.exp
===================================================================
Added: trunk/memcheck/tests/amd64/int3-amd64.stdout.exp
===================================================================
--- trunk/memcheck/tests/amd64/int3-amd64.stdout.exp (rev 0)
+++ trunk/memcheck/tests/amd64/int3-amd64.stdout.exp 2007-03-12 00:27:30 UTC (rev 6642)
@@ -0,0 +1,3 @@
+main
+in int_handler, RIP is ...
+PASS
Added: trunk/memcheck/tests/amd64/int3-amd64.vgtest
===================================================================
--- trunk/memcheck/tests/amd64/int3-amd64.vgtest (rev 0)
+++ trunk/memcheck/tests/amd64/int3-amd64.vgtest 2007-03-12 00:27:30 UTC (rev 6642)
@@ -0,0 +1,2 @@
+prog: int3-amd64
+vgopts: -q
|