]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Allow for the red zone when generating new_mem_stack_signal and
authorTom Hughes <tom@compton.nu>
Thu, 5 May 2005 08:16:24 +0000 (08:16 +0000)
committerTom Hughes <tom@compton.nu>
Thu, 5 May 2005 08:16:24 +0000 (08:16 +0000)
die_mem_stack_signal events.

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@3622

coregrind/m_sigframe/sigframe-amd64-linux.c
coregrind/m_sigframe/sigframe-x86-linux.c
coregrind/vg_signals.c

index 241615d452a1fa3a0da3671fb3997f2b47c14a3f..c4a19bb888cb4a1ae3cf64cf7548f3b37d3d09e3 100644 (file)
@@ -404,7 +404,7 @@ static Bool extend ( ThreadState *tst, Addr addr, SizeT size )
 
    /* 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 );
 
    return True;
 }
@@ -600,7 +600,7 @@ void VG_(sigframe_destroy)( ThreadId tid, Bool isRT )
 
    size = restore_rt_sigframe(tst, (struct rt_sigframe *)rsp, &sigNo);
 
-   VG_TRACK( die_mem_stack_signal, rsp, size );
+   VG_TRACK( die_mem_stack_signal, rsp - VGA_STACK_REDZONE_SIZE, size );
 
    if (VG_(clo_trace_signals))
       VG_(message)(
index b0c60a9a338091d1ae570b60d5da4c5bd3219c20..1255794f81455437bf12e80f0745b30f967dbbbf 100644 (file)
@@ -425,7 +425,7 @@ static Bool extend ( ThreadState *tst, Addr addr, SizeT size )
 
    /* 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 );
 
    return True;
 }
@@ -682,7 +682,7 @@ void VG_(sigframe_destroy)( ThreadId tid, Bool isRT )
    else
       size = restore_rt_sigframe(tst, (struct rt_sigframe *)esp, &sigNo);
 
-   VG_TRACK( die_mem_stack_signal, esp, size );
+   VG_TRACK( die_mem_stack_signal - VGA_STACK_REDZONE_SIZE, esp, size );
 
    if (VG_(clo_trace_signals))
       VG_(message)(
index f8f4fc8a5f66b4bfcaa7a82096e2ecd80ea5c038..100a5bae96b1c8ccc07d27f95b5b088298b1146a 100644 (file)
@@ -474,6 +474,10 @@ void VG_(do_sys_sigaltstack) ( ThreadId tid )
         VG_(threads)[tid].altstack.ss_sp    = ss->ss_sp;
         VG_(threads)[tid].altstack.ss_size  = ss->ss_size;
         VG_(threads)[tid].altstack.ss_flags = 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);