utrace support with label based signature.
This commit is contained in:
parent
92e189be8b
commit
520b75fa2d
15
configure.ac
15
configure.ac
@ -1405,11 +1405,26 @@ JE_COMPILABLE([utrace(2)], [
|
|||||||
utrace((void *)0, 0);
|
utrace((void *)0, 0);
|
||||||
], [je_cv_utrace])
|
], [je_cv_utrace])
|
||||||
if test "x${je_cv_utrace}" = "xno" ; then
|
if test "x${je_cv_utrace}" = "xno" ; then
|
||||||
|
JE_COMPILABLE([utrace(2) with label], [
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <sys/param.h>
|
||||||
|
#include <sys/time.h>
|
||||||
|
#include <sys/uio.h>
|
||||||
|
#include <sys/ktrace.h>
|
||||||
|
], [
|
||||||
|
utrace((void *)0, (void *)0, 0);
|
||||||
|
], [je_cv_utrace_label])
|
||||||
|
if test "x${je_cv_utrace_label}" = "xno"; then
|
||||||
enable_utrace="0"
|
enable_utrace="0"
|
||||||
fi
|
fi
|
||||||
|
if test "x$enable_utrace" = "x1" ; then
|
||||||
|
AC_DEFINE([JEMALLOC_UTRACE_LABEL], [ ])
|
||||||
|
fi
|
||||||
|
else
|
||||||
if test "x$enable_utrace" = "x1" ; then
|
if test "x$enable_utrace" = "x1" ; then
|
||||||
AC_DEFINE([JEMALLOC_UTRACE], [ ])
|
AC_DEFINE([JEMALLOC_UTRACE], [ ])
|
||||||
fi
|
fi
|
||||||
|
fi
|
||||||
AC_SUBST([enable_utrace])
|
AC_SUBST([enable_utrace])
|
||||||
|
|
||||||
dnl Do not support the xmalloc option by default.
|
dnl Do not support the xmalloc option by default.
|
||||||
|
@ -173,6 +173,9 @@
|
|||||||
/* Support utrace(2)-based tracing. */
|
/* Support utrace(2)-based tracing. */
|
||||||
#undef JEMALLOC_UTRACE
|
#undef JEMALLOC_UTRACE
|
||||||
|
|
||||||
|
/* Support utrace(2)-based tracing (label based signature). */
|
||||||
|
#undef JEMALLOC_UTRACE_LABEL
|
||||||
|
|
||||||
/* Support optional abort() on OOM. */
|
/* Support optional abort() on OOM. */
|
||||||
#undef JEMALLOC_XMALLOC
|
#undef JEMALLOC_XMALLOC
|
||||||
|
|
||||||
|
@ -4,8 +4,14 @@
|
|||||||
#include "jemalloc_internal_defs.h"
|
#include "jemalloc_internal_defs.h"
|
||||||
#include "jemalloc/internal/jemalloc_internal_decls.h"
|
#include "jemalloc/internal/jemalloc_internal_decls.h"
|
||||||
|
|
||||||
#ifdef JEMALLOC_UTRACE
|
#if defined(JEMALLOC_UTRACE) || defined(JEMALLOC_UTRACE_LABEL)
|
||||||
#include <sys/ktrace.h>
|
#include <sys/ktrace.h>
|
||||||
|
# if defined(JEMALLOC_UTRACE)
|
||||||
|
# define UTRACE_CALL(p, l) utrace(p, l)
|
||||||
|
# else
|
||||||
|
# define UTRACE_CALL(p, l) utrace("jemalloc_process", p, l)
|
||||||
|
# define JEMALLOC_UTRACE
|
||||||
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define JEMALLOC_NO_DEMANGLE
|
#define JEMALLOC_NO_DEMANGLE
|
||||||
|
@ -250,7 +250,7 @@ typedef struct {
|
|||||||
ut.p = (a); \
|
ut.p = (a); \
|
||||||
ut.s = (b); \
|
ut.s = (b); \
|
||||||
ut.r = (c); \
|
ut.r = (c); \
|
||||||
utrace(&ut, sizeof(ut)); \
|
UTRACE_CALL(&ut, sizeof(ut)); \
|
||||||
errno = utrace_serrno; \
|
errno = utrace_serrno; \
|
||||||
} \
|
} \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
Loading…
Reference in New Issue
Block a user