mf-runtime.c (__mfu_check): Remove mistaken mode-nop handling.
authorFrank Ch. Eigler <fche@redhat.com>
Wed, 21 Jul 2004 18:50:14 +0000 (18:50 +0000)
committerFrank Ch. Eigler <fche@gcc.gnu.org>
Wed, 21 Jul 2004 18:50:14 +0000 (18:50 +0000)
2004-07-21  Frank Ch. Eigler  <fche@redhat.com>

* 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
libmudflap/mf-hooks3.c
libmudflap/mf-runtime.c

index 5a6f2d2..e10099a 100644 (file)
@@ -1,3 +1,11 @@
+2004-07-21  Frank Ch. Eigler  <fche@redhat.com>
+
+       * 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  <fche@redhat.com>
 
        * mf-impl.h (__mf_options): Add ignore_reads and timestamps fields.
index 00fb372..b844ee5 100644 (file)
@@ -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;
     }
 
index 486880c..f984842 100644 (file)
@@ -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;