|
From: <sv...@va...> - 2005-05-05 08:16:36
|
Author: tom
Date: 2005-05-05 09:16:24 +0100 (Thu, 05 May 2005)
New Revision: 3622
Modified:
trunk/coregrind/m_sigframe/sigframe-amd64-linux.c
trunk/coregrind/m_sigframe/sigframe-x86-linux.c
trunk/coregrind/vg_signals.c
Log:
Allow for the red zone when generating new_mem_stack_signal and
die_mem_stack_signal events.
Modified: trunk/coregrind/m_sigframe/sigframe-amd64-linux.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_sigframe/sigframe-amd64-linux.c 2005-05-05 01:37:46=
UTC (rev 3621)
+++ trunk/coregrind/m_sigframe/sigframe-amd64-linux.c 2005-05-05 08:16:24=
UTC (rev 3622)
@@ -404,7 +404,7 @@
=20
/* For tracking memory events, indicate the entire frame has been
allocated. */
- VG_TRACK( new_mem_stack_signal, addr, size );
+ VG_TRACK( new_mem_stack_signal, addr - VGA_STACK_REDZONE_SIZE, size )=
;
=20
return True;
}
@@ -600,7 +600,7 @@
=20
size =3D restore_rt_sigframe(tst, (struct rt_sigframe *)rsp, &sigNo);
=20
- VG_TRACK( die_mem_stack_signal, rsp, size );
+ VG_TRACK( die_mem_stack_signal, rsp - VGA_STACK_REDZONE_SIZE, size );
=20
if (VG_(clo_trace_signals))
VG_(message)(
Modified: trunk/coregrind/m_sigframe/sigframe-x86-linux.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/m_sigframe/sigframe-x86-linux.c 2005-05-05 01:37:46 U=
TC (rev 3621)
+++ trunk/coregrind/m_sigframe/sigframe-x86-linux.c 2005-05-05 08:16:24 U=
TC (rev 3622)
@@ -425,7 +425,7 @@
=20
/* For tracking memory events, indicate the entire frame has been
allocated. */
- VG_TRACK( new_mem_stack_signal, addr, size );
+ VG_TRACK( new_mem_stack_signal, addr - VGA_STACK_REDZONE_SIZE, size )=
;
=20
return True;
}
@@ -682,7 +682,7 @@
else
size =3D restore_rt_sigframe(tst, (struct rt_sigframe *)esp, &sigN=
o);
=20
- VG_TRACK( die_mem_stack_signal, esp, size );
+ VG_TRACK( die_mem_stack_signal - VGA_STACK_REDZONE_SIZE, esp, size );
=20
if (VG_(clo_trace_signals))
VG_(message)(
Modified: trunk/coregrind/vg_signals.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/coregrind/vg_signals.c 2005-05-05 01:37:46 UTC (rev 3621)
+++ trunk/coregrind/vg_signals.c 2005-05-05 08:16:24 UTC (rev 3622)
@@ -474,6 +474,10 @@
VG_(threads)[tid].altstack.ss_sp =3D ss->ss_sp;
VG_(threads)[tid].altstack.ss_size =3D ss->ss_size;
VG_(threads)[tid].altstack.ss_flags =3D 0;
+
+ VG_TRACK( new_mem_stack_signal,
+ ss->ss_sp + ss->ss_size - VGA_STACK_REDZONE_SIZE,
+ VGA_STACK_REDZONE_SIZE );
}
}
SET_SYSCALL_RETVAL(tid, 0);
|