From 54419590e8a285da06c35c76c0ee2dc0066c6433 Mon Sep 17 00:00:00 2001 From: "Frank Ch. Eigler" Date: Wed, 21 Jul 2004 18:50:14 +0000 Subject: [PATCH] mf-runtime.c (__mfu_check): Remove mistaken mode-nop handling. 2004-07-21 Frank Ch. Eigler * mf-runtime.c (__mfu_check): Remove mistaken mode-nop handling. (__mfu_usage): Include (C) 2004. * mf-hooks3.c (__mf_find_threadinfo): Don't call tracing functions here. Include a comment explaining why. From-SVN: r85014 --- libmudflap/ChangeLog | 8 ++++++++ libmudflap/mf-hooks3.c | 10 ++++++++-- libmudflap/mf-runtime.c | 11 ++++++++--- 3 files changed, 24 insertions(+), 5 deletions(-) diff --git a/libmudflap/ChangeLog b/libmudflap/ChangeLog index 5a6f2d2ba9d..e10099a8002 100644 --- a/libmudflap/ChangeLog +++ b/libmudflap/ChangeLog @@ -1,3 +1,11 @@ +2004-07-21 Frank Ch. Eigler + + * mf-runtime.c (__mfu_check): Remove mistaken mode-nop + handling. + (__mfu_usage): Include (C) 2004. + * mf-hooks3.c (__mf_find_threadinfo): Don't call tracing functions + here. Include a comment explaining why. + 2004-07-20 Frank Ch. Eigler * mf-impl.h (__mf_options): Add ignore_reads and timestamps fields. diff --git a/libmudflap/mf-hooks3.c b/libmudflap/mf-hooks3.c index 00fb3728e36..b844ee5c2b5 100644 --- a/libmudflap/mf-hooks3.c +++ b/libmudflap/mf-hooks3.c @@ -172,6 +172,10 @@ __mf_allocate_blank_threadinfo (unsigned* idx) making an early call into libmudflap. In these cases, create a new entry. If not it's not the main thread, put it into reentrant initial state. + + NB: VERBOSE_TRACE type functions are not generally safe to call + from this context, since a new thread might just be "booting up", + making printf unsafe to call. */ static struct pthread_info* __mf_find_threadinfo () @@ -225,7 +229,7 @@ __mf_find_threadinfo () /* NB: leave stack-related fields unset, to avoid deallocation. */ main_thread_seen_p = 1; - VERBOSE_TRACE ("identified self as main thread\n"); + /* VERBOSE_TRACE ("identified self as main thread\n"); */ } else { @@ -236,15 +240,17 @@ __mf_find_threadinfo () /* NB: leave stack-related fields unset, leaving pthread_create to fill them in for user threads, leaving them empty for other threads. */ - VERBOSE_TRACE ("identified self as new aux or user thread\n"); + /* VERBOSE_TRACE ("identified self as new aux or user thread\n"); */ } } if (last != it) { + /* VERBOSE_TRACE ("found threadinfo for %u, slot %u\n", (unsigned) it, (unsigned) *hash); + */ last = it; } diff --git a/libmudflap/mf-runtime.c b/libmudflap/mf-runtime.c index 486880cf3ce..f984842d0c0 100644 --- a/libmudflap/mf-runtime.c +++ b/libmudflap/mf-runtime.c @@ -376,7 +376,7 @@ __mf_usage () fprintf (stderr, "This is a %s%sGCC \"mudflap\" memory-checked binary.\n" - "Mudflap is Copyright (C) 2002-2003 Free Software Foundation, Inc.\n" + "Mudflap is Copyright (C) 2002-2004 Free Software Foundation, Inc.\n" "\n" "The mudflap code can be controlled by an environment variable:\n" "\n" @@ -759,8 +759,13 @@ void __mfu_check (void *ptr, size_t sz, int type, const char *location) switch (__mf_opts.mudflap_mode) { case mode_nop: - entry->low = MINPTR; - entry->high = MAXPTR; + /* It is tempting to poison the cache here similarly to + mode_populate. However that eliminates a valuable + distinction between these two modes. mode_nop is useful to + let a user count & trace every single check / registration + call. mode_populate is useful to let a program run fast + while unchecked. + */ judgement = 1; break; -- 2.30.2