From 9143c6d5444e809b9d411c07a8dae94c151668ae Mon Sep 17 00:00:00 2001 From: Michael Jeanson Date: Wed, 4 Mar 2020 15:37:11 -0500 Subject: [PATCH] Add script to automate the syscall extraction process Change-Id: Ic8e1e62058616f221569e1f5ed2ffb9d54275af5 Signed-off-by: Michael Jeanson Signed-off-by: Mathieu Desnoyers --- .../syscalls/lttng-syscalls-extract.sh | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100755 instrumentation/syscalls/lttng-syscalls-extract.sh diff --git a/instrumentation/syscalls/lttng-syscalls-extract.sh b/instrumentation/syscalls/lttng-syscalls-extract.sh new file mode 100755 index 00000000..500a93de --- /dev/null +++ b/instrumentation/syscalls/lttng-syscalls-extract.sh @@ -0,0 +1,37 @@ +#!/bin/bash +# SPDX-License-Identifier: (GPL-2.0 or LGPL-2.1) + +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 -- 2.34.1