]> git.ipfire.org Git - thirdparty/elfutils.git/commitdiff
eu-stacktrace WIP: add SysprofCaptureStackUser declarations
authorSerhei Makarov <serhei@serhei.io>
Mon, 2 Oct 2023 18:40:52 +0000 (14:40 -0400)
committerSerhei Makarov <serhei@serhei.io>
Mon, 2 Oct 2023 18:43:42 +0000 (14:43 -0400)
Adding these declarations as a fallback saves some fuss, since
eu-stacktrace can then be built with distro-provided sysprof-4
headers.

src/stacktrace.c

index 7118a901583cc42d61d899cf7f206393b67472a0..142c807dc7711b13d18d002c41accf9dbc2a2322 100644 (file)
    option. */
 #define HAVE_SYSPROF_4_HEADERS
 #ifdef HAVE_SYSPROF_4_HEADERS
+
 #include <sysprof-4/sysprof-capture-types.h>
-#endif
+
+/* XXX: To be added to new versions of sysprof. */
+#ifndef SYSPROF_CAPTURE_FRAME_STACK_USER
+
+#undef SYSPROF_CAPTURE_FRAME_LAST
+#define SYSPROF_CAPTURE_FRAME_STACK_USER 18
+#define SYSPROF_CAPTURE_FRAME_LAST 19
+
+SYSPROF_ALIGNED_BEGIN(1)
+typedef struct
+{
+  SysprofCaptureFrame   frame;
+  uint64_t              size;
+  int32_t               tid;
+  unsigned char         data[0];
+} SysprofCaptureStackUser
+SYSPROF_ALIGNED_END(1);
+
+#endif // ifndef SYSPROF_CAPTURE_FRAME_STACK_USER
+#endif // ifdef HAVE_SYSPROF_4_HEADERS
 
 static char *input_path = NULL;
 static int input_fd = -1;