liblttng-ust \
liblttng-ust-ctl \
liblttng-ust-fork \
- liblttng-ust-libc \
+ liblttng-ust-libc-wrapper \
tests
if BUILD_JNI_INTERFACE
- tests
Various test programs
- - liblttng-ust-libc
+ - liblttng-ust-libc-wrapper
An example library that can be LD_PRELOAD'ed to instrument some
calls to libc (currently malloc() and free()) in any program without
need to recompile it.
liblttng-ust-ctl/Makefile
liblttng-ust-fork/Makefile
liblttng-ust-java/Makefile
- liblttng-ust-libc/Makefile
+ liblttng-ust-libc-wrapper/Makefile
tests/Makefile
tests/hello/Makefile
tests/hello-static-lib/Makefile
--- /dev/null
+AM_CPPFLAGS = -I$(top_srcdir)/include
+AM_CFLAGS = -fno-strict-aliasing
+
+lib_LTLIBRARIES = liblttng-ust-libc-wrapper.la
+liblttng_ust_libc_wrapper_la_SOURCES = \
+ lttng-ust-malloc.c \
+ ust_libc.h
+liblttng_ust_libc_wrapper_la_LIBADD = -ldl \
+ -L$(top_builddir)/liblttng-ust/.libs \
+ -llttng-ust
+
+noinst_SCRIPTS = run
+EXTRA_DIST = run
--- /dev/null
+liblttng-ust-libc is used for instrumenting some calls to libc in a
+program, without need for recompiling it.
+
+This library defines a malloc() function that is instrumented with a
+tracepoint. It also calls the libc malloc afterwards. When loaded with
+LD_PRELOAD, it replaces the libc malloc() function, in effect
+instrumenting all calls to malloc(). The same is performed for free().
+
+See the "run" script for a usage example.
--- /dev/null
+/*
+ * Copyright (C) 2009 Pierre-Marc Fournier
+ * Copyright (C) 2011 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#define _GNU_SOURCE
+#include <dlfcn.h>
+#include <sys/types.h>
+#include <stdio.h>
+
+#define TRACEPOINT_DEFINE
+#define TRACEPOINT_CREATE_PROBES
+#include "ust_libc.h"
+
+void *malloc(size_t size)
+{
+ static void *(*plibc_malloc)(size_t size) = NULL;
+ void *retval;
+
+ if (plibc_malloc == NULL) {
+ plibc_malloc = dlsym(RTLD_NEXT, "malloc");
+ if (plibc_malloc == NULL) {
+ fprintf(stderr, "mallocwrap: unable to find malloc\n");
+ return NULL;
+ }
+ }
+ retval = plibc_malloc(size);
+ tracepoint(ust_libc, malloc, size, retval);
+ return retval;
+}
+
+void free(void *ptr)
+{
+ static void *(*plibc_free)(void *ptr) = NULL;
+
+ if (plibc_free == NULL) {
+ plibc_free = dlsym(RTLD_NEXT, "free");
+ if (plibc_free == NULL) {
+ fprintf(stderr, "mallocwrap: unable to find free\n");
+ return;
+ }
+ }
+ tracepoint(ust_libc, free, ptr);
+ plibc_free(ptr);
+}
--- /dev/null
+#!/bin/sh
+
+LD_VERBOSE=1 LD_PRELOAD=.libs/liblttng-ust-libc.so $1
--- /dev/null
+#undef TRACEPOINT_PROVIDER
+#define TRACEPOINT_PROVIDER ust_libc
+
+#if !defined(_TRACEPOINT_UST_LIBC_H) || defined(TRACEPOINT_HEADER_MULTI_READ)
+#define _TRACEPOINT_UST_LIBC_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * Copyright (C) 2011 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+ *
+ * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
+ * OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
+ *
+ * Permission is hereby granted to use or copy this program
+ * for any purpose, provided the above notices are retained on all copies.
+ * Permission to modify the code and to distribute modified code is granted,
+ * provided the above notices are retained, and a notice that the code was
+ * modified is included with the above copyright notice.
+ */
+
+#include <lttng/tracepoint.h>
+
+TRACEPOINT_EVENT(ust_libc, malloc,
+ TP_ARGS(size_t, size, void *, ptr),
+ TP_FIELDS(
+ ctf_integer(size_t, size, size)
+ ctf_integer_hex(unsigned long, ptr, (unsigned long) ptr)
+ )
+)
+
+TRACEPOINT_EVENT(ust_libc, free,
+ TP_ARGS(void *, ptr),
+ TP_FIELDS(
+ ctf_integer_hex(unsigned long, ptr, (unsigned long) ptr)
+ )
+)
+
+#endif /* _TRACEPOINT_UST_LIBC_H */
+
+#undef TRACEPOINT_INCLUDE_FILE
+#define TRACEPOINT_INCLUDE_FILE ./ust_libc.h
+
+/* This part must be outside ifdef protection */
+#include <lttng/tracepoint-event.h>
+
+#ifdef __cplusplus
+}
+#endif
+++ /dev/null
-AM_CPPFLAGS = -I$(top_srcdir)/include
-AM_CFLAGS = -fno-strict-aliasing
-
-lib_LTLIBRARIES = liblttng-ust-libc.la
-liblttng_ust_libc_la_SOURCES = \
- lttng-ust-malloc.c \
- ust_libc.h
-liblttng_ust_libc_la_LIBADD = -ldl \
- -L$(top_builddir)/liblttng-ust/.libs \
- -llttng-ust
-
-noinst_SCRIPTS = run
-EXTRA_DIST = run
+++ /dev/null
-liblttng-ust-libc is used for instrumenting some calls to libc in a
-program, without need for recompiling it.
-
-This library defines a malloc() function that is instrumented with a
-tracepoint. It also calls the libc malloc afterwards. When loaded with
-LD_PRELOAD, it replaces the libc malloc() function, in effect
-instrumenting all calls to malloc(). The same is performed for free().
-
-See the "run" script for a usage example.
+++ /dev/null
-/*
- * Copyright (C) 2009 Pierre-Marc Fournier
- * Copyright (C) 2011 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-
-#define _GNU_SOURCE
-#include <dlfcn.h>
-#include <sys/types.h>
-#include <stdio.h>
-
-#define TRACEPOINT_DEFINE
-#define TRACEPOINT_CREATE_PROBES
-#include "ust_libc.h"
-
-void *malloc(size_t size)
-{
- static void *(*plibc_malloc)(size_t size) = NULL;
- void *retval;
-
- if (plibc_malloc == NULL) {
- plibc_malloc = dlsym(RTLD_NEXT, "malloc");
- if (plibc_malloc == NULL) {
- fprintf(stderr, "mallocwrap: unable to find malloc\n");
- return NULL;
- }
- }
- retval = plibc_malloc(size);
- tracepoint(ust_libc, malloc, size, retval);
- return retval;
-}
-
-void free(void *ptr)
-{
- static void *(*plibc_free)(void *ptr) = NULL;
-
- if (plibc_free == NULL) {
- plibc_free = dlsym(RTLD_NEXT, "free");
- if (plibc_free == NULL) {
- fprintf(stderr, "mallocwrap: unable to find free\n");
- return;
- }
- }
- tracepoint(ust_libc, free, ptr);
- plibc_free(ptr);
-}
+++ /dev/null
-#!/bin/sh
-
-LD_VERBOSE=1 LD_PRELOAD=.libs/liblttng-ust-libc.so $1
+++ /dev/null
-#undef TRACEPOINT_PROVIDER
-#define TRACEPOINT_PROVIDER ust_libc
-
-#if !defined(_TRACEPOINT_UST_LIBC_H) || defined(TRACEPOINT_HEADER_MULTI_READ)
-#define _TRACEPOINT_UST_LIBC_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- * Copyright (C) 2011 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
- *
- * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED
- * OR IMPLIED. ANY USE IS AT YOUR OWN RISK.
- *
- * Permission is hereby granted to use or copy this program
- * for any purpose, provided the above notices are retained on all copies.
- * Permission to modify the code and to distribute modified code is granted,
- * provided the above notices are retained, and a notice that the code was
- * modified is included with the above copyright notice.
- */
-
-#include <lttng/tracepoint.h>
-
-TRACEPOINT_EVENT(ust_libc, malloc,
- TP_ARGS(size_t, size, void *, ptr),
- TP_FIELDS(
- ctf_integer(size_t, size, size)
- ctf_integer_hex(unsigned long, ptr, (unsigned long) ptr)
- )
-)
-
-TRACEPOINT_EVENT(ust_libc, free,
- TP_ARGS(void *, ptr),
- TP_FIELDS(
- ctf_integer_hex(unsigned long, ptr, (unsigned long) ptr)
- )
-)
-
-#endif /* _TRACEPOINT_UST_LIBC_H */
-
-#undef TRACEPOINT_INCLUDE_FILE
-#define TRACEPOINT_INCLUDE_FILE ./ust_libc.h
-
-/* This part must be outside ifdef protection */
-#include <lttng/tracepoint-event.h>
-
-#ifdef __cplusplus
-}
-#endif