aboutsummaryrefslogtreecommitdiff
path: root/gprofng/libcollector/collector.h
diff options
context:
space:
mode:
authorVladimir Mezentsev <vladimir.mezentsev@oracle.com>2023-03-16 17:19:23 -0700
committerVladimir Mezentsev <vladimir.mezentsev@oracle.com>2023-03-19 18:03:58 -0700
commitde8e70596896cc9f85498a9981196ebc4465172e (patch)
tree2bac4cf6bb0fd153bc943a18fc0f4deef1e921a2 /gprofng/libcollector/collector.h
parent2f5dea45584c09f23702f887b1ecbe16cf16ba05 (diff)
downloadfsf-binutils-gdb-de8e70596896cc9f85498a9981196ebc4465172e.zip
fsf-binutils-gdb-de8e70596896cc9f85498a9981196ebc4465172e.tar.gz
fsf-binutils-gdb-de8e70596896cc9f85498a9981196ebc4465172e.tar.bz2
gprofng: Use prototype to call libc functions
libcollector may not link against libC. We use dlsym() to get a function from libc. In some files, pointers to these functions do not have prototypes. I also moved the shared definitions to libcollector/collect.h. gprofng/ChangeLog 2023-03-15 Vladimir Mezentsev <vladimir.mezentsev@oracle.com> libcollector/collector.c: Add prototypes. libcollector/dispatcher.c: Likewise. libcollector/heaptrace.c: Likewise. libcollector/iotrace.c: Likewise. libcollector/linetrace.c: Likewise. libcollector/mmaptrace.c: Likewise. libcollector/synctrace.c: Likewise. libcollector/collector.h: Add CALL_REAL(), NULL_PTR(), and DBG_LT.
Diffstat (limited to 'gprofng/libcollector/collector.h')
-rw-r--r--gprofng/libcollector/collector.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/gprofng/libcollector/collector.h b/gprofng/libcollector/collector.h
index d771cf1..77957ec 100644
--- a/gprofng/libcollector/collector.h
+++ b/gprofng/libcollector/collector.h
@@ -29,6 +29,8 @@
#include "collector_module.h"
#define GETRELTIME() (__collector_gethrtime() - __collector_start_time)
+#define CALL_REAL(x) (__real_##x)
+#define NULL_PTR(x) (__real_##x == NULL)
#if defined(__MUSL_LIBC)
#define dlvsym(f, nm, v) dlsym (f, nm)
@@ -171,6 +173,17 @@ enum
SP_DUMP_STACK = 32,
};
+/* TprintfT(<level>,...) definitions. Adjust per module as needed */
+enum
+{
+ DBG_LT0 = 0, // for high-level configuration, unexpected errors/warnings
+ DBG_LTT = 0, // for interposition on GLIBC functions
+ DBG_LT1 = 1, // for configuration details, warnings
+ DBG_LT2 = 2,
+ DBG_LT3 = 3,
+ DBG_LT4 = 4
+};
+
#ifndef DEBUG
#define DprintfT(flag, ...)
#define tprintf(...)