|
From: <sv...@va...> - 2008-04-19 10:16:38
|
Author: sewardj
Date: 2008-04-19 11:13:46 +0100 (Sat, 19 Apr 2008)
New Revision: 7887
Log:
Change the core-tool interface so that track_new_mem_stack_signal and
track_new_mem_brk pass a ThreadId as their third argument, rather than
an origin tag.
Modified:
branches/OTRACK_BY_INSTRUMENTATION/coregrind/m_execontext.c
branches/OTRACK_BY_INSTRUMENTATION/coregrind/m_sigframe/sigframe-amd64-linux.c
branches/OTRACK_BY_INSTRUMENTATION/coregrind/m_sigframe/sigframe-ppc32-linux.c
branches/OTRACK_BY_INSTRUMENTATION/coregrind/m_sigframe/sigframe-ppc64-linux.c
branches/OTRACK_BY_INSTRUMENTATION/coregrind/m_sigframe/sigframe-x86-linux.c
branches/OTRACK_BY_INSTRUMENTATION/coregrind/m_syswrap/syswrap-generic.c
branches/OTRACK_BY_INSTRUMENTATION/coregrind/pub_core_tooliface.h
branches/OTRACK_BY_INSTRUMENTATION/exp-drd/drd_main.c
branches/OTRACK_BY_INSTRUMENTATION/helgrind/hg_main.c
branches/OTRACK_BY_INSTRUMENTATION/include/pub_tool_tooliface.h
branches/OTRACK_BY_INSTRUMENTATION/memcheck/mc_include.h
branches/OTRACK_BY_INSTRUMENTATION/memcheck/mc_main.c
branches/OTRACK_BY_INSTRUMENTATION/memcheck/mc_malloc_wrappers.c
Modified: branches/OTRACK_BY_INSTRUMENTATION/coregrind/m_execontext.c
===================================================================
--- branches/OTRACK_BY_INSTRUMENTATION/coregrind/m_execontext.c 2008-04-19 07:47:56 UTC (rev 7886)
+++ branches/OTRACK_BY_INSTRUMENTATION/coregrind/m_execontext.c 2008-04-19 10:13:46 UTC (rev 7887)
@@ -303,11 +303,12 @@
vg_assert(sizeof(void*) == sizeof(UWord));
vg_assert(sizeof(void*) == sizeof(Addr));
+ vg_assert(VG_(is_valid_tid)(tid));
+
vg_assert(VG_(clo_backtrace_size) >= 1 &&
VG_(clo_backtrace_size) <= VG_DEEPEST_BACKTRACE);
if (first_ip_only) {
- vg_assert(VG_(is_valid_tid)(tid));
n_ips = 1;
ips[0] = VG_(get_IP)(tid);
} else {
Modified: branches/OTRACK_BY_INSTRUMENTATION/coregrind/m_sigframe/sigframe-amd64-linux.c
===================================================================
--- branches/OTRACK_BY_INSTRUMENTATION/coregrind/m_sigframe/sigframe-amd64-linux.c 2008-04-19 07:47:56 UTC (rev 7886)
+++ branches/OTRACK_BY_INSTRUMENTATION/coregrind/m_sigframe/sigframe-amd64-linux.c 2008-04-19 10:13:46 UTC (rev 7887)
@@ -375,8 +375,6 @@
*/
static Bool extend ( ThreadState *tst, Addr addr, SizeT size )
{
- UInt otag;
- ExeContext* here;
ThreadId tid = tst->tid;
NSegment const* stackseg = NULL;
@@ -408,13 +406,8 @@
/* For tracking memory events, indicate the entire frame has been
allocated. */
- here = VG_(record_ExeContext)(tid, 0/*first_ip_delta*/);
- vg_assert(here);
- otag = VG_(get_ExeContext_uniq)(here);
- vg_assert(otag > 0);
-
VG_TRACK( new_mem_stack_signal, addr - VG_STACK_REDZONE_SZB,
- size + VG_STACK_REDZONE_SZB, otag );
+ size + VG_STACK_REDZONE_SZB, tid );
return True;
}
Modified: branches/OTRACK_BY_INSTRUMENTATION/coregrind/m_sigframe/sigframe-ppc32-linux.c
===================================================================
--- branches/OTRACK_BY_INSTRUMENTATION/coregrind/m_sigframe/sigframe-ppc32-linux.c 2008-04-19 07:47:56 UTC (rev 7886)
+++ branches/OTRACK_BY_INSTRUMENTATION/coregrind/m_sigframe/sigframe-ppc32-linux.c 2008-04-19 10:13:46 UTC (rev 7887)
@@ -505,8 +505,6 @@
*/
static Bool extend ( ThreadState *tst, Addr addr, SizeT size )
{
- UInt otag;
- ExeContext* here;
ThreadId tid = tst->tid;
NSegment const* stackseg = NULL;
@@ -538,13 +536,8 @@
/* For tracking memory events, indicate the entire frame has been
allocated. */
- here = VG_(record_ExeContext)(tid, 0/*first_ip_delta*/);
- vg_assert(here);
- otag = VG_(get_ExeContext_uniq)(here);
- vg_assert(otag > 0);
-
VG_TRACK( new_mem_stack_signal, addr - VG_STACK_REDZONE_SZB,
- size + VG_STACK_REDZONE_SZB, otag );
+ size + VG_STACK_REDZONE_SZB, tid );
return True;
}
Modified: branches/OTRACK_BY_INSTRUMENTATION/coregrind/m_sigframe/sigframe-ppc64-linux.c
===================================================================
--- branches/OTRACK_BY_INSTRUMENTATION/coregrind/m_sigframe/sigframe-ppc64-linux.c 2008-04-19 07:47:56 UTC (rev 7886)
+++ branches/OTRACK_BY_INSTRUMENTATION/coregrind/m_sigframe/sigframe-ppc64-linux.c 2008-04-19 10:13:46 UTC (rev 7887)
@@ -134,8 +134,6 @@
*/
static Bool extend ( ThreadState *tst, Addr addr, SizeT size )
{
- UInt otag;
- ExeContext* here;
ThreadId tid = tst->tid;
NSegment const* stackseg = NULL;
@@ -167,13 +165,8 @@
/* For tracking memory events, indicate the entire frame has been
allocated. */
- here = VG_(record_ExeContext)(tid, 0/*first_ip_delta*/);
- vg_assert(here);
- otag = VG_(get_ExeContext_uniq)(here);
- vg_assert(otag > 0);
-
VG_TRACK( new_mem_stack_signal, addr - VG_STACK_REDZONE_SZB,
- size + VG_STACK_REDZONE_SZB, otag );
+ size + VG_STACK_REDZONE_SZB, tid );
return True;
}
Modified: branches/OTRACK_BY_INSTRUMENTATION/coregrind/m_sigframe/sigframe-x86-linux.c
===================================================================
--- branches/OTRACK_BY_INSTRUMENTATION/coregrind/m_sigframe/sigframe-x86-linux.c 2008-04-19 07:47:56 UTC (rev 7886)
+++ branches/OTRACK_BY_INSTRUMENTATION/coregrind/m_sigframe/sigframe-x86-linux.c 2008-04-19 10:13:46 UTC (rev 7887)
@@ -396,8 +396,6 @@
*/
static Bool extend ( ThreadState *tst, Addr addr, SizeT size )
{
- UInt otag;
- ExeContext* here;
ThreadId tid = tst->tid;
NSegment const* stackseg = NULL;
@@ -429,13 +427,8 @@
/* For tracking memory events, indicate the entire frame has been
allocated. */
- here = VG_(record_ExeContext)(tid, 0/*first_ip_delta*/);
- vg_assert(here);
- otag = VG_(get_ExeContext_uniq)(here);
- vg_assert(otag > 0);
-
VG_TRACK( new_mem_stack_signal, addr - VG_STACK_REDZONE_SZB,
- size + VG_STACK_REDZONE_SZB, otag );
+ size + VG_STACK_REDZONE_SZB, tid );
return True;
}
Modified: branches/OTRACK_BY_INSTRUMENTATION/coregrind/m_syswrap/syswrap-generic.c
===================================================================
--- branches/OTRACK_BY_INSTRUMENTATION/coregrind/m_syswrap/syswrap-generic.c 2008-04-19 07:47:56 UTC (rev 7886)
+++ branches/OTRACK_BY_INSTRUMENTATION/coregrind/m_syswrap/syswrap-generic.c 2008-04-19 10:13:46 UTC (rev 7887)
@@ -2629,7 +2629,7 @@
if (brk_new > brk_limit) {
/* successfully grew the data segment */
VG_TRACK( new_mem_brk, brk_limit,
- ARG1-brk_limit, 0/*unknown origin*/ );
+ ARG1-brk_limit, tid );
}
} else {
/* brk() failed */
Modified: branches/OTRACK_BY_INSTRUMENTATION/coregrind/pub_core_tooliface.h
===================================================================
--- branches/OTRACK_BY_INSTRUMENTATION/coregrind/pub_core_tooliface.h 2008-04-19 07:47:56 UTC (rev 7886)
+++ branches/OTRACK_BY_INSTRUMENTATION/coregrind/pub_core_tooliface.h 2008-04-19 10:13:46 UTC (rev 7887)
@@ -162,8 +162,8 @@
// -- Event tracking functions ------------------------------------
void (*track_new_mem_startup) (Addr, SizeT, Bool, Bool, Bool);
- void (*track_new_mem_stack_signal)(Addr, SizeT, UInt);
- void (*track_new_mem_brk) (Addr, SizeT, UInt);
+ void (*track_new_mem_stack_signal)(Addr, SizeT, ThreadId);
+ void (*track_new_mem_brk) (Addr, SizeT, ThreadId);
void (*track_new_mem_mmap) (Addr, SizeT, Bool, Bool, Bool);
void (*track_copy_mem_remap) (Addr src, Addr dst, SizeT);
Modified: branches/OTRACK_BY_INSTRUMENTATION/exp-drd/drd_main.c
===================================================================
--- branches/OTRACK_BY_INSTRUMENTATION/exp-drd/drd_main.c 2008-04-19 07:47:56 UTC (rev 7886)
+++ branches/OTRACK_BY_INSTRUMENTATION/exp-drd/drd_main.c 2008-04-19 10:13:46 UTC (rev 7887)
@@ -458,8 +458,7 @@
}
}
-static void drd_start_using_mem(const Addr a1, const SizeT len,
- UInt ec_uniq)
+static void drd_start_using_mem(const Addr a1, const SizeT len)
{
const Addr a2 = a1 + len;
@@ -471,6 +470,20 @@
}
}
+static void drd_start_using_mem_w_otag(const Addr a1,
+ const SizeT len,
+ UInt ec_uniq)
+{
+ drd_start_using_mem(a1, len);
+}
+
+static void drd_start_using_mem_w_tid(const Addr a1,
+ const SizeT len,
+ ThreadId tid)
+{
+ drd_start_using_mem(a1, len);
+}
+
static void drd_stop_using_mem(const Addr a1, const SizeT len)
{
const Addr a2 = a1 + len;
@@ -492,7 +505,7 @@
{
thread_set_vg_running_tid(VG_(get_running_tid)());
- drd_start_using_mem(a, len, 0/*ec_uniq*/);
+ drd_start_using_mem(a, len);
}
/* Called by the core when the stack of a thread grows, to indicate that */
@@ -502,8 +515,8 @@
UInt ec_uniq)
{
thread_set_stack_min(thread_get_running_tid(), a - VG_STACK_REDZONE_SZB);
- drd_start_using_mem(a - VG_STACK_REDZONE_SZB,
- len + VG_STACK_REDZONE_SZB, ec_uniq);
+ drd_start_using_mem_w_otag(a - VG_STACK_REDZONE_SZB,
+ len + VG_STACK_REDZONE_SZB, ec_uniq);
}
/* Called by the core when the stack of a thread shrinks, to indicate that */
@@ -516,11 +529,12 @@
drd_stop_using_mem(a - VG_STACK_REDZONE_SZB, len + VG_STACK_REDZONE_SZB);
}
-static void drd_start_using_mem_stack_signal(const Addr a, const SizeT len,
- UInt ec_uniq)
+static void drd_start_using_mem_stack_signal(
+ const Addr a, const SizeT len,
+ ThreadId tid_for_whom_the_signal_frame_is_being_constructed)
{
thread_set_vg_running_tid(VG_(get_running_tid)());
- drd_start_using_mem(a, len, ec_uniq);
+ drd_start_using_mem(a, len);
}
static void drd_stop_using_mem_stack_signal(Addr a, SizeT len)
@@ -1054,7 +1068,7 @@
VG_(track_pre_mem_read) (drd_pre_mem_read);
VG_(track_pre_mem_read_asciiz) (drd_pre_mem_read_asciiz);
VG_(track_post_mem_write) (drd_post_mem_write);
- VG_(track_new_mem_brk) (drd_start_using_mem);
+ VG_(track_new_mem_brk) (drd_start_using_mem_w_tid);
VG_(track_new_mem_mmap) (drd_start_using_mem_w_perms);
VG_(track_new_mem_stack) (drd_start_using_mem_stack);
VG_(track_new_mem_stack_signal) (drd_start_using_mem_stack_signal);
@@ -1069,7 +1083,7 @@
VG_(track_pre_thread_ll_exit) (drd_thread_finished);
// Other stuff.
- drd_register_malloc_wrappers(drd_start_using_mem, drd_stop_using_mem);
+ drd_register_malloc_wrappers(drd_start_using_mem_w_otag, drd_stop_using_mem);
drd_clientreq_init();
Modified: branches/OTRACK_BY_INSTRUMENTATION/helgrind/hg_main.c
===================================================================
--- branches/OTRACK_BY_INSTRUMENTATION/helgrind/hg_main.c 2008-04-19 07:47:56 UTC (rev 7886)
+++ branches/OTRACK_BY_INSTRUMENTATION/helgrind/hg_main.c 2008-04-19 10:13:46 UTC (rev 7887)
@@ -5416,15 +5416,24 @@
}
static
-void evh__new_mem ( Addr a, SizeT len, UInt ec_uniq ) {
+void evh__new_mem_w_otag ( Addr a, SizeT len, UInt ec_uniq ) {
if (SHOW_EVENTS >= 2)
- VG_(printf)("evh__new_mem(%p, %lu)\n", (void*)a, len );
+ VG_(printf)("evh__new_mem_w_otag(%p, %lu)\n", (void*)a, len );
shadow_mem_make_New( get_current_Thread(), a, len );
if (len >= SCE_BIGRANGE_T && (clo_sanity_flags & SCE_BIGRANGE))
- all__sanity_check("evh__new_mem-post");
+ all__sanity_check("evh__new_mem_w_otag-post");
}
static
+void evh__new_mem_w_tid ( Addr a, SizeT len, ThreadId tid ) {
+ if (SHOW_EVENTS >= 2)
+ VG_(printf)("evh__new_mem_w_tid(%p, %lu)\n", (void*)a, len );
+ shadow_mem_make_New( get_current_Thread(), a, len );
+ if (len >= SCE_BIGRANGE_T && (clo_sanity_flags & SCE_BIGRANGE))
+ all__sanity_check("evh__new_mem_w_tid-post");
+}
+
+static
void evh__new_mem_w_perms ( Addr a, SizeT len,
Bool rr, Bool ww, Bool xx ) {
if (SHOW_EVENTS >= 1)
@@ -7515,7 +7524,7 @@
if (args[2] > 0) { /* length */
evh__die_mem(args[1], args[2]);
/* and then set it to New */
- evh__new_mem(args[1], args[2], 0/*ec_uniq*/);
+ evh__new_mem_w_otag(args[1], args[2], 0/*ec_uniq*/);
}
break;
@@ -8821,10 +8830,10 @@
//VG_(needs_xml_output) ();
VG_(track_new_mem_startup) ( evh__new_mem_w_perms );
- VG_(track_new_mem_stack_signal)( evh__new_mem );
- VG_(track_new_mem_brk) ( evh__new_mem );
+ VG_(track_new_mem_stack_signal)( evh__new_mem_w_tid );
+ VG_(track_new_mem_brk) ( evh__new_mem_w_tid );
VG_(track_new_mem_mmap) ( evh__new_mem_w_perms );
- VG_(track_new_mem_stack) ( evh__new_mem );
+ VG_(track_new_mem_stack) ( evh__new_mem_w_otag );
// FIXME: surely this isn't thread-aware
VG_(track_copy_mem_remap) ( shadow_mem_copy_range );
Modified: branches/OTRACK_BY_INSTRUMENTATION/include/pub_tool_tooliface.h
===================================================================
--- branches/OTRACK_BY_INSTRUMENTATION/include/pub_tool_tooliface.h 2008-04-19 07:47:56 UTC (rev 7886)
+++ branches/OTRACK_BY_INSTRUMENTATION/include/pub_tool_tooliface.h 2008-04-19 10:13:46 UTC (rev 7887)
@@ -471,13 +471,13 @@
These ones occur at startup, upon some signals, and upon some syscalls.
- For the 'new_mem' ones, the core is at liberty to pass zero for the
- otag, denoting 'unknown origin', if desired.
+ For the new_mem_brk and new_mem_stack_signal, the supplied ThreadId
+ indicates the thread for whom the new memory is being allocated.
*/
void VG_(track_new_mem_startup) (void(*f)(Addr a, SizeT len,
Bool rr, Bool ww, Bool xx));
-void VG_(track_new_mem_stack_signal)(void(*f)(Addr a, SizeT len, UInt otag));
-void VG_(track_new_mem_brk) (void(*f)(Addr a, SizeT len, UInt otag));
+void VG_(track_new_mem_stack_signal)(void(*f)(Addr a, SizeT len, ThreadId tid));
+void VG_(track_new_mem_brk) (void(*f)(Addr a, SizeT len, ThreadId tid));
void VG_(track_new_mem_mmap) (void(*f)(Addr a, SizeT len,
Bool rr, Bool ww, Bool xx));
Modified: branches/OTRACK_BY_INSTRUMENTATION/memcheck/mc_include.h
===================================================================
--- branches/OTRACK_BY_INSTRUMENTATION/memcheck/mc_include.h 2008-04-19 07:47:56 UTC (rev 7886)
+++ branches/OTRACK_BY_INSTRUMENTATION/memcheck/mc_include.h 2008-04-19 10:13:46 UTC (rev 7887)
@@ -101,9 +101,9 @@
/* Shadow memory functions */
extern Bool MC_(check_mem_is_noaccess)( Addr a, SizeT len, Addr* bad_addr );
-extern void MC_(make_mem_noaccess) ( Addr a, SizeT len );
-extern void MC_(make_mem_undefined)( Addr a, SizeT len, UInt otag );
-extern void MC_(make_mem_defined) ( Addr a, SizeT len );
+extern void MC_(make_mem_noaccess) ( Addr a, SizeT len );
+extern void MC_(make_mem_undefined_w_otag)( Addr a, SizeT len, UInt otag );
+extern void MC_(make_mem_defined) ( Addr a, SizeT len );
extern void MC_(copy_address_range_state) ( Addr src, Addr dst, SizeT len );
extern void MC_(print_malloc_stats) ( void );
Modified: branches/OTRACK_BY_INSTRUMENTATION/memcheck/mc_main.c
===================================================================
--- branches/OTRACK_BY_INSTRUMENTATION/memcheck/mc_main.c 2008-04-19 07:47:56 UTC (rev 7886)
+++ branches/OTRACK_BY_INSTRUMENTATION/memcheck/mc_main.c 2008-04-19 10:13:46 UTC (rev 7887)
@@ -1561,7 +1561,7 @@
ocache_sarp_Clear_Origins ( a, len );
}
-void MC_(make_mem_undefined) ( Addr a, SizeT len, UInt otag )
+void MC_(make_mem_undefined_w_otag) ( Addr a, SizeT len, UInt otag )
{
PROF_EVENT(41, "MC_(make_mem_undefined)");
DEBUG("MC_(make_mem_undefined)(%p, %lu)\n", a, len);
@@ -1570,6 +1570,20 @@
ocache_sarp_Set_Origins ( a, len, otag );
}
+static
+void make_mem_undefined_w_tid ( Addr a, SizeT len, ThreadId tid )
+{
+ UInt otag;
+ ExeContext* here;
+ /* VG_(record_ExeContext) checks for validity of tid, and asserts
+ if it is invalid. So no need to do it here. */
+ here = VG_(record_ExeContext)( tid, 0/*first_ip_delta*/ );
+ tl_assert(here);
+ otag = VG_(get_ExeContext_uniq)(here);
+ tl_assert(otag > 0);
+ MC_(make_mem_undefined_w_otag) ( a, len, otag );
+}
+
void MC_(make_mem_defined) ( Addr a, SizeT len )
{
PROF_EVENT(42, "MC_(make_mem_defined)");
@@ -1837,7 +1851,7 @@
#else
if (UNLIKELY(a > MAX_PRIMARY_ADDRESS)) {
PROF_EVENT(301, "make_aligned_word32_undefined-slow1");
- MC_(make_mem_undefined)(a, 4, otag);
+ MC_(make_mem_undefined_w_otag)(a, 4, otag);
return;
}
@@ -1909,7 +1923,7 @@
#else
if (UNLIKELY(a > MAX_PRIMARY_ADDRESS)) {
PROF_EVENT(321, "make_aligned_word64_undefined-slow1");
- MC_(make_mem_undefined)(a, 8, otag);
+ MC_(make_mem_undefined_w_otag)(a, 8, otag);
return;
}
@@ -1999,7 +2013,7 @@
if (VG_IS_4_ALIGNED( -VG_STACK_REDZONE_SZB + new_SP )) {
make_aligned_word32_undefined ( -VG_STACK_REDZONE_SZB + new_SP, otag );
} else {
- MC_(make_mem_undefined) ( -VG_STACK_REDZONE_SZB + new_SP, 4, otag );
+ MC_(make_mem_undefined_w_otag) ( -VG_STACK_REDZONE_SZB + new_SP, 4, otag );
}
}
@@ -2022,7 +2036,7 @@
make_aligned_word32_undefined ( -VG_STACK_REDZONE_SZB + new_SP , otag );
make_aligned_word32_undefined ( -VG_STACK_REDZONE_SZB + new_SP+4, otag );
} else {
- MC_(make_mem_undefined) ( -VG_STACK_REDZONE_SZB + new_SP, 8, otag );
+ MC_(make_mem_undefined_w_otag) ( -VG_STACK_REDZONE_SZB + new_SP, 8, otag );
}
}
@@ -2052,7 +2066,7 @@
make_aligned_word32_undefined ( -VG_STACK_REDZONE_SZB + new_SP , otag );
make_aligned_word64_undefined ( -VG_STACK_REDZONE_SZB + new_SP+4, otag );
} else {
- MC_(make_mem_undefined) ( -VG_STACK_REDZONE_SZB + new_SP, 12, otag );
+ MC_(make_mem_undefined_w_otag) ( -VG_STACK_REDZONE_SZB + new_SP, 12, otag );
}
}
@@ -2090,7 +2104,7 @@
make_aligned_word64_undefined ( -VG_STACK_REDZONE_SZB + new_SP+4 , otag );
make_aligned_word32_undefined ( -VG_STACK_REDZONE_SZB + new_SP+12, otag );
} else {
- MC_(make_mem_undefined) ( -VG_STACK_REDZONE_SZB + new_SP, 16, otag );
+ MC_(make_mem_undefined_w_otag) ( -VG_STACK_REDZONE_SZB + new_SP, 16, otag );
}
}
@@ -2129,7 +2143,7 @@
make_aligned_word64_undefined ( -VG_STACK_REDZONE_SZB + new_SP+20, otag );
make_aligned_word32_undefined ( -VG_STACK_REDZONE_SZB + new_SP+28, otag );
} else {
- MC_(make_mem_undefined) ( -VG_STACK_REDZONE_SZB + new_SP, 32, otag );
+ MC_(make_mem_undefined_w_otag) ( -VG_STACK_REDZONE_SZB + new_SP, 32, otag );
}
}
@@ -2174,7 +2188,7 @@
make_aligned_word64_undefined ( -VG_STACK_REDZONE_SZB + new_SP+96, otag );
make_aligned_word64_undefined ( -VG_STACK_REDZONE_SZB + new_SP+104, otag );
} else {
- MC_(make_mem_undefined) ( -VG_STACK_REDZONE_SZB + new_SP, 112, otag );
+ MC_(make_mem_undefined_w_otag) ( -VG_STACK_REDZONE_SZB + new_SP, 112, otag );
}
}
@@ -2222,7 +2236,7 @@
make_aligned_word64_undefined ( -VG_STACK_REDZONE_SZB + new_SP+112, otag );
make_aligned_word64_undefined ( -VG_STACK_REDZONE_SZB + new_SP+120, otag );
} else {
- MC_(make_mem_undefined) ( -VG_STACK_REDZONE_SZB + new_SP, 128, otag );
+ MC_(make_mem_undefined_w_otag) ( -VG_STACK_REDZONE_SZB + new_SP, 128, otag );
}
}
@@ -2274,7 +2288,7 @@
make_aligned_word64_undefined ( -VG_STACK_REDZONE_SZB + new_SP+128, otag );
make_aligned_word64_undefined ( -VG_STACK_REDZONE_SZB + new_SP+136, otag );
} else {
- MC_(make_mem_undefined) ( -VG_STACK_REDZONE_SZB + new_SP, 144, otag );
+ MC_(make_mem_undefined_w_otag) ( -VG_STACK_REDZONE_SZB + new_SP, 144, otag );
}
}
@@ -2330,7 +2344,7 @@
make_aligned_word64_undefined ( -VG_STACK_REDZONE_SZB + new_SP+144, otag );
make_aligned_word64_undefined ( -VG_STACK_REDZONE_SZB + new_SP+152, otag );
} else {
- MC_(make_mem_undefined) ( -VG_STACK_REDZONE_SZB + new_SP, 160, otag );
+ MC_(make_mem_undefined_w_otag) ( -VG_STACK_REDZONE_SZB + new_SP, 160, otag );
}
}
@@ -2366,7 +2380,7 @@
static void mc_new_mem_stack ( Addr a, SizeT len, UInt otag )
{
PROF_EVENT(115, "new_mem_stack");
- MC_(make_mem_undefined) ( -VG_STACK_REDZONE_SZB + a, len, otag );
+ MC_(make_mem_undefined_w_otag) ( -VG_STACK_REDZONE_SZB + a, len, otag );
}
static void mc_die_mem_stack ( Addr a, SizeT len )
@@ -2690,7 +2704,7 @@
}
/* else fall into slow case */
- MC_(make_mem_undefined)(base, len, otag);
+ MC_(make_mem_undefined_w_otag)(base, len, otag);
}
@@ -5377,16 +5391,10 @@
*ret = -1;
break;
- case VG_USERREQ__MAKE_MEM_UNDEFINED: {
- UInt otag;
- ExeContext* here = VG_(record_ExeContext)( tid, 0/*first_ip_delta*/ );
- tl_assert(here);
- otag = VG_(get_ExeContext_uniq)(here);
- tl_assert(otag > 0);
- MC_(make_mem_undefined) ( arg[1], arg[2], otag );
+ case VG_USERREQ__MAKE_MEM_UNDEFINED:
+ make_mem_undefined_w_tid ( arg[1], arg[2], tid );
*ret = -1;
break;
- }
case VG_USERREQ__MAKE_MEM_DEFINED:
MC_(make_mem_defined) ( arg[1], arg[2] );
@@ -6066,8 +6074,8 @@
VG_(needs_xml_output) ();
VG_(track_new_mem_startup) ( mc_new_mem_startup );
- VG_(track_new_mem_stack_signal)( MC_(make_mem_undefined) );
- VG_(track_new_mem_brk) ( MC_(make_mem_undefined) );
+ VG_(track_new_mem_stack_signal)( make_mem_undefined_w_tid );
+ VG_(track_new_mem_brk) ( make_mem_undefined_w_tid );
VG_(track_new_mem_mmap) ( mc_new_mem_mmap );
VG_(track_copy_mem_remap) ( MC_(copy_address_range_state) );
Modified: branches/OTRACK_BY_INSTRUMENTATION/memcheck/mc_malloc_wrappers.c
===================================================================
--- branches/OTRACK_BY_INSTRUMENTATION/memcheck/mc_malloc_wrappers.c 2008-04-19 07:47:56 UTC (rev 7886)
+++ branches/OTRACK_BY_INSTRUMENTATION/memcheck/mc_malloc_wrappers.c 2008-04-19 10:13:46 UTC (rev 7887)
@@ -220,7 +220,7 @@
else {
UInt otag = VG_(get_ExeContext_uniq)(ec);
tl_assert(otag > 0);
- MC_(make_mem_undefined)( p, szB, otag );
+ MC_(make_mem_undefined_w_otag)( p, szB, otag );
}
return (void*)p;
@@ -408,9 +408,9 @@
/* First half kept and copied, second half new, red zones as normal */
MC_(make_mem_noaccess)( a_new-MC_MALLOC_REDZONE_SZB,
MC_MALLOC_REDZONE_SZB );
- MC_(copy_address_range_state)( (Addr)p_old, a_new, mc->szB );
- MC_(make_mem_undefined)( a_new+mc->szB, new_szB-mc->szB, otag );
- MC_(make_mem_noaccess) ( a_new+new_szB, MC_MALLOC_REDZONE_SZB );
+ MC_(copy_address_range_state) ( (Addr)p_old, a_new, mc->szB );
+ MC_(make_mem_undefined_w_otag)( a_new+mc->szB, new_szB-mc->szB, otag );
+ MC_(make_mem_noaccess) ( a_new+new_szB, MC_MALLOC_REDZONE_SZB );
/* Possibly fill new area with specified junk */
if (MC_(clo_malloc_fill) != -1) {
|