[lttng-dev] [PATCH lttng-ust] Add trace support for calloc and realloc.
Mathieu Desnoyers
mathieu.desnoyers at efficios.com
Wed Aug 7 14:35:43 EDT 2013
* Stefan Seefeld (stefan_seefeld at mentor.com) wrote:
> On 08/07/2013 11:50 AM, Mathieu Desnoyers wrote:
>
> > I notice that memalign and posix_memalign are missing. Do you have plans
> > to add them ?
>
> Here is a patch adding those two.
merged, thanks!
By the way, we usually don't put "dots" at the end of the patch title.
No biggie, I removed it from the changelog.
Thanks,
Mathieu
>
> Stefan
>
>
> --
> Stefan Seefeld
> CodeSourcery / Mentor Graphics
> http://www.mentor.com/embedded-software/
> From 10b4f91ea710b484a7e31fca68f55a2b58d026cd Mon Sep 17 00:00:00 2001
> From: Stefan Seefeld <stefan_seefeld at mentor.com>
> Date: Wed, 7 Aug 2013 13:05:34 -0400
> Subject: [PATCH] Add trace support for memalign and posix_memalign.
>
> Signed-off-by: Stefan Seefeld <stefan_seefeld at mentor.com>
> ---
> liblttng-ust-libc-wrapper/lttng-ust-malloc.c | 34 ++++++++++++++++++++++++++++
> liblttng-ust-libc-wrapper/ust_libc.h | 19 ++++++++++++++++
> 2 files changed, 53 insertions(+)
>
> diff --git a/liblttng-ust-libc-wrapper/lttng-ust-malloc.c b/liblttng-ust-libc-wrapper/lttng-ust-malloc.c
> index 4fe8fa9..33ed18b 100644
> --- a/liblttng-ust-libc-wrapper/lttng-ust-malloc.c
> +++ b/liblttng-ust-libc-wrapper/lttng-ust-malloc.c
> @@ -133,3 +133,37 @@ void *realloc(void *ptr, size_t size)
> tracepoint(ust_libc, realloc, ptr, size, retval);
> return retval;
> }
> +
> +void *memalign(size_t alignment, size_t size)
> +{
> + static void *(*plibc_memalign)(size_t alignment, size_t size);
> + void *retval;
> +
> + if (plibc_memalign == NULL) {
> + plibc_memalign = dlsym(RTLD_NEXT, "memalign");
> + if (plibc_memalign == NULL) {
> + fprintf(stderr, "memalignwrap: unable to find memalign\n");
> + return NULL;
> + }
> + }
> + retval = plibc_memalign(alignment, size);
> + tracepoint(ust_libc, memalign, alignment, size, retval);
> + return retval;
> +}
> +
> +int posix_memalign(void **memptr, size_t alignment, size_t size)
> +{
> + static int(*plibc_posix_memalign)(void **memptr, size_t alignment, size_t size);
> + int retval;
> +
> + if (plibc_posix_memalign == NULL) {
> + plibc_posix_memalign = dlsym(RTLD_NEXT, "posix_memalign");
> + if (plibc_posix_memalign == NULL) {
> + fprintf(stderr, "posix_memalignwrap: unable to find posix_memalign\n");
> + return ENOMEM;
> + }
> + }
> + retval = plibc_posix_memalign(memptr, alignment, size);
> + tracepoint(ust_libc, posix_memalign, *memptr, alignment, size, retval);
> + return retval;
> +}
> diff --git a/liblttng-ust-libc-wrapper/ust_libc.h b/liblttng-ust-libc-wrapper/ust_libc.h
> index d2096a3..a8ff9c6 100644
> --- a/liblttng-ust-libc-wrapper/ust_libc.h
> +++ b/liblttng-ust-libc-wrapper/ust_libc.h
> @@ -65,6 +65,25 @@ TRACEPOINT_EVENT(ust_libc, realloc,
> )
> )
>
> +TRACEPOINT_EVENT(ust_libc, memalign,
> + TP_ARGS(size_t, alignment, size_t, size, void *, ptr),
> + TP_FIELDS(
> + ctf_integer(size_t, alignment, alignment)
> + ctf_integer(size_t, size, size)
> + ctf_integer_hex(void *, ptr, ptr)
> + )
> +)
> +
> +TRACEPOINT_EVENT(ust_libc, posix_memalign,
> + TP_ARGS(void *, out_ptr, size_t, alignment, size_t, size, int, result),
> + TP_FIELDS(
> + ctf_integer_hex(void *, out_ptr, out_ptr)
> + ctf_integer(size_t, alignment, alignment)
> + ctf_integer(size_t, size, size)
> + ctf_integer(int, result, result)
> + )
> +)
> +
> #endif /* _TRACEPOINT_UST_LIBC_H */
>
> #undef TRACEPOINT_INCLUDE
> --
> 1.8.3.1
>
--
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com
More information about the lttng-dev
mailing list