Cleanup: Move instrumentation/ headers to include/instrumentation/
[lttng-modules.git] / include / instrumentation / syscalls / lttng-syscalls-extract.sh
diff --git a/include/instrumentation/syscalls/lttng-syscalls-extract.sh b/include/instrumentation/syscalls/lttng-syscalls-extract.sh
new file mode 100755 (executable)
index 0000000..d68baa9
--- /dev/null
@@ -0,0 +1,37 @@
+#!/bin/bash
+# SPDX-License-Identifier: (GPL-2.0-only or LGPL-2.1-only)
+
+set -eu
+
+outfile="${1:-}"
+
+if [ "x$outfile" = "x" ]; then
+       echo "Specify an output file as first argument, it will be overwritten."
+       exit 1
+fi
+
+cd lttng-syscalls-extractor || exit 1
+make
+cd - || exit 1
+
+# Generate a random string to use as an identifier
+ident=$(tr -dc 'a-zA-Z0-9' < /dev/urandom | fold -w 8 | head -n1)
+
+sudo insmod ./lttng-syscalls-extractor/lttng-syscalls-extractor.ko ident="$ident" || true
+
+sudo dmesg | sed -n -e 's/\(\[.*\] \)\?'"$ident"'//p' > "$outfile"
+
+# Make sure we have both the start and end markers
+if grep -q -- '---START---' "$outfile"; then
+       sed -i '/^---START---/d' "$outfile"
+else
+       echo "Error: Start marker missing from dmesg output, your kernel log buffer is probably too small, set CONFIG_LOG_BUF_SHIFT to a bigger value."
+       exit 1
+fi
+
+if grep -q -- '---END---' "$outfile"; then
+       sed -i '/^---END---/d' "$outfile"
+else
+       echo "Error: End marker missing from dmesg output, something went wrong."
+       exit 1
+fi
This page took 0.027282 seconds and 4 git commands to generate.