X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/e54c5e982d2a6dd3d2d152038819639b088a1086..0f5e8daaa6e9f74521068aa75837200bcd182ea6:/src/xbt/mmalloc/mmtrace.c diff --git a/src/xbt/mmalloc/mmtrace.c b/src/xbt/mmalloc/mmtrace.c index 9ffb465c2c..38219f3fb2 100644 --- a/src/xbt/mmalloc/mmtrace.c +++ b/src/xbt/mmalloc/mmtrace.c @@ -14,103 +14,99 @@ #include #include "mmprivate.h" -static void tr_break (void); -static void tr_freehook (void*md, void*ptr); -static void* tr_mallochook (void* md, size_t size); -static void* tr_reallochook (void* md, void* ptr, size_t size); +static void tr_break(void); +static void tr_freehook(void *md, void *ptr); +static void *tr_mallochook(void *md, size_t size); +static void *tr_reallochook(void *md, void *ptr, size_t size); #ifndef __GNU_LIBRARY__ -extern char *getenv (); +extern char *getenv(); #endif static FILE *mallstream; -#if 0 /* FIXME: Disabled for now. */ +#if 0 /* FIXME: Disabled for now. */ static char mallenv[] = "MALLOC_TRACE"; -static char mallbuf[BUFSIZ]; /* Buffer for the output. */ +static char mallbuf[BUFSIZ]; /* Buffer for the output. */ #endif /* Address to breakpoint on accesses to... */ -static void* mallwatch; +static void *mallwatch; /* Old hook values. */ -static void (*old_mfree_hook) (void* md, void* ptr); -static void* (*old_mmalloc_hook) (void* md, size_t size); -static void* (*old_mrealloc_hook) (void* md, void* ptr, size_t size); +static void (*old_mfree_hook) (void *md, void *ptr); +static void *(*old_mmalloc_hook) (void *md, size_t size); +static void *(*old_mrealloc_hook) (void *md, void *ptr, size_t size); /* This function is called when the block being alloc'd, realloc'd, or freed has an address matching the variable "mallwatch". In a debugger, set "mallwatch" to the address of interest, then put a breakpoint on tr_break. */ -static void -tr_break (void) +static void tr_break(void) { } -static void -tr_freehook (void *md, void *ptr) +static void tr_freehook(void *md, void *ptr) { struct mdesc *mdp; - mdp = MD_TO_MDP (md); + mdp = MD_TO_MDP(md); /* Be sure to print it first. */ - fprintf (mallstream, "- %08lx\n", (unsigned long) ptr); + fprintf(mallstream, "- %08lx\n", (unsigned long) ptr); if (ptr == mallwatch) - tr_break (); - mdp -> mfree_hook = old_mfree_hook; - mfree (md, ptr); - mdp -> mfree_hook = tr_freehook; + tr_break(); + mdp->mfree_hook = old_mfree_hook; + mfree(md, ptr); + mdp->mfree_hook = tr_freehook; } -static void* -tr_mallochook (void* md, size_t size) +static void *tr_mallochook(void *md, size_t size) { - void* hdr; + void *hdr; struct mdesc *mdp; - mdp = MD_TO_MDP (md); - mdp -> mmalloc_hook = old_mmalloc_hook; - hdr = (void*) mmalloc (md, size); - mdp -> mmalloc_hook = tr_mallochook; + mdp = MD_TO_MDP(md); + mdp->mmalloc_hook = old_mmalloc_hook; + hdr = (void *) mmalloc(md, size); + mdp->mmalloc_hook = tr_mallochook; /* We could be printing a NULL here; that's OK. */ - fprintf (mallstream, "+ %p 0x%lx\n", hdr, (unsigned long)size); + fprintf(mallstream, "+ %p 0x%lx\n", hdr, (unsigned long) size); if (hdr == mallwatch) - tr_break (); + tr_break(); return (hdr); } -static void* -tr_reallochook (void *md, void *ptr, size_t size) +static void *tr_reallochook(void *md, void *ptr, size_t size) { - void* hdr; + void *hdr; struct mdesc *mdp; - mdp = MD_TO_MDP (md); + mdp = MD_TO_MDP(md); if (ptr == mallwatch) - tr_break (); - - mdp -> mfree_hook = old_mfree_hook; - mdp -> mmalloc_hook = old_mmalloc_hook; - mdp -> mrealloc_hook = old_mrealloc_hook; - hdr = (void*) mrealloc (md, ptr, size); - mdp -> mfree_hook = tr_freehook; - mdp -> mmalloc_hook = tr_mallochook; - mdp -> mrealloc_hook = tr_reallochook; + tr_break(); + + mdp->mfree_hook = old_mfree_hook; + mdp->mmalloc_hook = old_mmalloc_hook; + mdp->mrealloc_hook = old_mrealloc_hook; + hdr = (void *) mrealloc(md, ptr, size); + mdp->mfree_hook = tr_freehook; + mdp->mmalloc_hook = tr_mallochook; + mdp->mrealloc_hook = tr_reallochook; if (hdr == NULL) /* Failed realloc. */ - fprintf (mallstream, "! %p 0x%lx\n", ptr, (unsigned long) size); + fprintf(mallstream, "! %p 0x%lx\n", ptr, (unsigned long) size); else - fprintf (mallstream, "< %p\n> %p 0x%lx\n", ptr, - hdr, (unsigned long) size); + fprintf(mallstream, "< %p\n> %p 0x%lx\n", ptr, + hdr, (unsigned long) size); if (hdr == mallwatch) - tr_break (); + tr_break(); return hdr; } @@ -120,34 +116,29 @@ tr_reallochook (void *md, void *ptr, size_t size) that the debugging user wants us to stop on. When patching mallwatch, don't forget to set a breakpoint on tr_break! */ -int -mmtrace (void) +int mmtrace(void) { -#if 0 /* FIXME! This is disabled for now until we figure out how to - maintain a stack of hooks per heap, since we might have other - hooks (such as set by mmcheck/mmcheckf) active also. */ +#if 0 /* FIXME! This is disabled for now until we figure out how to + maintain a stack of hooks per heap, since we might have other + hooks (such as set by mmcheck/mmcheckf) active also. */ char *mallfile; - mallfile = getenv (mallenv); - if (mallfile != NULL || mallwatch != NULL) - { - mallstream = fopen (mallfile != NULL ? mallfile : "/dev/null", "w"); - if (mallstream != NULL) - { - /* Be sure it doesn't mmalloc its buffer! */ - setbuf (mallstream, mallbuf); - fprintf (mallstream, "= Start\n"); - old_mfree_hook = mdp -> mfree_hook; - mdp -> mfree_hook = tr_freehook; - old_mmalloc_hook = mdp -> mmalloc_hook; - mdp -> mmalloc_hook = tr_mallochook; - old_mrealloc_hook = mdp -> mrealloc_hook; - mdp -> mrealloc_hook = tr_reallochook; - } + mallfile = getenv(mallenv); + if (mallfile != NULL || mallwatch != NULL) { + mallstream = fopen(mallfile != NULL ? mallfile : "/dev/null", "w"); + if (mallstream != NULL) { + /* Be sure it doesn't mmalloc its buffer! */ + setbuf(mallstream, mallbuf); + fprintf(mallstream, "= Start\n"); + old_mfree_hook = mdp->mfree_hook; + mdp->mfree_hook = tr_freehook; + old_mmalloc_hook = mdp->mmalloc_hook; + mdp->mmalloc_hook = tr_mallochook; + old_mrealloc_hook = mdp->mrealloc_hook; + mdp->mrealloc_hook = tr_reallochook; } - -#endif /* 0 */ + } +#endif /* 0 */ return (1); } -