mirror of
git://sourceware.org/git/glibc.git
synced 2025-02-05 12:40:55 +08:00
mtrace: Use a static buffer for printing [BZ #25947]
Use a static buffer for mtrace printing now that it no longer adds to default libc footprint. Reviewed-by: DJ Delorie <dj@redhat.com>
This commit is contained in:
parent
5a5358b749
commit
dc906e94f7
@ -34,11 +34,8 @@
|
||||
|
||||
#include <kernel-features.h>
|
||||
|
||||
#define TRACE_BUFFER_SIZE 512
|
||||
|
||||
static FILE *mallstream;
|
||||
static const char mallenv[] = "MALLOC_TRACE";
|
||||
static char *malloc_trace_buffer;
|
||||
|
||||
static void
|
||||
tr_where (const void *caller, Dl_info *info)
|
||||
@ -184,16 +181,13 @@ do_mtrace (void)
|
||||
mallfile = secure_getenv (mallenv);
|
||||
if (mallfile != NULL)
|
||||
{
|
||||
char *mtb = malloc (TRACE_BUFFER_SIZE);
|
||||
if (mtb == NULL)
|
||||
return;
|
||||
|
||||
mallstream = fopen (mallfile != NULL ? mallfile : "/dev/null", "wce");
|
||||
if (mallstream != NULL)
|
||||
{
|
||||
/* Be sure it doesn't malloc its buffer! */
|
||||
malloc_trace_buffer = mtb;
|
||||
setvbuf (mallstream, malloc_trace_buffer, _IOFBF, TRACE_BUFFER_SIZE);
|
||||
static char tracebuf [512];
|
||||
|
||||
setvbuf (mallstream, tracebuf, _IOFBF, sizeof (tracebuf));
|
||||
fprintf (mallstream, "= Start\n");
|
||||
if (!added_atexit_handler)
|
||||
{
|
||||
@ -203,8 +197,6 @@ do_mtrace (void)
|
||||
}
|
||||
__malloc_debug_enable (MALLOC_MTRACE_HOOK);
|
||||
}
|
||||
else
|
||||
free (mtb);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user