+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.
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 ()
/* 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
{
/* 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;
}
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"
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;