mf-runtime.c (__mfu_check): Remove mistaken mode-nop handling.

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
This commit is contained in:
Frank Ch. Eigler 2004-07-21 18:50:14 +00:00 committed by Frank Ch. Eigler
parent 0e6ed89966
commit 54419590e8
3 changed files with 24 additions and 5 deletions

View 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.

View 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;
}

View 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;