Cleanup: Move instrumentation/ headers to include/instrumentation/
[lttng-modules.git] / include / instrumentation / syscalls / lttng-syscalls-extract.sh
1 #!/bin/bash
2 # SPDX-License-Identifier: (GPL-2.0-only or LGPL-2.1-only)
3
4 set -eu
5
6 outfile="${1:-}"
7
8 if [ "x$outfile" = "x" ]; then
9 echo "Specify an output file as first argument, it will be overwritten."
10 exit 1
11 fi
12
13 cd lttng-syscalls-extractor || exit 1
14 make
15 cd - || exit 1
16
17 # Generate a random string to use as an identifier
18 ident=$(tr -dc 'a-zA-Z0-9' < /dev/urandom | fold -w 8 | head -n1)
19
20 sudo insmod ./lttng-syscalls-extractor/lttng-syscalls-extractor.ko ident="$ident" || true
21
22 sudo dmesg | sed -n -e 's/\(\[.*\] \)\?'"$ident"'//p' > "$outfile"
23
24 # Make sure we have both the start and end markers
25 if grep -q -- '---START---' "$outfile"; then
26 sed -i '/^---START---/d' "$outfile"
27 else
28 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."
29 exit 1
30 fi
31
32 if grep -q -- '---END---' "$outfile"; then
33 sed -i '/^---END---/d' "$outfile"
34 else
35 echo "Error: End marker missing from dmesg output, something went wrong."
36 exit 1
37 fi
This page took 0.031259 seconds and 4 git commands to generate.