setbuf (mallstream, mallbuf);
setvbuf (mallstream, malloc_trace_buffer, TRACE_BUFFER_SIZE);
mtrace (){#ifdef _LIBC  static int added_atexit_handler = 0;#endif  char *mallfile;  /* Don't panic if we're called more than once.  */  if (mallstream != NULL)    return;#ifdef _LIBC  /* When compiling the GNU libc we use the secure getenv function     which prevents the misuse in case of SUID or SGID enabled     programs.  */  mallfile = __secure_getenv (mallenv);#else  mallfile = getenv (mallenv);#endif  if (mallfile != NULL || mallwatch != NULL)    {      mallstream = fopen (mallfile != NULL ? mallfile : "/dev/null", "w");      if (mallstream != NULL)	{	  /* Be sure it doesn't malloc its buffer!  */	  setbuf (mallstream, mallbuf);	  fprintf (mallstream, "= Start\n");	  tr_old_free_hook = __free_hook;	  __free_hook = tr_freehook;	  tr_old_malloc_hook = __malloc_hook;	  __malloc_hook = tr_mallochook;	  tr_old_realloc_hook = __realloc_hook;	  __realloc_hook = tr_reallochook;#ifdef _LIBC	  if (!added_atexit_handler)	    {	      added_atexit_handler = 1;	      atexit (release_libc_mem);	    }#endif	}    }}